@pushwoosh/http-client 1.4.3 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,324 @@
1
+ import { RequestDetails } from './http-client.types';
2
+
3
+ /**
4
+ * Класс описывает ошибку, связанную с HttpClient.
5
+ * Должен использоваться для описания всех остальных ошибок связанных с HttpClient, но никогда не использоваться как отдельный экземпляр.
6
+ */
7
+ export class HttpClientError extends Error {
8
+ /**
9
+ * Код ошибки.
10
+ */
11
+ public readonly code: number;
12
+
13
+ /**
14
+ * Создать экземпляр ошибки.
15
+ *
16
+ * @param message - сообщение об ошибке.
17
+ * @param code - код ошибки.
18
+ */
19
+ protected constructor(message: string, code: number) {
20
+ super(message);
21
+ this.code = code;
22
+
23
+ Object.setPrototypeOf(this, HttpClientError.prototype);
24
+ }
25
+ }
26
+
27
+ /**
28
+ * Класс описывает логическую ошибку HttpClient.
29
+ */
30
+ export class LogicError extends HttpClientError {
31
+ /**
32
+ * Создать экземпляр ошибки.
33
+ *
34
+ * @param message - сообщение об ошибке.
35
+ */
36
+ public constructor(message: string) {
37
+ super(message, 0);
38
+
39
+ Object.setPrototypeOf(this, LogicError.prototype);
40
+ }
41
+ }
42
+
43
+ /**
44
+ * Класс описывает категоризированные ошибки.
45
+ * Должен использоваться для описания всех остальных категоризированных ошибок, но никогда не использоваться как отдельный экземпляр.
46
+ *
47
+ * @extends HttpClientError
48
+ */
49
+ export class ClassifiedError extends HttpClientError {
50
+ /**
51
+ * Детали запроса.
52
+ */
53
+ public readonly details: RequestDetails | null;
54
+
55
+ /**
56
+ * Создать экземпляр ошибки.
57
+ *
58
+ * @param message - сообщение об ошибке.
59
+ * @param code - код ошибки.
60
+ * @param details - детали запроса.
61
+ */
62
+ protected constructor(message: string, code: number, details: RequestDetails | null) {
63
+ super(message, code);
64
+ this.details = details;
65
+
66
+ Object.setPrototypeOf(this, ClassifiedError.prototype);
67
+ }
68
+ }
69
+
70
+ /**
71
+ * Ошибка, которая не попала ни в одну из категорий.
72
+ */
73
+ export class UntiledError extends ClassifiedError {
74
+ /**
75
+ * Создать экземпляр ошибки.
76
+ *
77
+ * @param message - сообщение об ошибке.
78
+ * @param code - код ошибки.
79
+ * @param details - детали запроса.
80
+ */
81
+ public constructor(message: string, code: number, details: RequestDetails | null) {
82
+ super(message, code, details);
83
+
84
+ Object.setPrototypeOf(this, UntiledError.prototype);
85
+ }
86
+ }
87
+
88
+ /**
89
+ * Класс описывает ошибку "Bad Request".
90
+ */
91
+ export class BadRequestError extends ClassifiedError {
92
+ /**
93
+ * Создать экземпляр ошибки.
94
+ *
95
+ * @param message - сообщение об ошибке.
96
+ * @param details - детали запроса.
97
+ */
98
+ public constructor(message: string = 'Bad Request!', details: RequestDetails | null = null) {
99
+ super(message, 400, details);
100
+
101
+ Object.setPrototypeOf(this, BadRequestError.prototype);
102
+ }
103
+ }
104
+
105
+ /**
106
+ * Класс описывает ошибку "Unauthorized".
107
+ */
108
+ export class UnauthorizedError extends ClassifiedError {
109
+ /**
110
+ * Создать экземпляр ошибки.
111
+ *
112
+ * @param message - сообщение об ошибке.
113
+ * @param details - детали запроса.
114
+ */
115
+ public constructor(message: string = 'Unauthorized!', details: RequestDetails | null = null) {
116
+ super(message, 401, details);
117
+
118
+ Object.setPrototypeOf(this, UnauthorizedError.prototype);
119
+ }
120
+ }
121
+
122
+ /**
123
+ * Класс описывает ошибку "Forbidden".
124
+ */
125
+ export class ForbiddenError extends ClassifiedError {
126
+ /**
127
+ * Создать экземпляр ошибки.
128
+ *
129
+ * @param message - сообщение об ошибке.
130
+ * @param details - детали запроса.
131
+ */
132
+ public constructor(message: string = 'Forbidden!', details: RequestDetails | null = null) {
133
+ super(message, 403, details);
134
+
135
+ Object.setPrototypeOf(this, ForbiddenError.prototype);
136
+ }
137
+ }
138
+
139
+ /**
140
+ * Класс описывает ошибку "Not Found".
141
+ */
142
+ export class NotFoundError extends ClassifiedError {
143
+ /**
144
+ * Создать экземпляр ошибки.
145
+ *
146
+ * @param message - сообщение об ошибке.
147
+ * @param details - детали запроса.
148
+ */
149
+ public constructor(message: string = 'Not Found!', details: RequestDetails | null = null) {
150
+ super(message, 404, details);
151
+
152
+ Object.setPrototypeOf(this, NotFoundError.prototype);
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Класс описывает ошибку "Method Not Allowed".
158
+ */
159
+ export class MethodNotAllowedError extends ClassifiedError {
160
+ /**
161
+ * Создать экземпляр ошибки.
162
+ *
163
+ * @param message - сообщение об ошибке.
164
+ * @param details - детали запроса.
165
+ */
166
+ public constructor(message: string = 'Method Not Allowed!', details: RequestDetails | null = null) {
167
+ super(message, 405, details);
168
+
169
+ Object.setPrototypeOf(this, MethodNotAllowedError.prototype);
170
+ }
171
+ }
172
+
173
+ /**
174
+ * Класс описывает ошибку "Payload Too Large".
175
+ */
176
+ export class PayloadTooLargeError extends ClassifiedError {
177
+ /**
178
+ * Создать экземпляр ошибки.
179
+ *
180
+ * @param message - сообщение об ошибке.
181
+ * @param details - детали запроса.
182
+ */
183
+ public constructor(message: string = 'Payload Too Large!', details: RequestDetails | null = null) {
184
+ super(message, 413, details);
185
+
186
+ Object.setPrototypeOf(this, PayloadTooLargeError.prototype);
187
+ }
188
+ }
189
+
190
+ /**
191
+ * Класс описывает ошибку "Unsupported Media Type".
192
+ */
193
+ export class UnsupportedMediaTypeError extends ClassifiedError {
194
+ /**
195
+ * Создать экземпляр ошибки.
196
+ *
197
+ * @param message - сообщение об ошибке.
198
+ * @param details - детали запроса.
199
+ */
200
+ public constructor(message: string = 'Unsupported Media Type!', details: RequestDetails | null = null) {
201
+ super(message, 415, details);
202
+
203
+ Object.setPrototypeOf(this, UnsupportedMediaTypeError.prototype);
204
+ }
205
+ }
206
+
207
+ /**
208
+ * Класс описывает ошибку "Unprocessable Entity".
209
+ */
210
+ export class UnprocessableEntityError extends ClassifiedError {
211
+ /**
212
+ * Создать экземпляр ошибки.
213
+ *
214
+ * @param message - сообщение об ошибке.
215
+ * @param details - детали запроса.
216
+ */
217
+ public constructor(message: string = 'Unprocessable Entity!', details: RequestDetails | null = null) {
218
+ super(message, 422, details);
219
+
220
+ Object.setPrototypeOf(this, UnprocessableEntityError.prototype);
221
+ }
222
+ }
223
+
224
+ /**
225
+ * Класс описывает ошибку "Too Many Requests".
226
+ */
227
+ export class TooManyRequestsError extends ClassifiedError {
228
+ /**
229
+ * Создать экземпляр ошибки.
230
+ *
231
+ * @param message - сообщение об ошибке.
232
+ * @param details - детали запроса.
233
+ */
234
+ public constructor(message: string = 'Too Many Requests!', details: RequestDetails | null = null) {
235
+ super(message, 429, details);
236
+
237
+ Object.setPrototypeOf(this, TooManyRequestsError.prototype);
238
+ }
239
+ }
240
+
241
+ /**
242
+ * Класс описывает ошибку "Internal Server Error".
243
+ */
244
+ export class InternalServerError extends ClassifiedError {
245
+ /**
246
+ * Создать экземпляр ошибки.
247
+ *
248
+ * @param message - сообщение об ошибке.
249
+ * @param details - детали запроса.
250
+ */
251
+ public constructor(message: string = 'Internal Server Error!', details: RequestDetails | null = null) {
252
+ super(message, 500, details);
253
+
254
+ Object.setPrototypeOf(this, InternalServerError.prototype);
255
+ }
256
+ }
257
+
258
+ /**
259
+ * Класс описывает ошибку "Not Implemented".
260
+ */
261
+ export class NotImplementedError extends ClassifiedError {
262
+ /**
263
+ * Создать экземпляр ошибки.
264
+ *
265
+ * @param message - сообщение об ошибке.
266
+ * @param details - детали запроса.
267
+ */
268
+ public constructor(message: string = 'Not Implemented!', details: RequestDetails | null = null) {
269
+ super(message, 501, details);
270
+
271
+ Object.setPrototypeOf(this, NotImplementedError.prototype);
272
+ }
273
+ }
274
+
275
+ /**
276
+ * Класс описывает ошибку "Bad Gateway".
277
+ */
278
+ export class BadGatewayError extends ClassifiedError {
279
+ /**
280
+ * Создать экземпляр ошибки.
281
+ *
282
+ * @param message - сообщение об ошибке.
283
+ * @param details - детали запроса.
284
+ */
285
+ public constructor(message: string = 'Bad Gateway!', details: RequestDetails | null = null) {
286
+ super(message, 502, details);
287
+
288
+ Object.setPrototypeOf(this, BadGatewayError.prototype);
289
+ }
290
+ }
291
+
292
+ /**
293
+ * Класс описывает ошибку "Service Unavailable".
294
+ */
295
+ export class ServiceUnavailableError extends ClassifiedError {
296
+ /**
297
+ * Создать экземпляр ошибки.
298
+ *
299
+ * @param message - сообщение об ошибке.
300
+ * @param details - детали запроса.
301
+ */
302
+ public constructor(message: string = 'Service Unavailable!', details: RequestDetails | null = null) {
303
+ super(message, 503, details);
304
+
305
+ Object.setPrototypeOf(this, ServiceUnavailableError.prototype);
306
+ }
307
+ }
308
+
309
+ /**
310
+ * Класс описывает ошибку "Gateway Timeout".
311
+ */
312
+ export class GatewayTimeoutError extends ClassifiedError {
313
+ /**
314
+ * Создать экземпляр ошибки.
315
+ *
316
+ * @param message - сообщение об ошибке.
317
+ * @param details - детали запроса.
318
+ */
319
+ public constructor(message: string = 'Gateway Timeout!', details: RequestDetails | null = null) {
320
+ super(message, 504, details);
321
+
322
+ Object.setPrototypeOf(this, GatewayTimeoutError.prototype);
323
+ }
324
+ }