Skip to content

Commit 11a7cad

Browse files
gitfresneliliak
andauthored
9 сделать читаемую доку в сваггере в юзердате (#22)
* check commit * check commit * check commit * . * . * . * . --------- Co-authored-by: iliak <iliakrebzdak@mail>
1 parent 0ba9b3a commit 11a7cad

4 files changed

Lines changed: 31 additions & 12 deletions

File tree

userdata_api/routes/category.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@
1414
category = APIRouter(prefix="/category", tags=["Category"])
1515

1616

17-
@category.post("", response_model=CategoryGet)
17+
@category.post(
18+
"",
19+
response_model=CategoryGet,
20+
)
1821
async def create_category(
1922
request: Request,
2023
category_inp: CategoryPost,
@@ -23,6 +26,7 @@ async def create_category(
2326
"""
2427
Создать категорию пользовательских данных. Получить категорию можно будет со скоупами, имена которых в category_inp.scopes
2528
Ручка обновит документацию
29+
\f
2630
:param request: https://fastapi.tiangolo.com/advanced/using-request-directly/
2731
:param category_inp: Принимаемая моделька
2832
:param _: Аутентификация
@@ -38,6 +42,7 @@ async def create_category(
3842
async def get_category(id: int) -> CategoryGet:
3943
"""
4044
Получить категорию
45+
\f
4146
:param id: Айди категории
4247
:param _: Аутентфикация
4348
:return: Категорию со списком скоупов, которые нужны для получения пользовательских данных этой категории
@@ -48,22 +53,24 @@ async def get_category(id: int) -> CategoryGet:
4853

4954
@category.get("", response_model=list[CategoryGet], response_model_exclude_none=True)
5055
async def get_categories(query: list[Literal["param"]] = Query(default=[])) -> list[CategoryGet]:
51-
result = []
52-
for category in Category.query(session=db.session).all():
53-
to_append = category.dict()
54-
if "param" in query:
55-
to_append["params"] = []
56-
for param in category.params:
57-
to_append["params"].append(param.dict())
58-
result.append(to_append)
5956
"""
6057
Получить все категории
58+
\f
6159
:param query: Лист query параметров.
6260
Если ничего не указано то вернет просто список категорий
6361
Параметр 'param' - если указан, то в каждой категории будет список ее параметров
6462
:param _: Аутентифиуация
6563
:return: Список категорий. В каждой ноде списка - информация о скоупах, которые нужны для получения пользовательских данных этой категории
6664
"""
65+
result = []
66+
for category in Category.query(session=db.session).all():
67+
to_append = category.dict()
68+
if "param" in query:
69+
to_append["params"] = []
70+
for param in category.params:
71+
to_append["params"].append(param.dict())
72+
result.append(to_append)
73+
6774
type_adapter = TypeAdapter(list[CategoryGet])
6875
return type_adapter.validate_python(result)
6976

@@ -77,6 +84,7 @@ async def patch_category(
7784
) -> CategoryGet:
7885
"""
7986
Обновить категорию
87+
\f
8088
:param request: https://fastapi.tiangolo.com/advanced/using-request-directly/
8189
:param id: Айди обновляемой категории
8290
:param category_inp: Моделька обновления
@@ -95,6 +103,7 @@ async def delete_category(
95103
) -> StatusResponseModel:
96104
"""
97105
Удалить категорию
106+
\f
98107
:param request: https://fastapi.tiangolo.com/advanced/using-request-directly/
99108
:param id: Айди удаляемой категории
100109
:param _: Аутентификация

userdata_api/routes/param.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ async def create_param(
2323
) -> ParamGet:
2424
"""
2525
Создать поле внутри категории. Ответ на пользовательские данные будет такой {..., category: {...,param: '', ...}}
26+
\f
2627
:param request: https://fastapi.tiangolo.com/advanced/using-request-directly/
2728
:param category_id: Айди котегории в которой создавать параметр
2829
:param param_inp: Модель для создания
@@ -39,6 +40,7 @@ async def create_param(
3940
async def get_param(id: int, category_id: int) -> ParamGet:
4041
"""
4142
Получить параметр по айди
43+
\f
4244
:param id: Айди параметра
4345
:param category_id: айди категории в которой этот параметр находиится
4446
:return: ParamGet - полученный параметр
@@ -53,6 +55,7 @@ async def get_param(id: int, category_id: int) -> ParamGet:
5355
async def get_params(category_id: int) -> list[ParamGet]:
5456
"""
5557
Получить все параметры категории
58+
\f
5659
:param category_id: Айди категории
5760
:return: list[ParamGet] - список полученных параметров
5861
"""
@@ -70,6 +73,7 @@ async def patch_param(
7073
) -> ParamGet:
7174
"""
7275
Обновить параметр внутри категории
76+
\f
7377
:param request: https://fastapi.tiangolo.com/advanced/using-request-directly/
7478
:param id: Айди обновляемого параметра
7579
:param category_id: Адйи категории в которой находится параметр
@@ -95,6 +99,7 @@ async def delete_param(
9599
) -> StatusResponseModel:
96100
"""
97101
Удалить параметр внутри категории
102+
\f
98103
:param request: https://fastapi.tiangolo.com/advanced/using-request-directly/
99104
:param id: Айди удаляемого параметра
100105
:param category_id: Айди категории в которой находится удлаляемый параметр

userdata_api/routes/source.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ async def create_source(
2222
) -> SourceGet:
2323
"""
2424
Создать источник данных
25+
\f
2526
:param request: https://fastapi.tiangolo.com/advanced/using-request-directly/
2627
:param source_inp: Моделька для создания
2728
:param _: Аутентификация
@@ -37,6 +38,7 @@ async def create_source(
3738
async def get_source(id: int) -> SourceGet:
3839
"""
3940
Получить источник данных
41+
\f
4042
:param id: Айди источника
4143
:return: SourceGet - полученный источник
4244
"""
@@ -47,6 +49,7 @@ async def get_source(id: int) -> SourceGet:
4749
async def get_sources() -> list[SourceGet]:
4850
"""
4951
Получить все источники данных
52+
\f
5053
:return: list[SourceGet] - список источников данных
5154
"""
5255
type_adapter = TypeAdapter(list[SourceGet])
@@ -62,6 +65,7 @@ async def patch_source(
6265
) -> SourceGet:
6366
"""
6467
Обновить источник данных
68+
\f
6569
:param request: https://fastapi.tiangolo.com/advanced/using-request-directly/
6670
:param id: Айди обновляемого источника
6771
:param source_inp: Моделька для обновления
@@ -79,6 +83,7 @@ async def delete_source(
7983
) -> StatusResponseModel:
8084
"""
8185
Удалить источник данных
86+
\f
8287
:param request: https://fastapi.tiangolo.com/advanced/using-request-directly/
8388
:param id: Айди удаляемого источника
8489
:param _: Аутентфиикация

userdata_api/routes/user.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ async def get_user_info(
1717
id: int, user: dict[str, Any] = Depends(UnionAuth(scopes=[], allow_none=False, auto_error=True))
1818
) -> UserInfoGet:
1919
"""
20-
Получить информацию о польщователе
20+
Получить информацию о пользователе
21+
\f
2122
:param id: Айди овнера информации(пользователя)
2223
:param user: Аутентфикация
2324
:return: Словарь, ключи - категории на которые хватило прав(овнеру не нужны права, он получает всё).
@@ -54,8 +55,7 @@ async def update_user(
5455
Для обновления своей информации(источник `user`) не нужны скоупы на обновление соответствующих категорий
5556
Для обновления чужой информации от имени админа(источник `admin`)
5657
нужны скоупы на обновление всех указанных в теле запроса категорий пользовательских данных данных
57-
58-
58+
\f
5959
:param request: Запрос из fastapi
6060
:param user_id: Айди объекта обновленя
6161
:param _: Модель запроса

0 commit comments

Comments
 (0)