-
Notifications
You must be signed in to change notification settings - Fork 0
/
openapi.json
1 lines (1 loc) · 16.2 KB
/
openapi.json
1
{"openapi":"3.0.2","info":{"title":"Кошачий благотворительный фонд","description":"Сервис для поддержки котиков!","version":"0.1.0"},"paths":{"/charity_project/":{"get":{"tags":["charity_projects"],"summary":"Get All Charity Projects","description":"Получает список всех проектов.","operationId":"get_all_charity_projects_charity_project__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Get All Charity Projects Charity Project Get","type":"array","items":{"$ref":"#/components/schemas/CharityProjectDB"}}}}}}},"post":{"tags":["charity_projects"],"summary":"Create Charity Project","description":"Только для суперюзеров.\n\nСоздает благотворительный проект.","operationId":"create_charity_project_charity_project__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CharityProjectCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CharityProjectDB"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/charity_project/{project_id}":{"delete":{"tags":["charity_projects"],"summary":"Delete Charity Project","description":"Только для суперюзеров.\n\nУдаляет проект.\nНельзя удалить проект, в который уже были инвестированы средства,\nего можно только закрыть.","operationId":"delete_charity_project_charity_project__project_id__delete","parameters":[{"required":true,"schema":{"title":"Project Id","type":"integer"},"name":"project_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CharityProjectDB"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]},"patch":{"tags":["charity_projects"],"summary":"Update Charity Project","description":"Только для суперюзеров.\n\nЗакрытый проект нельзя редактировать,\nтакже нельзя установить требуемую сумму меньше уже вложенной.","operationId":"update_charity_project_charity_project__project_id__patch","parameters":[{"required":true,"schema":{"title":"Project Id","type":"integer"},"name":"project_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CharityProjectUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CharityProjectDB"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/donation/":{"get":{"tags":["donations"],"summary":"Get All Donations","description":"Только для суперюзеров.\n\nПолучает список всех пожертвований.","operationId":"get_all_donations_donation__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Get All Donations Donation Get","type":"array","items":{"$ref":"#/components/schemas/DonationAdminDB"}}}}}},"security":[{"OAuth2PasswordBearer":[]}]},"post":{"tags":["donations"],"summary":"Create Donation","description":"Сделать пожертвование.","operationId":"create_donation_donation__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationDB"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/donation/my":{"get":{"tags":["donations"],"summary":"Get User Donations","description":"Получить список моих пожертвований.","operationId":"get_user_donations_donation_my_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Get User Donations Donation My Get","type":"array","items":{"$ref":"#/components/schemas/DonationDB"}}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/auth/jwt/login":{"post":{"tags":["auth"],"summary":"Auth:Jwt.Login","operationId":"auth_jwt_login_auth_jwt_login_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_auth_jwt_login_auth_jwt_login_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BearerResponse"},"example":{"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiOTIyMWZmYzktNjQwZi00MzcyLTg2ZDMtY2U2NDJjYmE1NjAzIiwiYXVkIjoiZmFzdGFwaS11c2VyczphdXRoIiwiZXhwIjoxNTcxNTA0MTkzfQ.M10bjOe45I5Ncu_uXvOmVV8QxnL-nZfcH96U90JaocI","token_type":"bearer"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"},"examples":{"LOGIN_BAD_CREDENTIALS":{"summary":"Bad credentials or the user is inactive.","value":{"detail":"LOGIN_BAD_CREDENTIALS"}},"LOGIN_USER_NOT_VERIFIED":{"summary":"The user is not verified.","value":{"detail":"LOGIN_USER_NOT_VERIFIED"}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/jwt/logout":{"post":{"tags":["auth"],"summary":"Auth:Jwt.Logout","operationId":"auth_jwt_logout_auth_jwt_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing token or inactive user."}},"security":[{"OAuth2PasswordBearer":[]}]}},"/auth/register":{"post":{"tags":["auth"],"summary":"Register:Register","operationId":"register_register_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"},"examples":{"REGISTER_USER_ALREADY_EXISTS":{"summary":"A user with this email already exists.","value":{"detail":"REGISTER_USER_ALREADY_EXISTS"}},"REGISTER_INVALID_PASSWORD":{"summary":"Password validation failed.","value":{"detail":{"code":"REGISTER_INVALID_PASSWORD","reason":"Password should be at least 3 characters"}}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users/me":{"get":{"tags":["users"],"summary":"Users:Current User","operationId":"users_current_user_users_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"401":{"description":"Missing token or inactive user."}},"security":[{"OAuth2PasswordBearer":[]}]},"patch":{"tags":["users"],"summary":"Users:Patch Current User","operationId":"users_patch_current_user_users_me_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"401":{"description":"Missing token or inactive user."},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"},"examples":{"UPDATE_USER_EMAIL_ALREADY_EXISTS":{"summary":"A user with this email already exists.","value":{"detail":"UPDATE_USER_EMAIL_ALREADY_EXISTS"}},"UPDATE_USER_INVALID_PASSWORD":{"summary":"Password validation failed.","value":{"detail":{"code":"UPDATE_USER_INVALID_PASSWORD","reason":"Password should be at least 3 characters"}}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/users/{id}":{"get":{"tags":["users"],"summary":"Users:User","operationId":"users_user_users__id__get","parameters":[{"required":true,"schema":{"title":"Id","type":"string","format":"uuid4"},"name":"id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"401":{"description":"Missing token or inactive user."},"403":{"description":"Not a superuser."},"404":{"description":"The user does not exist."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]},"delete":{"tags":["users"],"summary":"Delete User","description":"Не используйте удаление, деактивируйте пользователей.","operationId":"delete_user_users__id__delete","parameters":[{"required":true,"schema":{"title":"Id","type":"string"},"name":"id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true},"patch":{"tags":["users"],"summary":"Users:Patch User","operationId":"users_patch_user_users__id__patch","parameters":[{"required":true,"schema":{"title":"Id","type":"string","format":"uuid4"},"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"401":{"description":"Missing token or inactive user."},"403":{"description":"Not a superuser."},"404":{"description":"The user does not exist."},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"},"examples":{"UPDATE_USER_EMAIL_ALREADY_EXISTS":{"summary":"A user with this email already exists.","value":{"detail":"UPDATE_USER_EMAIL_ALREADY_EXISTS"}},"UPDATE_USER_INVALID_PASSWORD":{"summary":"Password validation failed.","value":{"detail":{"code":"UPDATE_USER_INVALID_PASSWORD","reason":"Password should be at least 3 characters"}}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}}},"components":{"schemas":{"BearerResponse":{"title":"BearerResponse","required":["access_token","token_type"],"type":"object","properties":{"access_token":{"title":"Access Token","type":"string"},"token_type":{"title":"Token Type","type":"string"}}},"Body_auth_jwt_login_auth_jwt_login_post":{"title":"Body_auth_jwt_login_auth_jwt_login_post","required":["username","password"],"type":"object","properties":{"grant_type":{"title":"Grant Type","pattern":"password","type":"string"},"username":{"title":"Username","type":"string"},"password":{"title":"Password","type":"string"},"scope":{"title":"Scope","type":"string","default":""},"client_id":{"title":"Client Id","type":"string"},"client_secret":{"title":"Client Secret","type":"string"}}},"CharityProjectCreate":{"title":"CharityProjectCreate","required":["name","description","full_amount"],"type":"object","properties":{"name":{"title":"Name","maxLength":100,"type":"string"},"description":{"title":"Description","type":"string"},"full_amount":{"title":"Full Amount","exclusiveMinimum":0.0,"type":"integer"}},"additionalProperties":false},"CharityProjectDB":{"title":"CharityProjectDB","required":["name","description","full_amount","id","invested_amount","fully_invested","create_date"],"type":"object","properties":{"name":{"title":"Name","maxLength":100,"type":"string"},"description":{"title":"Description","type":"string"},"full_amount":{"title":"Full Amount","exclusiveMinimum":0.0,"type":"integer"},"id":{"title":"Id","type":"integer"},"invested_amount":{"title":"Invested Amount","type":"integer"},"fully_invested":{"title":"Fully Invested","type":"boolean"},"create_date":{"title":"Create Date","type":"string","format":"date-time"},"close_date":{"title":"Close Date","type":"string","format":"date-time"}},"additionalProperties":false},"CharityProjectUpdate":{"title":"CharityProjectUpdate","type":"object","properties":{"name":{"title":"Name","maxLength":100,"type":"string"},"description":{"title":"Description","type":"string"},"full_amount":{"title":"Full Amount","exclusiveMinimum":0.0,"type":"integer"}},"additionalProperties":false},"DonationAdminDB":{"title":"DonationAdminDB","required":["full_amount","id","create_date","user_id","invested_amount","fully_invested"],"type":"object","properties":{"full_amount":{"title":"Full Amount","exclusiveMinimum":0.0,"type":"integer"},"comment":{"title":"Comment","type":"string"},"id":{"title":"Id","type":"integer"},"create_date":{"title":"Create Date","type":"string","format":"date-time"},"user_id":{"title":"User Id","type":"string","format":"uuid4"},"invested_amount":{"title":"Invested Amount","type":"integer"},"fully_invested":{"title":"Fully Invested","type":"boolean"},"close_date":{"title":"Close Date","type":"string","format":"date-time"}},"additionalProperties":false},"DonationCreate":{"title":"DonationCreate","required":["full_amount"],"type":"object","properties":{"full_amount":{"title":"Full Amount","exclusiveMinimum":0.0,"type":"integer"},"comment":{"title":"Comment","type":"string"}},"additionalProperties":false},"DonationDB":{"title":"DonationDB","required":["full_amount","id","create_date"],"type":"object","properties":{"full_amount":{"title":"Full Amount","exclusiveMinimum":0.0,"type":"integer"},"comment":{"title":"Comment","type":"string"},"id":{"title":"Id","type":"integer"},"create_date":{"title":"Create Date","type":"string","format":"date-time"}},"additionalProperties":false},"ErrorModel":{"title":"ErrorModel","required":["detail"],"type":"object","properties":{"detail":{"title":"Detail","anyOf":[{"type":"string"},{"type":"object","additionalProperties":{"type":"string"}}]}}},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"User":{"title":"User","required":["email"],"type":"object","properties":{"id":{"title":"Id","type":"string","format":"uuid4"},"email":{"title":"Email","type":"string","format":"email"},"is_active":{"title":"Is Active","type":"boolean","default":true},"is_superuser":{"title":"Is Superuser","type":"boolean","default":false},"is_verified":{"title":"Is Verified","type":"boolean","default":false}},"description":"Base User model."},"UserCreate":{"title":"UserCreate","required":["email","password"],"type":"object","properties":{"email":{"title":"Email","type":"string","format":"email"},"password":{"title":"Password","type":"string"},"is_active":{"title":"Is Active","type":"boolean","default":true},"is_superuser":{"title":"Is Superuser","type":"boolean","default":false},"is_verified":{"title":"Is Verified","type":"boolean","default":false}}},"UserUpdate":{"title":"UserUpdate","type":"object","properties":{"password":{"title":"Password","type":"string"},"email":{"title":"Email","type":"string","format":"email"},"is_active":{"title":"Is Active","type":"boolean"},"is_superuser":{"title":"Is Superuser","type":"boolean"},"is_verified":{"title":"Is Verified","type":"boolean"}}},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"type":"string"}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}}},"securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"auth/jwt/login"}}}}}}