@creator.co/wapi 1.2.1-beta5 → 1.2.2
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.
- package/.github/workflows/npmpublish.yml +11 -19
- package/.github/workflows/prs.yml +13 -0
- package/jest.config.ts +39 -0
- package/package.json +15 -4
- package/src/API/Request.ts +120 -10
- package/src/API/Response.ts +236 -8
- package/src/API/Utils.ts +56 -1
- package/src/BaseEvent/EventProcessor.ts +84 -11
- package/src/BaseEvent/Process.ts +62 -1
- package/src/BaseEvent/Transaction.ts +5 -8
- package/src/Config/Configuration.ts +111 -5
- package/src/Config/EnvironmentVar.ts +90 -1
- package/src/Crypto/Crypto.ts +77 -18
- package/src/Crypto/JWT.ts +49 -3
- package/src/Globals.ts +141 -3
- package/src/Logger/Logger.ts +173 -19
- package/src/Mailer/Mailer.ts +95 -0
- package/src/Publisher/Publisher.ts +50 -4
- package/src/Server/RouteResolver.ts +142 -0
- package/src/Server/Router.ts +77 -0
- package/src/Server/lib/ContainerServer.ts +48 -1
- package/src/Server/lib/Server.ts +78 -38
- package/src/Server/lib/container/GenericHandler.ts +7 -5
- package/src/Server/lib/container/GenericHandlerEvent.ts +59 -17
- package/src/Server/lib/container/HealthHandler.ts +1 -1
- package/src/Server/lib/container/Proxy.ts +92 -11
- package/src/Server/lib/container/Utils.ts +16 -25
- package/src/Validation/Validator.ts +18 -2
- package/tests/API/Request.test.ts +263 -0
- package/tests/API/Response.test.ts +372 -0
- package/tests/API/Utils.test.ts +157 -0
- package/tests/BaseEvent/EventProcessor.test.ts +278 -0
- package/tests/BaseEvent/Process.test.ts +49 -0
- package/tests/BaseEvent/Transaction.test.ts +231 -0
- package/tests/Config/Config.test.ts +193 -0
- package/tests/Config/EnvironmentVar.test.ts +223 -0
- package/tests/Crypto/Crypto.test.ts +90 -0
- package/tests/Crypto/JWT.test.ts +92 -0
- package/tests/Logger/Logger.test.ts +108 -0
- package/tests/Mailer/Mailer.test.ts +67 -0
- package/tests/Publisher/Publisher.test.ts +60 -0
- package/tests/Server/RouteResolver.test.ts +106 -0
- package/tests/Server/Router.test.ts +38 -0
- package/tests/Server/lib/ContainerServer.test.ts +329 -0
- package/tests/Server/lib/Server.test.ts +12 -0
- package/tests/Server/lib/container/GenericHandler.test.ts +141 -0
- package/tests/Server/lib/container/GenericHandlerEvent.test.ts +103 -0
- package/tests/Server/lib/container/HealthHandler.test.ts +30 -0
- package/tests/Server/lib/container/Proxy.test.ts +278 -0
- package/tests/Server/lib/container/Utils.test.ts +48 -0
- package/tests/Test.utils.ts +95 -0
- package/tests/Validation/Validator.test.ts +88 -0
- package/tests/main.test.ts +15 -0
- package/tsconfig.json +1 -0
- package/dist/index.d.ts +0 -11
- package/dist/index.js +0 -24
- package/dist/index.js.map +0 -1
- package/dist/package.json +0 -53
- package/dist/src/API/Request.d.ts +0 -21
- package/dist/src/API/Request.js +0 -86
- package/dist/src/API/Request.js.map +0 -1
- package/dist/src/API/Response.d.ts +0 -39
- package/dist/src/API/Response.js +0 -232
- package/dist/src/API/Response.js.map +0 -1
- package/dist/src/API/Utils.d.ts +0 -8
- package/dist/src/API/Utils.js +0 -49
- package/dist/src/API/Utils.js.map +0 -1
- package/dist/src/BaseEvent/EventProcessor.d.ts +0 -13
- package/dist/src/BaseEvent/EventProcessor.js +0 -151
- package/dist/src/BaseEvent/EventProcessor.js.map +0 -1
- package/dist/src/BaseEvent/Process.d.ts +0 -12
- package/dist/src/BaseEvent/Process.js +0 -114
- package/dist/src/BaseEvent/Process.js.map +0 -1
- package/dist/src/BaseEvent/Transaction.d.ts +0 -29
- package/dist/src/BaseEvent/Transaction.js +0 -248
- package/dist/src/BaseEvent/Transaction.js.map +0 -1
- package/dist/src/Config/Configuration.d.ts +0 -34
- package/dist/src/Config/Configuration.js +0 -93
- package/dist/src/Config/Configuration.js.map +0 -1
- package/dist/src/Config/EnvironmentVar.d.ts +0 -17
- package/dist/src/Config/EnvironmentVar.js +0 -152
- package/dist/src/Config/EnvironmentVar.js.map +0 -1
- package/dist/src/Crypto/Crypto.d.ts +0 -8
- package/dist/src/Crypto/Crypto.js +0 -84
- package/dist/src/Crypto/Crypto.js.map +0 -1
- package/dist/src/Crypto/JWT.d.ts +0 -16
- package/dist/src/Crypto/JWT.js +0 -49
- package/dist/src/Crypto/JWT.js.map +0 -1
- package/dist/src/Globals.d.ts +0 -21
- package/dist/src/Globals.js +0 -35
- package/dist/src/Globals.js.map +0 -1
- package/dist/src/Logger/Logger.d.ts +0 -34
- package/dist/src/Logger/Logger.js +0 -345
- package/dist/src/Logger/Logger.js.map +0 -1
- package/dist/src/Mailer/Mailer.d.ts +0 -12
- package/dist/src/Mailer/Mailer.js +0 -234
- package/dist/src/Mailer/Mailer.js.map +0 -1
- package/dist/src/Publisher/Publisher.d.ts +0 -10
- package/dist/src/Publisher/Publisher.js +0 -109
- package/dist/src/Publisher/Publisher.js.map +0 -1
- package/dist/src/Server/Router.d.ts +0 -27
- package/dist/src/Server/Router.js +0 -22
- package/dist/src/Server/Router.js.map +0 -1
- package/dist/src/Server/lib/ContainerServer.d.ts +0 -11
- package/dist/src/Server/lib/ContainerServer.js +0 -103
- package/dist/src/Server/lib/ContainerServer.js.map +0 -1
- package/dist/src/Server/lib/Server.d.ts +0 -9
- package/dist/src/Server/lib/Server.js +0 -141
- package/dist/src/Server/lib/Server.js.map +0 -1
- package/dist/src/Server/lib/container/GenericHandler.d.ts +0 -4
- package/dist/src/Server/lib/container/GenericHandler.js +0 -136
- package/dist/src/Server/lib/container/GenericHandler.js.map +0 -1
- package/dist/src/Server/lib/container/GenericHandlerEvent.d.ts +0 -14
- package/dist/src/Server/lib/container/GenericHandlerEvent.js +0 -164
- package/dist/src/Server/lib/container/GenericHandlerEvent.js.map +0 -1
- package/dist/src/Server/lib/container/HealthHandler.d.ts +0 -3
- package/dist/src/Server/lib/container/HealthHandler.js +0 -44
- package/dist/src/Server/lib/container/HealthHandler.js.map +0 -1
- package/dist/src/Server/lib/container/Proxy.d.ts +0 -15
- package/dist/src/Server/lib/container/Proxy.js +0 -157
- package/dist/src/Server/lib/container/Proxy.js.map +0 -1
- package/dist/src/Server/lib/container/Utils.d.ts +0 -6
- package/dist/src/Server/lib/container/Utils.js +0 -109
- package/dist/src/Server/lib/container/Utils.js.map +0 -1
- package/dist/src/Validation/Validator.d.ts +0 -5
- package/dist/src/Validation/Validator.js +0 -31
- package/dist/src/Validation/Validator.js.map +0 -1
package/dist/src/API/Utils.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var Utils = /** @class */ (function () {
|
|
4
|
-
function Utils() {
|
|
5
|
-
}
|
|
6
|
-
Utils.isHybridlessContainer = function () {
|
|
7
|
-
return !!process.env.HYBRIDLESS_RUNTIME;
|
|
8
|
-
};
|
|
9
|
-
Utils.isValidString = function (string) {
|
|
10
|
-
return (string === null || string === void 0 ? void 0 : string.length) > 0 && !Array.isArray(string);
|
|
11
|
-
};
|
|
12
|
-
Utils.parseIntNullIfNaN = function (string) {
|
|
13
|
-
var n = parseInt(string);
|
|
14
|
-
return isNaN(n) ? null : n;
|
|
15
|
-
};
|
|
16
|
-
Utils.parseObjectNullIfEmpty = function (string) {
|
|
17
|
-
var o = null;
|
|
18
|
-
try {
|
|
19
|
-
o = JSON.parse(string);
|
|
20
|
-
if (Object.keys(o).length <= 0)
|
|
21
|
-
o = null;
|
|
22
|
-
}
|
|
23
|
-
catch (e) {
|
|
24
|
-
/* empty */
|
|
25
|
-
}
|
|
26
|
-
return o;
|
|
27
|
-
};
|
|
28
|
-
Utils.isValidNumber = function (number) {
|
|
29
|
-
var validNumb = NaN;
|
|
30
|
-
try {
|
|
31
|
-
validNumb = parseInt(number + "");
|
|
32
|
-
}
|
|
33
|
-
catch (e) {
|
|
34
|
-
console.error("Error while validating number", e);
|
|
35
|
-
}
|
|
36
|
-
return !isNaN(validNumb) && !Array.isArray(number);
|
|
37
|
-
};
|
|
38
|
-
Utils.caseInsensitiveObjectForKey = function (obj, key) {
|
|
39
|
-
if (!obj)
|
|
40
|
-
return null;
|
|
41
|
-
var insensitiveKey = Object.keys(obj).find(function (k) { return k.toLowerCase() === key.toLowerCase(); });
|
|
42
|
-
if (insensitiveKey && insensitiveKey != "")
|
|
43
|
-
return obj[insensitiveKey];
|
|
44
|
-
return null;
|
|
45
|
-
};
|
|
46
|
-
return Utils;
|
|
47
|
-
}());
|
|
48
|
-
exports.default = Utils;
|
|
49
|
-
//# sourceMappingURL=Utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/API/Utils.ts"],"names":[],"mappings":";;AAAA;IAAA;IAsCA,CAAC;IArCe,2BAAqB,GAAnC;QACE,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA;IACzC,CAAC;IACa,mBAAa,GAA3B,UAA4B,MAAc;QACxC,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrD,CAAC;IACa,uBAAiB,GAA/B,UAAgC,MAAc;QAC5C,IAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC1B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IACa,4BAAsB,GAApC,UAAqC,MAAc;QACjD,IAAI,CAAC,GAAG,IAAI,CAAA;QACZ,IAAI;YACF,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACtB,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC;gBAAE,CAAC,GAAG,IAAI,CAAA;SACzC;QAAC,OAAO,CAAC,EAAE;YACV,WAAW;SACZ;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IACa,mBAAa,GAA3B,UAA4B,MAAc;QACxC,IAAI,SAAS,GAAG,GAAG,CAAA;QACnB,IAAI;YACF,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;SAClC;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAA;SAClD;QACD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD,CAAC;IACa,iCAA2B,GAAzC,UAA0C,GAAQ,EAAE,GAAW;QAC7D,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QACrB,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1C,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,EAArC,CAAqC,CAC7C,CAAA;QACD,IAAI,cAAc,IAAI,cAAc,IAAI,EAAE;YAAE,OAAO,GAAG,CAAC,cAAc,CAAC,CAAA;QACtE,OAAO,IAAI,CAAA;IACb,CAAC;IACH,YAAC;AAAD,CAAC,AAtCD,IAsCC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { Context, SQSBatchResponse, SQSEvent } from "aws-lambda";
|
|
2
|
-
import Transaction, { TransactionConfig } from "./Transaction";
|
|
3
|
-
import Response, { ResponseErrorType } from "../API/Response";
|
|
4
|
-
export type EventProcessorExecution = (transaction: Transaction<null, ResponseErrorType, SQSBatchResponse>, recordContent: string | object) => Promise<Response | SQSBatchResponse>;
|
|
5
|
-
export default class EventProcessor {
|
|
6
|
-
private readonly _allowFailure;
|
|
7
|
-
private readonly _apiConfig;
|
|
8
|
-
private readonly _context;
|
|
9
|
-
private readonly _event;
|
|
10
|
-
constructor(event: SQSEvent, context: Context, config: TransactionConfig, allowFailure?: boolean);
|
|
11
|
-
processEvent(execution: EventProcessorExecution, doNotDecodeMessage?: boolean): Promise<Response<ResponseErrorType> | null | SQSBatchResponse>;
|
|
12
|
-
_processRawEvent(execution: EventProcessorExecution, doNotDecodeMessage: boolean): Promise<Response<ResponseErrorType> | null | SQSBatchResponse>;
|
|
13
|
-
}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
var Transaction_1 = require("./Transaction");
|
|
51
|
-
var Response_1 = require("../API/Response");
|
|
52
|
-
var Globals_1 = require("../Globals");
|
|
53
|
-
var EventProcessor = /** @class */ (function () {
|
|
54
|
-
function EventProcessor(event, context, config, allowFailure) {
|
|
55
|
-
this._event = event;
|
|
56
|
-
this._context = context;
|
|
57
|
-
this._apiConfig = config;
|
|
58
|
-
this._allowFailure = allowFailure;
|
|
59
|
-
}
|
|
60
|
-
EventProcessor.prototype.processEvent = function (execution, doNotDecodeMessage) {
|
|
61
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
62
|
-
var resp;
|
|
63
|
-
return __generator(this, function (_a) {
|
|
64
|
-
switch (_a.label) {
|
|
65
|
-
case 0: return [4 /*yield*/, this._processRawEvent(execution, !!doNotDecodeMessage)];
|
|
66
|
-
case 1:
|
|
67
|
-
resp = _a.sent();
|
|
68
|
-
if (!this._allowFailure &&
|
|
69
|
-
resp &&
|
|
70
|
-
resp instanceof Response_1.default &&
|
|
71
|
-
!(resp.getCode() >= 200 && resp.getCode() < 300))
|
|
72
|
-
throw new Error(JSON.stringify(resp.getBody()));
|
|
73
|
-
else if (resp)
|
|
74
|
-
return [2 /*return*/, resp];
|
|
75
|
-
return [2 /*return*/, null];
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
};
|
|
80
|
-
EventProcessor.prototype._processRawEvent = function (execution, doNotDecodeMessage) {
|
|
81
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
82
|
-
var _this = this;
|
|
83
|
-
return __generator(this, function (_a) {
|
|
84
|
-
switch (_a.label) {
|
|
85
|
-
case 0:
|
|
86
|
-
if (!(this._event.Records && this._event.Records.length > 0)) return [3 /*break*/, 2];
|
|
87
|
-
return [4 /*yield*/, new Transaction_1.default(this._event, this._context, __assign(__assign({}, this._apiConfig), { syncReturn: true })).execute(function (transaction) { return __awaiter(_this, void 0, void 0, function () {
|
|
88
|
-
var decodedRecords, failureIDs, _a, _b, _c, _i, eventRecordIdx, eventRecord, message, resp;
|
|
89
|
-
return __generator(this, function (_d) {
|
|
90
|
-
switch (_d.label) {
|
|
91
|
-
case 0:
|
|
92
|
-
decodedRecords = this._event.Records.map(function (eventRecord) {
|
|
93
|
-
return doNotDecodeMessage
|
|
94
|
-
? eventRecord.body
|
|
95
|
-
: JSON.parse(eventRecord.body);
|
|
96
|
-
});
|
|
97
|
-
failureIDs = [];
|
|
98
|
-
_a = decodedRecords;
|
|
99
|
-
_b = [];
|
|
100
|
-
for (_c in _a)
|
|
101
|
-
_b.push(_c);
|
|
102
|
-
_i = 0;
|
|
103
|
-
_d.label = 1;
|
|
104
|
-
case 1:
|
|
105
|
-
if (!(_i < _b.length)) return [3 /*break*/, 4];
|
|
106
|
-
_c = _b[_i];
|
|
107
|
-
if (!(_c in _a)) return [3 /*break*/, 3];
|
|
108
|
-
eventRecordIdx = _c;
|
|
109
|
-
eventRecord = decodedRecords[eventRecordIdx];
|
|
110
|
-
message = this._event.Records[eventRecordIdx];
|
|
111
|
-
return [4 /*yield*/, execution(transaction, eventRecord)
|
|
112
|
-
//check for failure
|
|
113
|
-
];
|
|
114
|
-
case 2:
|
|
115
|
-
resp = _d.sent();
|
|
116
|
-
//check for failure
|
|
117
|
-
if (resp instanceof Response_1.default &&
|
|
118
|
-
!(resp.getCode() >= 200 && resp.getCode() < 300)) {
|
|
119
|
-
//response with failures or fail hard at first
|
|
120
|
-
if (this._allowFailure)
|
|
121
|
-
failureIDs.push(message.messageId);
|
|
122
|
-
else
|
|
123
|
-
return [2 /*return*/, resp];
|
|
124
|
-
}
|
|
125
|
-
_d.label = 3;
|
|
126
|
-
case 3:
|
|
127
|
-
_i++;
|
|
128
|
-
return [3 /*break*/, 1];
|
|
129
|
-
case 4:
|
|
130
|
-
//not errored and loop ended - succeeded (might have failures)
|
|
131
|
-
if (this._allowFailure)
|
|
132
|
-
return [2 /*return*/, {
|
|
133
|
-
batchItemFailures: failureIDs.map(function (id) { return ({ itemIdentifier: id }); }),
|
|
134
|
-
}];
|
|
135
|
-
return [2 /*return*/, Response_1.default.SuccessResponse(null)];
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
}); })];
|
|
139
|
-
case 1:
|
|
140
|
-
//safe check for empty events?
|
|
141
|
-
//init transaction for all records
|
|
142
|
-
return [2 /*return*/, _a.sent()];
|
|
143
|
-
case 2: return [2 /*return*/, Response_1.default.BadRequestResponse(Globals_1.default.ErrorResponseNoRecords, Globals_1.default.ErrorCode_NoRecords)]; //no event to be processed?
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
};
|
|
148
|
-
return EventProcessor;
|
|
149
|
-
}());
|
|
150
|
-
exports.default = EventProcessor;
|
|
151
|
-
//# sourceMappingURL=EventProcessor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EventProcessor.js","sourceRoot":"","sources":["../../../src/BaseEvent/EventProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { TransactionConfig } from "./Transaction";
|
|
2
|
-
import Logger from "../Logger/Logger";
|
|
3
|
-
import Publisher from "../Publisher/Publisher";
|
|
4
|
-
export type ProcessConfig = Omit<TransactionConfig, "throwOnErrors" | "syncReturn">;
|
|
5
|
-
export default class Process {
|
|
6
|
-
private _interval;
|
|
7
|
-
readonly logger: Logger;
|
|
8
|
-
readonly publisher: Publisher;
|
|
9
|
-
constructor(config: ProcessConfig, interval: number);
|
|
10
|
-
execute(executionFunc: any): Promise<void>;
|
|
11
|
-
_execute(executionFunc: any): Promise<boolean>;
|
|
12
|
-
}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
var Logger_1 = require("../Logger/Logger");
|
|
40
|
-
var Publisher_1 = require("../Publisher/Publisher");
|
|
41
|
-
var Process = /** @class */ (function () {
|
|
42
|
-
function Process(config, interval) {
|
|
43
|
-
this._interval = interval;
|
|
44
|
-
this.logger = new Logger_1.default(config.logger, "long-running-process");
|
|
45
|
-
this.publisher = new Publisher_1.default(config.publisher);
|
|
46
|
-
}
|
|
47
|
-
//Main interface
|
|
48
|
-
Process.prototype.execute = function (executionFunc) {
|
|
49
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
50
|
-
var _this = this;
|
|
51
|
-
return __generator(this, function (_a) {
|
|
52
|
-
this.logger.debug("Starting main process code");
|
|
53
|
-
//Connect DB
|
|
54
|
-
// if (this.db) await this.db.connect();
|
|
55
|
-
//Program loop
|
|
56
|
-
setInterval(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
57
|
-
return __generator(this, function (_a) {
|
|
58
|
-
switch (_a.label) {
|
|
59
|
-
case 0: return [4 /*yield*/, this._execute(executionFunc)];
|
|
60
|
-
case 1:
|
|
61
|
-
_a.sent();
|
|
62
|
-
return [2 /*return*/];
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
}); }, this._interval);
|
|
66
|
-
return [2 /*return*/];
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
};
|
|
70
|
-
//Executions
|
|
71
|
-
Process.prototype._execute = function (executionFunc) {
|
|
72
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
73
|
-
var executionFailed, e_1;
|
|
74
|
-
return __generator(this, function (_a) {
|
|
75
|
-
switch (_a.label) {
|
|
76
|
-
case 0:
|
|
77
|
-
executionFailed = true //failled til we say no!
|
|
78
|
-
;
|
|
79
|
-
_a.label = 1;
|
|
80
|
-
case 1:
|
|
81
|
-
_a.trys.push([1, 3, , 4]);
|
|
82
|
-
//start DB transaction
|
|
83
|
-
// if (this.db) await this.db.beginTransaction();
|
|
84
|
-
//Execute
|
|
85
|
-
return [4 /*yield*/, executionFunc(this)
|
|
86
|
-
//Commit DB
|
|
87
|
-
// if (this.db) await this.db.commit();
|
|
88
|
-
//
|
|
89
|
-
];
|
|
90
|
-
case 2:
|
|
91
|
-
//start DB transaction
|
|
92
|
-
// if (this.db) await this.db.beginTransaction();
|
|
93
|
-
//Execute
|
|
94
|
-
_a.sent();
|
|
95
|
-
//Commit DB
|
|
96
|
-
// if (this.db) await this.db.commit();
|
|
97
|
-
//
|
|
98
|
-
executionFailed = false;
|
|
99
|
-
return [3 /*break*/, 4];
|
|
100
|
-
case 3:
|
|
101
|
-
e_1 = _a.sent();
|
|
102
|
-
/*EXECUTION FAIL*/
|
|
103
|
-
this.logger.error("Exception when executing main process code. Rolling back DB!");
|
|
104
|
-
this.logger.exception(e_1);
|
|
105
|
-
return [3 /*break*/, 4];
|
|
106
|
-
case 4: return [2 /*return*/, executionFailed];
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
};
|
|
111
|
-
return Process;
|
|
112
|
-
}());
|
|
113
|
-
exports.default = Process;
|
|
114
|
-
//# sourceMappingURL=Process.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Process.js","sourceRoot":"","sources":["../../../src/BaseEvent/Process.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAAqC;AACrC,oDAA8C;AAQ9C;IAKE,iBAAY,MAAqB,EAAE,QAAgB;QACjD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;QAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,mBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAClD,CAAC;IAED,gBAAgB;IACV,yBAAO,GAAb,UAAc,aAAa;;;;gBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;gBAC/C,YAAY;gBACZ,wCAAwC;gBACxC,cAAc;gBACd,WAAW,CAAC;;;oCACV,qBAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAA;;gCAAlC,SAAkC,CAAA;;;;qBACnC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;;;;KACnB;IACD,YAAY;IACN,0BAAQ,GAAd,UAAe,aAAa;;;;;;wBACtB,eAAe,GAAG,IAAI,CAAC,wBAAwB;wBAAzB,CAAA;;;;wBAGxB,sBAAsB;wBACtB,iDAAiD;wBACjD,SAAS;wBACT,qBAAM,aAAa,CAAC,IAAI,CAAC;4BACzB,WAAW;4BACX,uCAAuC;4BACvC,EAAE;0BAHuB;;wBAHzB,sBAAsB;wBACtB,iDAAiD;wBACjD,SAAS;wBACT,SAAyB,CAAA;wBACzB,WAAW;wBACX,uCAAuC;wBACvC,EAAE;wBACF,eAAe,GAAG,KAAK,CAAA;;;;wBAEvB,kBAAkB;wBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,8DAA8D,CAC/D,CAAA;wBACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAC,CAAC,CAAA;;4BAI1B,sBAAO,eAAe,EAAA;;;;KACvB;IACH,cAAC;AAAD,CAAC,AA7CD,IA6CC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { APIGatewayEvent, Context, SQSEvent } from "aws-lambda";
|
|
2
|
-
import Request from "../API/Request";
|
|
3
|
-
import Response, { ResponseErrorType } from "../API/Response";
|
|
4
|
-
import Logger, { LoggerConfig } from "../Logger/Logger";
|
|
5
|
-
import Publisher, { PublisherConfig } from "../Publisher/Publisher";
|
|
6
|
-
export type TransactionExecution<TransactionType, ResponseInnerType, MiscRespType = null> = (transaction: TransactionType) => Promise<Response<ResponseInnerType> | Response<ResponseErrorType> | MiscRespType>;
|
|
7
|
-
export type TransactionConfig = {
|
|
8
|
-
throwOnErrors?: boolean;
|
|
9
|
-
syncReturn?: boolean;
|
|
10
|
-
logger?: LoggerConfig;
|
|
11
|
-
publisher?: PublisherConfig;
|
|
12
|
-
};
|
|
13
|
-
export default class Transaction<InputType = object, ResponseInnerType = null, MiscRespType = null> {
|
|
14
|
-
private event;
|
|
15
|
-
private context;
|
|
16
|
-
private response;
|
|
17
|
-
private syncReturn;
|
|
18
|
-
private retrowErrors;
|
|
19
|
-
readonly logger: Logger;
|
|
20
|
-
readonly request: Request<InputType>;
|
|
21
|
-
readonly publisher: Publisher;
|
|
22
|
-
responseProxy: (response: Response<ResponseInnerType>) => Promise<void>;
|
|
23
|
-
constructor(event: APIGatewayEvent | SQSEvent, context: Context, config?: TransactionConfig);
|
|
24
|
-
execute(executionFunc: TransactionExecution<Transaction<InputType, ResponseInnerType, MiscRespType>, ResponseInnerType, MiscRespType>): Promise<Response<ResponseInnerType | ResponseErrorType> | MiscRespType>;
|
|
25
|
-
private iexecute;
|
|
26
|
-
private executeDBTransactions;
|
|
27
|
-
private executeLoggerFlush;
|
|
28
|
-
private getErrorResponse;
|
|
29
|
-
}
|
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
var Request_1 = require("../API/Request");
|
|
40
|
-
var Response_1 = require("../API/Response");
|
|
41
|
-
var Globals_1 = require("../Globals");
|
|
42
|
-
var Logger_1 = require("../Logger/Logger");
|
|
43
|
-
var Publisher_1 = require("../Publisher/Publisher");
|
|
44
|
-
var Transaction = /** @class */ (function () {
|
|
45
|
-
//
|
|
46
|
-
function Transaction(event, context, config) {
|
|
47
|
-
var transactionId = context.awsRequestId
|
|
48
|
-
? context.awsRequestId
|
|
49
|
-
: event.requestContext
|
|
50
|
-
? event.requestContext.requestId
|
|
51
|
-
: "unknown";
|
|
52
|
-
// transaction ctx
|
|
53
|
-
this.event = event;
|
|
54
|
-
this.context = context;
|
|
55
|
-
this.response = null;
|
|
56
|
-
// when set, this will be called with the response context right before calling the context suceed/fail - useful for writing the resp for example.
|
|
57
|
-
this.responseProxy = null;
|
|
58
|
-
// transaction flags
|
|
59
|
-
this.syncReturn = !!(config === null || config === void 0 ? void 0 : config.syncReturn);
|
|
60
|
-
this.retrowErrors = !!(config === null || config === void 0 ? void 0 : config.throwOnErrors); /* retrow internal errors */
|
|
61
|
-
// components
|
|
62
|
-
this.logger = new Logger_1.default(config === null || config === void 0 ? void 0 : config.logger, transactionId);
|
|
63
|
-
this.request = new Request_1.default(this.event, this.context, this.logger);
|
|
64
|
-
this.publisher = new Publisher_1.default(config === null || config === void 0 ? void 0 : config.publisher);
|
|
65
|
-
}
|
|
66
|
-
//Main interface
|
|
67
|
-
Transaction.prototype.execute = function (executionFunc) {
|
|
68
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
69
|
-
var _this = this;
|
|
70
|
-
return __generator(this, function (_a) {
|
|
71
|
-
switch (_a.label) {
|
|
72
|
-
case 0: return [4 /*yield*/, this.executeLoggerFlush(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
73
|
-
var _this = this;
|
|
74
|
-
return __generator(this, function (_a) {
|
|
75
|
-
switch (_a.label) {
|
|
76
|
-
case 0: return [4 /*yield*/, this.executeDBTransactions(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
77
|
-
return __generator(this, function (_a) {
|
|
78
|
-
switch (_a.label) {
|
|
79
|
-
case 0: return [4 /*yield*/, this.iexecute(executionFunc)];
|
|
80
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}); })];
|
|
84
|
-
case 1:
|
|
85
|
-
_a.sent();
|
|
86
|
-
return [2 /*return*/];
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}); })
|
|
90
|
-
// return raw response if sync return is requested
|
|
91
|
-
];
|
|
92
|
-
case 1:
|
|
93
|
-
_a.sent();
|
|
94
|
-
// return raw response if sync return is requested
|
|
95
|
-
if (this.syncReturn)
|
|
96
|
-
return [2 /*return*/, this.response
|
|
97
|
-
// allow request to async succeed through lambda context
|
|
98
|
-
];
|
|
99
|
-
// allow request to async succeed through lambda context
|
|
100
|
-
return [2 /*return*/, null];
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
};
|
|
105
|
-
//Executions
|
|
106
|
-
Transaction.prototype.iexecute = function (executionFunc) {
|
|
107
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
108
|
-
var executionFailed, _a, e_1;
|
|
109
|
-
return __generator(this, function (_b) {
|
|
110
|
-
switch (_b.label) {
|
|
111
|
-
case 0:
|
|
112
|
-
executionFailed = true //failed til we say no!
|
|
113
|
-
;
|
|
114
|
-
_b.label = 1;
|
|
115
|
-
case 1:
|
|
116
|
-
_b.trys.push([1, 8, , 11]);
|
|
117
|
-
//Execute
|
|
118
|
-
this.logger.debug("Starting main request code");
|
|
119
|
-
_a = this;
|
|
120
|
-
return [4 /*yield*/, executionFunc(this)
|
|
121
|
-
//Answer client
|
|
122
|
-
];
|
|
123
|
-
case 2:
|
|
124
|
-
_a.response = _b.sent();
|
|
125
|
-
if (!(this.response && this.response instanceof Response_1.default)) return [3 /*break*/, 4];
|
|
126
|
-
return [4 /*yield*/, this.response.build(this.context, this, this.syncReturn)];
|
|
127
|
-
case 3:
|
|
128
|
-
_b.sent();
|
|
129
|
-
executionFailed = !!(this.response.getBody() && this.response.getBody()["rollback"]);
|
|
130
|
-
return [3 /*break*/, 7];
|
|
131
|
-
case 4:
|
|
132
|
-
if (!(this.syncReturn && this.response)) return [3 /*break*/, 5];
|
|
133
|
-
this.logger.log("Sync return with different response object");
|
|
134
|
-
this.logger.debug(this.response);
|
|
135
|
-
executionFailed = false;
|
|
136
|
-
return [3 /*break*/, 7];
|
|
137
|
-
case 5:
|
|
138
|
-
this.response = this.getErrorResponse(Globals_1.default.ErrorResponseInvalidServerResponse, Globals_1.default.ErrorCode_APIError);
|
|
139
|
-
return [4 /*yield*/, this.response.build(this.context, this, this.syncReturn)];
|
|
140
|
-
case 6:
|
|
141
|
-
_b.sent();
|
|
142
|
-
this.logger.error("Invalid response object from main request code.");
|
|
143
|
-
_b.label = 7;
|
|
144
|
-
case 7: return [3 /*break*/, 11];
|
|
145
|
-
case 8:
|
|
146
|
-
e_1 = _b.sent();
|
|
147
|
-
/*EXECUTION FAIL*/
|
|
148
|
-
this.logger.error("Exception when executing main request code.");
|
|
149
|
-
this.logger.exception(e_1);
|
|
150
|
-
//retrow?
|
|
151
|
-
if (this.retrowErrors)
|
|
152
|
-
throw e_1;
|
|
153
|
-
if (!executionFailed) return [3 /*break*/, 10];
|
|
154
|
-
this.response = this.getErrorResponse(Globals_1.default.ErrorResponseUnhandledError, Globals_1.default.ErrorCode_APIError);
|
|
155
|
-
return [4 /*yield*/, this.response.build(this.context, this, this.syncReturn)];
|
|
156
|
-
case 9:
|
|
157
|
-
_b.sent();
|
|
158
|
-
_b.label = 10;
|
|
159
|
-
case 10: return [3 /*break*/, 11];
|
|
160
|
-
case 11: return [2 /*return*/, executionFailed];
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
};
|
|
165
|
-
Transaction.prototype.executeDBTransactions = function (safeExecution) {
|
|
166
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
167
|
-
var e_2;
|
|
168
|
-
return __generator(this, function (_a) {
|
|
169
|
-
switch (_a.label) {
|
|
170
|
-
case 0:
|
|
171
|
-
_a.trys.push([0, 2, , 3]);
|
|
172
|
-
// //start DB
|
|
173
|
-
// if (this.db) await this.db.connect();
|
|
174
|
-
// //start transaction
|
|
175
|
-
// if (this.db) await this.db.beginTransaction();
|
|
176
|
-
// //
|
|
177
|
-
// let executionFailed =
|
|
178
|
-
return [4 /*yield*/, safeExecution()
|
|
179
|
-
// //Commit if not failed, rollback if failed
|
|
180
|
-
// if (!executionFailed) {
|
|
181
|
-
// if (this.db) await this.db.commit();
|
|
182
|
-
// } else {
|
|
183
|
-
// this.logger.log("Rolling back DB transactions. Main code failed!");
|
|
184
|
-
// if (this.db) await this.db.rollback();
|
|
185
|
-
// }
|
|
186
|
-
// //Cleanup DB after execution
|
|
187
|
-
// if (this.db) await this.db.cleanup();
|
|
188
|
-
];
|
|
189
|
-
case 1:
|
|
190
|
-
// //start DB
|
|
191
|
-
// if (this.db) await this.db.connect();
|
|
192
|
-
// //start transaction
|
|
193
|
-
// if (this.db) await this.db.beginTransaction();
|
|
194
|
-
// //
|
|
195
|
-
// let executionFailed =
|
|
196
|
-
_a.sent();
|
|
197
|
-
return [3 /*break*/, 3];
|
|
198
|
-
case 2:
|
|
199
|
-
e_2 = _a.sent();
|
|
200
|
-
this.logger.error("Exception when executing DB transactions.");
|
|
201
|
-
this.logger.log(e_2.stack);
|
|
202
|
-
//retrow?
|
|
203
|
-
if (this.retrowErrors)
|
|
204
|
-
throw e_2;
|
|
205
|
-
return [3 /*break*/, 3];
|
|
206
|
-
case 3: return [2 /*return*/];
|
|
207
|
-
}
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
};
|
|
211
|
-
Transaction.prototype.executeLoggerFlush = function (safeExecution) {
|
|
212
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
213
|
-
var e_3;
|
|
214
|
-
return __generator(this, function (_a) {
|
|
215
|
-
switch (_a.label) {
|
|
216
|
-
case 0:
|
|
217
|
-
_a.trys.push([0, 3, 4, 5]);
|
|
218
|
-
return [4 /*yield*/, safeExecution()];
|
|
219
|
-
case 1:
|
|
220
|
-
_a.sent();
|
|
221
|
-
return [4 /*yield*/, this.logger.flushLogs()];
|
|
222
|
-
case 2:
|
|
223
|
-
_a.sent();
|
|
224
|
-
return [3 /*break*/, 5];
|
|
225
|
-
case 3:
|
|
226
|
-
e_3 = _a.sent();
|
|
227
|
-
this.logger.error("Exception when flushing logs.");
|
|
228
|
-
this.logger.exception(e_3);
|
|
229
|
-
//retrow?
|
|
230
|
-
if (this.retrowErrors)
|
|
231
|
-
throw e_3;
|
|
232
|
-
return [3 /*break*/, 5];
|
|
233
|
-
case 4:
|
|
234
|
-
this.logger.debug("Transaction ended");
|
|
235
|
-
return [7 /*endfinally*/];
|
|
236
|
-
case 5: return [2 /*return*/];
|
|
237
|
-
}
|
|
238
|
-
});
|
|
239
|
-
});
|
|
240
|
-
};
|
|
241
|
-
/* Response support */
|
|
242
|
-
Transaction.prototype.getErrorResponse = function (error, code) {
|
|
243
|
-
return Response_1.default.BadRequestResponseWithRollback(error, code);
|
|
244
|
-
};
|
|
245
|
-
return Transaction;
|
|
246
|
-
}());
|
|
247
|
-
exports.default = Transaction;
|
|
248
|
-
//# sourceMappingURL=Transaction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../src/BaseEvent/Transaction.ts"],"names":[],"mappings":"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"}
|