1 | export class ValidationError extends Error {
|
2 | public fileName?: string;
|
3 | public lineNumber?: number;
|
4 | public status: 400 = 400;
|
5 | public statusCode: 400 = 400;
|
6 | public validation: any;
|
7 | public expose: boolean;
|
8 |
|
9 | public constructor(
|
10 | message?: string,
|
11 | expose: boolean = true,
|
12 | validation?: string,
|
13 | fileName?: string,
|
14 | lineNumber?: number
|
15 | ) {
|
16 | super(message);
|
17 | if (typeof fileName !== undefined) this.fileName = fileName;
|
18 | if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
|
19 | this.message = message || "The data is not valid.";
|
20 | this.expose = expose;
|
21 | this.validation = validation || {};
|
22 | this.status = this.statusCode = 400;
|
23 | }
|
24 | }
|
25 |
|
26 | export class UnsupportedMediaTypeError extends Error {
|
27 | public fileName?: string;
|
28 | public lineNumber?: number;
|
29 | public status: 415 = 415;
|
30 | public statusCode: 415 = 415;
|
31 | public expose: boolean;
|
32 |
|
33 | public constructor(
|
34 | message?: string,
|
35 | expose: boolean = true,
|
36 | fileName?: string,
|
37 | lineNumber?: number
|
38 | ) {
|
39 | super(message);
|
40 | if (typeof fileName !== undefined) this.fileName = fileName;
|
41 | if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
|
42 | this.message = message || "The media type is unsupported.";
|
43 | this.expose = expose;
|
44 | }
|
45 | }
|
46 |
|
47 | export class NotFoundError extends Error {
|
48 | public fileName?: string;
|
49 | public lineNumber?: number;
|
50 | public status: 404 = 404;
|
51 | public statusCode: 404 = 404;
|
52 | public expose: boolean;
|
53 |
|
54 | public constructor(
|
55 | message?: string,
|
56 | expose: boolean = true,
|
57 | fileName?: string,
|
58 | lineNumber?: number
|
59 | ) {
|
60 | super(message);
|
61 | if (typeof fileName !== undefined) this.fileName = fileName;
|
62 | if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
|
63 | this.message = message || "The resource does not exist.";
|
64 | this.expose = expose;
|
65 | }
|
66 | }
|
67 |
|
68 | export class ConflictError extends Error {
|
69 | public fileName?: string;
|
70 | public lineNumber?: number;
|
71 | public status: 409 = 409;
|
72 | public statusCode: 409 = 409;
|
73 | public expose: boolean;
|
74 |
|
75 | public constructor(
|
76 | message?: string,
|
77 | expose: boolean = true,
|
78 | fileName?: string,
|
79 | lineNumber?: number
|
80 | ) {
|
81 | super(message);
|
82 | if (typeof fileName !== undefined) this.fileName = fileName;
|
83 | if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
|
84 | this.message = message || "A duplicate resource already exists.";
|
85 | this.expose = expose;
|
86 | }
|
87 | }
|
88 |
|
89 | export class AuthenticationError extends Error {
|
90 | public fileName?: string;
|
91 | public lineNumber?: number;
|
92 | public status: 401 = 401;
|
93 | public statusCode: 401 = 401;
|
94 | public expose: boolean;
|
95 |
|
96 | public constructor(
|
97 | message?: string,
|
98 | expose: boolean = true,
|
99 | fileName?: string,
|
100 | lineNumber?: number
|
101 | ) {
|
102 | super(message);
|
103 | if (typeof fileName !== undefined) this.fileName = fileName;
|
104 | if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
|
105 | this.message = message || "Authentication failed.";
|
106 | this.expose = expose;
|
107 | }
|
108 | }
|
109 |
|
110 | export class ForbiddenError extends Error {
|
111 | public fileName?: string;
|
112 | public lineNumber?: number;
|
113 | public status: 403 = 403;
|
114 | public statusCode: 403 = 403;
|
115 | public expose: boolean;
|
116 |
|
117 | public constructor(
|
118 | message?: string,
|
119 | expose: boolean = true,
|
120 | fileName?: string,
|
121 | lineNumber?: number
|
122 | ) {
|
123 | super(message);
|
124 | if (typeof fileName !== undefined) this.fileName = fileName;
|
125 | if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
|
126 | this.message = message || "The action is forbidden.";
|
127 | this.expose = expose;
|
128 | }
|
129 | }
|
130 |
|
131 | export class ServerError extends Error {
|
132 | public fileName?: string;
|
133 | public lineNumber?: number;
|
134 | public status: 500 = 500;
|
135 | public statusCode: 500 = 500;
|
136 | public expose: boolean;
|
137 |
|
138 | public constructor(
|
139 | message?: string,
|
140 | expose: boolean = true,
|
141 | fileName?: string,
|
142 | lineNumber?: number
|
143 | ) {
|
144 | super(message);
|
145 | if (typeof fileName !== undefined) this.fileName = fileName;
|
146 | if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
|
147 | this.message = message || "An unknown error has occurred.";
|
148 | this.expose = expose;
|
149 | this.status = this.statusCode = 500;
|
150 | }
|
151 | }
|
152 |
|
153 | export class NotImplementedError extends Error {
|
154 | public fileName?: string;
|
155 | public lineNumber?: number;
|
156 | public status: 501 = 501;
|
157 | public statusCode: 501 = 501;
|
158 | public expose: boolean;
|
159 |
|
160 | public constructor(
|
161 | message?: string,
|
162 | expose: boolean = true,
|
163 | fileName?: string,
|
164 | lineNumber?: number
|
165 | ) {
|
166 | super(message);
|
167 | if (typeof fileName !== undefined) this.fileName = fileName;
|
168 | if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
|
169 | this.message = message || "The requested functionality is not implemented.";
|
170 | this.expose = expose;
|
171 | this.status = this.statusCode = 501;
|
172 | }
|
173 | }
|