|
1 | 1 | import logging |
| 2 | +from textwrap import dedent |
2 | 3 |
|
3 | 4 | import starlette.requests |
4 | 5 | from fastapi import FastAPI |
5 | 6 | from fastapi.middleware.cors import CORSMiddleware |
6 | 7 | from fastapi.responses import JSONResponse |
7 | 8 | from fastapi_sqlalchemy import DBSessionMiddleware |
| 9 | +from fastapi.staticfiles import StaticFiles |
8 | 10 | from starlette import status |
9 | 11 | from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint |
10 | 12 | from starlette.requests import Request |
11 | 13 | from starlette.responses import Response |
12 | | -from fastapi.staticfiles import StaticFiles |
13 | 14 | from starlette.types import ASGIApp |
14 | 15 |
|
| 16 | +from calendar_backend import __version__ |
15 | 17 | from calendar_backend.exceptions import ObjectNotFound, ForbiddenAction, NotEnoughCriteria |
16 | 18 | from calendar_backend.settings import get_settings |
| 19 | + |
17 | 20 | from .auth import auth_router |
18 | 21 | from .gcal import gcal |
19 | 22 | from .lecturer import ( |
|
27 | 30 | from .room import room_router |
28 | 31 | from .event import event_router, event_comment_router, event_comment_review_router |
29 | 32 |
|
| 33 | + |
30 | 34 | settings = get_settings() |
31 | 35 | logger = logging.getLogger(__name__) |
32 | 36 | app = FastAPI( |
33 | | - description="""API для работы с календарем физфака. |
34 | | -Пример работы на питоне(Создание Room): |
35 | | -```python |
36 | | -import reqests, json |
37 | | -url=f"https://timetable.api.test.profcomff.com" |
38 | | -
|
39 | | -# Авторизация |
40 | | -beaver = requests.post(f"{url}/token", {"username": "...", "password": "..."}) |
41 | | -
|
42 | | -# Парсинг ответа |
43 | | -auth_data=json.loads(beaver.content) |
44 | | -
|
45 | | -# Создание |
46 | | -create_room = requests.post( |
47 | | - f"{url}/timetable/room", |
48 | | - json={"name": "test", "direction": "South"}, |
49 | | - headers={"Authorization": f"Bearer {auth_data.get('access_token')}"} |
50 | | -) |
51 | | -
|
52 | | -``` |
53 | | -""" |
| 37 | + title='Сервис мониторинга активности', |
| 38 | + description=dedent(""" |
| 39 | + API для работы с календарем физфака. |
| 40 | + Пример работы на питоне(Создание Room): |
| 41 | + ```python |
| 42 | + import reqests, json |
| 43 | + url=f"https://timetable.api.test.profcomff.com" |
| 44 | +
|
| 45 | + # Авторизация |
| 46 | + beaver = requests.post(f"{url}/token", {"username": "...", "password": "..."}) |
| 47 | +
|
| 48 | + # Парсинг ответа |
| 49 | + auth_data=json.loads(beaver.content) |
| 50 | +
|
| 51 | + # Создание |
| 52 | + create_room = requests.post( |
| 53 | + f"{url}/timetable/room", |
| 54 | + json={"name": "test", "direction": "South"}, |
| 55 | + headers={"Authorization": f"Bearer {auth_data.get('access_token')}"} |
| 56 | + ) |
| 57 | + ``` |
| 58 | + """), |
| 59 | + version=__version__, |
| 60 | + |
| 61 | + # Настраиваем интернет документацию |
| 62 | + root_path=settings.ROOT_PATH if __version__ != 'dev' else '/', |
| 63 | + docs_url=None if __version__ != 'dev' else '/docs', |
| 64 | + redoc_url=None, |
54 | 65 | ) |
55 | 66 |
|
56 | 67 |
|
|
0 commit comments