|
| 1 | +import requests.models |
1 | 2 | import starlette.requests |
2 | 3 | from starlette.responses import JSONResponse |
3 | 4 |
|
|
22 | 23 | UserNotFound, |
23 | 24 | ) |
24 | 25 | from print_service.routes.base import app |
| 26 | +from print_service.settings import get_settings |
| 27 | + |
| 28 | + |
| 29 | +settings = get_settings() |
25 | 30 |
|
26 | 31 |
|
27 | 32 | @app.exception_handler(TooLargeSize) |
28 | 33 | async def too_large_size(req: starlette.requests.Request, exc: TooLargeSize): |
29 | 34 | return JSONResponse( |
30 | | - content=StatusResponseModel(status="Error", message=f"{exc}").dict(), status_code=413 |
| 35 | + content=StatusResponseModel( |
| 36 | + status="Error", |
| 37 | + message=f"{exc}", |
| 38 | + ru=f"Размер файла превышает максимально допустимый: {settings.MAX_SIZE}", |
| 39 | + ).dict(), |
| 40 | + status_code=413, |
31 | 41 | ) |
32 | 42 |
|
33 | 43 |
|
34 | 44 | @app.exception_handler(TooManyPages) |
35 | 45 | async def too_many_pages(req: starlette.requests.Request, exc: TooManyPages): |
36 | 46 | return JSONResponse( |
37 | | - content=StatusResponseModel(status="Error", message=f"{exc}").dict(), status_code=413 |
| 47 | + content=StatusResponseModel( |
| 48 | + status="Error", |
| 49 | + message=f"{exc}", |
| 50 | + ru=f"Количество запрошенных страниц превышает допустимое число: {settings.MAX_PAGE_COUNT}", |
| 51 | + ).dict(), |
| 52 | + status_code=413, |
38 | 53 | ) |
39 | 54 |
|
40 | 55 |
|
41 | 56 | @app.exception_handler(InvalidPageRequest) |
42 | 57 | async def invalid_format(req: starlette.requests.Request, exc: TooManyPages): |
43 | 58 | return JSONResponse( |
44 | | - content=StatusResponseModel(status="Error", message=f"{exc}").dict(), status_code=416 |
| 59 | + content=StatusResponseModel( |
| 60 | + status="Error", |
| 61 | + message=f"{exc}", |
| 62 | + ru="Количество запрошенных страниц превышает их количество в файле", |
| 63 | + ).dict(), |
| 64 | + status_code=416, |
45 | 65 | ) |
46 | 66 |
|
47 | 67 |
|
48 | 68 | @app.exception_handler(TerminalQRNotFound) |
49 | 69 | async def terminal_not_found_by_qr(req: starlette.requests.Request, exc: TerminalQRNotFound): |
50 | 70 | return JSONResponse( |
51 | | - content=StatusResponseModel(status="Error", message=f"Terminal not found by QR").dict(), |
| 71 | + content=StatusResponseModel( |
| 72 | + status="Error", message="Terminal not found by QR", ru="QR-код не найден" |
| 73 | + ).dict(), |
52 | 74 | status_code=400, |
53 | 75 | ) |
54 | 76 |
|
55 | 77 |
|
56 | 78 | @app.exception_handler(TerminalTokenNotFound) |
57 | 79 | async def terminal_not_found_by_token(req: starlette.requests.Request, exc: TerminalTokenNotFound): |
58 | 80 | return JSONResponse( |
59 | | - content=StatusResponseModel(status="Error", message=f"Terminal not found by token").dict(), |
| 81 | + content=StatusResponseModel( |
| 82 | + status="Error", message="Terminal not found by token", ru="Токен не найден" |
| 83 | + ).dict(), |
60 | 84 | status_code=400, |
61 | 85 | ) |
62 | 86 |
|
63 | 87 |
|
64 | 88 | @app.exception_handler(UserNotFound) |
65 | 89 | async def user_not_found(req: starlette.requests.Request, exc: UserNotFound): |
66 | 90 | return JSONResponse( |
67 | | - content=StatusResponseModel(status="Error", message=f"User not found").dict(), status_code=404 |
| 91 | + content=StatusResponseModel( |
| 92 | + status="Error", message="User not found", ru="Пользователь не найден" |
| 93 | + ).dict(), |
| 94 | + status_code=404, |
68 | 95 | ) |
69 | 96 |
|
70 | 97 |
|
71 | 98 | @app.exception_handler(UnionStudentDuplicate) |
72 | 99 | async def student_duplicate(req: starlette.requests.Request, exc: UnionStudentDuplicate): |
73 | 100 | return JSONResponse( |
74 | | - content=StatusResponseModel(status="Error", message=f"{exc}").dict(), status_code=400 |
| 101 | + content=StatusResponseModel( |
| 102 | + status="Error", |
| 103 | + message=f"{exc}", |
| 104 | + ru="Один или более пользователей в списке не являются уникальными", |
| 105 | + ).dict(), |
| 106 | + status_code=400, |
75 | 107 | ) |
76 | 108 |
|
77 | 109 |
|
78 | 110 | @app.exception_handler(NotInUnion) |
79 | 111 | async def not_in_union(req: starlette.requests.Request, exc: NotInUnion): |
80 | 112 | return JSONResponse( |
81 | | - content=StatusResponseModel(status="Error", message=f"{exc}").dict(), status_code=403 |
| 113 | + content=StatusResponseModel( |
| 114 | + status="Error", |
| 115 | + message=f"{exc}", |
| 116 | + ru="Отсутствует членство в профсоюзе", |
| 117 | + ).dict(), |
| 118 | + status_code=403, |
82 | 119 | ) |
83 | 120 |
|
84 | 121 |
|
85 | 122 | @app.exception_handler(PINGenerateError) |
86 | 123 | async def generate_error(req: starlette.requests.Request, exc: PINGenerateError): |
87 | 124 | return JSONResponse( |
88 | | - content=StatusResponseModel(status="Error", message=f"{exc}").dict(), status_code=500 |
| 125 | + content=StatusResponseModel( |
| 126 | + status="Error", |
| 127 | + message=f"{exc}", |
| 128 | + ru="Ошибка генерации ПИН-кода", |
| 129 | + ).dict(), |
| 130 | + status_code=500, |
89 | 131 | ) |
90 | 132 |
|
91 | 133 |
|
92 | 134 | @app.exception_handler(FileIsNotReceived) |
93 | 135 | async def file_not_received(req: starlette.requests.Request, exc: FileIsNotReceived): |
94 | 136 | return JSONResponse( |
95 | | - content=StatusResponseModel(status="Error", message=f"{exc}").dict(), status_code=400 |
| 137 | + content=StatusResponseModel(status="Error", message=f"{exc}", ru="Файл не получен").dict(), |
| 138 | + status_code=400, |
96 | 139 | ) |
97 | 140 |
|
98 | 141 |
|
99 | 142 | @app.exception_handler(PINNotFound) |
100 | 143 | async def pin_not_found(req: starlette.requests.Request, exc: PINNotFound): |
101 | 144 | return JSONResponse( |
102 | | - content=StatusResponseModel(status="Error", message=f"Pin {exc.pin} not found").dict(), |
| 145 | + content=StatusResponseModel( |
| 146 | + status="Error", message=f"Pin {exc.pin} not found", ru="ПИН не найден" |
| 147 | + ).dict(), |
103 | 148 | status_code=404, |
104 | 149 | ) |
105 | 150 |
|
106 | 151 |
|
107 | 152 | @app.exception_handler(InvalidType) |
108 | 153 | async def invalid_type(req: starlette.requests.Request, exc: InvalidType): |
109 | 154 | return JSONResponse( |
110 | | - content=StatusResponseModel(status="Error", message=f"{exc}").dict(), status_code=415 |
| 155 | + content=StatusResponseModel( |
| 156 | + status="Error", |
| 157 | + message=f"{exc}", |
| 158 | + ru=f"Неподдерживаемый формат файла. Допустимые: {', '.join(settings.CONTENT_TYPES)}", |
| 159 | + ).dict(), |
| 160 | + status_code=415, |
111 | 161 | ) |
112 | 162 |
|
113 | 163 |
|
114 | 164 | @app.exception_handler(AlreadyUploaded) |
115 | 165 | async def already_upload(req: starlette.requests.Request, exc: AlreadyUploaded): |
116 | 166 | return JSONResponse( |
117 | | - content=StatusResponseModel(status="Error", message=f"{exc}").dict(), status_code=415 |
| 167 | + content=StatusResponseModel(status="Error", message=f"{exc}", ru="Файл уже загружен").dict(), |
| 168 | + status_code=415, |
118 | 169 | ) |
119 | 170 |
|
120 | 171 |
|
121 | 172 | @app.exception_handler(IsCorrupted) |
122 | 173 | async def is_corrupted(req: starlette.requests.Request, exc: IsCorrupted): |
123 | 174 | return JSONResponse( |
124 | | - content=StatusResponseModel(status="Error", message=f"{exc}").dict(), status_code=415 |
| 175 | + content=StatusResponseModel(status="Error", message=f"{exc}", ru="Файл повреждён").dict(), |
| 176 | + status_code=415, |
125 | 177 | ) |
126 | 178 |
|
127 | 179 |
|
128 | 180 | @app.exception_handler(UnprocessableFileInstance) |
129 | 181 | async def unprocessable_file_instance(req: starlette.requests.Request, exc: UnprocessableFileInstance): |
130 | 182 | return JSONResponse( |
131 | | - content=StatusResponseModel(status="Error", message=f"{exc}").dict(), status_code=422 |
| 183 | + content=StatusResponseModel( |
| 184 | + status="Error", message=f"{exc}", ru="Необрабатываемый экземпляр файла" |
| 185 | + ).dict(), |
| 186 | + status_code=422, |
132 | 187 | ) |
133 | 188 |
|
134 | 189 |
|
135 | 190 | @app.exception_handler(FileNotFound) |
136 | 191 | async def file_not_found(req: starlette.requests.Request, exc: FileNotFound): |
137 | 192 | return JSONResponse( |
138 | | - content=StatusResponseModel(status="Error", message=f"{exc.count} file(s) not found").dict(), |
| 193 | + content=StatusResponseModel( |
| 194 | + status="Error", message=f"{exc.count} file(s) not found", ru="Файл не найден" |
| 195 | + ).dict(), |
139 | 196 | status_code=404, |
140 | 197 | ) |
141 | 198 |
|
142 | 199 |
|
143 | 200 | @app.exception_handler(IsNotUploaded) |
144 | 201 | async def not_uploaded(req: starlette.requests.Request, exc: IsNotUploaded): |
145 | 202 | return JSONResponse( |
146 | | - content=StatusResponseModel(status="Error", message=f"{exc}").dict(), status_code=415 |
| 203 | + content=StatusResponseModel(status="Error", message=f"{exc}", ru="Файл не загружен").dict(), |
| 204 | + status_code=415, |
147 | 205 | ) |
0 commit comments