1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var Errors = require("./models/client/Errors");
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | var ErrorHandler = (function () {
|
9 | function ErrorHandler() {
|
10 | }
|
11 | |
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 | ErrorHandler.prototype.buildRequestError = function (error) {
|
19 | var response = error.response;
|
20 | if (response !== undefined) {
|
21 | return this.buildErrorForResponse(response, error.message);
|
22 | }
|
23 | else if (error.message !== undefined) {
|
24 | return this.buildGeneralError(error.message);
|
25 | }
|
26 | else {
|
27 | return this.buildGeneralError(JSON.stringify(error, Object.getOwnPropertyNames(error)));
|
28 | }
|
29 | };
|
30 | |
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 | ErrorHandler.prototype.buildGeneralError = function (errorMessage) {
|
38 | return new Errors.PostmarkError(errorMessage);
|
39 | };
|
40 | |
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 | ErrorHandler.prototype.buildErrorForResponse = function (response, errorMessage) {
|
47 | var data = response.data;
|
48 | var errorCode = this.retrieveDefaultOrValue(0, data.ErrorCode);
|
49 | var status = this.retrieveDefaultOrValue(0, response.status);
|
50 | var message = this.retrieveDefaultOrValue(errorMessage, data.Message);
|
51 | return this.buildRequestErrorByStatus(message, errorCode, status);
|
52 | };
|
53 | ErrorHandler.prototype.retrieveDefaultOrValue = function (defaultValue, data) {
|
54 | return (data === undefined) ? defaultValue : data;
|
55 | };
|
56 | |
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 |
|
63 | ErrorHandler.prototype.buildRequestErrorByStatus = function (errorMessage, errorCode, errorStatusCode) {
|
64 | switch (errorStatusCode) {
|
65 | case 401:
|
66 | return new Errors.InvalidAPIKeyError(errorMessage, errorCode, errorStatusCode);
|
67 | case 404:
|
68 | return new Errors.PostmarkError(errorMessage, errorCode, errorStatusCode);
|
69 | case 422:
|
70 | return new Errors.ApiInputError(errorMessage, errorCode, errorStatusCode);
|
71 | case 500:
|
72 | return new Errors.InternalServerError(errorMessage, errorCode, errorStatusCode);
|
73 | case 503:
|
74 | return new Errors.ServiceUnavailablerError(errorMessage, errorCode, errorStatusCode);
|
75 | default:
|
76 | return new Errors.UnknownError(errorMessage, errorCode, errorStatusCode);
|
77 | }
|
78 | };
|
79 | return ErrorHandler;
|
80 | }());
|
81 | exports.ErrorHandler = ErrorHandler;
|
82 |
|
\ | No newline at end of file |