@felloh-org/lambda-wrapper 1.0.12 → 1.0.13
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/dist/config/dependencies.js +4 -0
- package/dist/entity/user/index.js +3 -1
- package/dist/entity/user/login-link/index.js +84 -0
- package/dist/event/base-event/index.js +67 -0
- package/dist/event/index.js +15 -0
- package/dist/event/user/registration/index.js +25 -0
- package/dist/index.js +16 -0
- package/dist/migration/user/1643296114720-user-login-link.js +15 -0
- package/dist/migration/user/1643323827662-login-link-used.js +13 -0
- package/dist/service/event-bridge.js +32 -0
- package/dist/service/warehouse.js +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.Dependencies = exports.DEFINITIONS = void 0;
|
|
7
7
|
|
|
8
|
+
var _eventBridge = _interopRequireDefault(require("../service/event-bridge"));
|
|
9
|
+
|
|
8
10
|
var _http = _interopRequireDefault(require("../service/http"));
|
|
9
11
|
|
|
10
12
|
var _logger = _interopRequireDefault(require("../service/logger"));
|
|
@@ -16,6 +18,7 @@ var _warehouse = _interopRequireDefault(require("../service/warehouse"));
|
|
|
16
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
19
|
|
|
18
20
|
const DEFINITIONS = {
|
|
21
|
+
EVENT_BRIDGE: 'EVENT_BRIDGE',
|
|
19
22
|
HTTP: 'HTTP',
|
|
20
23
|
LOGGER: 'LOGGER',
|
|
21
24
|
REQUEST: 'REQUEST',
|
|
@@ -23,6 +26,7 @@ const DEFINITIONS = {
|
|
|
23
26
|
};
|
|
24
27
|
exports.DEFINITIONS = DEFINITIONS;
|
|
25
28
|
const Dependencies = {
|
|
29
|
+
[DEFINITIONS.EVENT_BRIDGE]: _eventBridge.default,
|
|
26
30
|
[DEFINITIONS.HTTP]: _http.default,
|
|
27
31
|
[DEFINITIONS.LOGGER]: _logger.default,
|
|
28
32
|
[DEFINITIONS.REQUEST]: _request.default,
|
|
@@ -19,8 +19,10 @@ var _feature = _interopRequireDefault(require("./feature"));
|
|
|
19
19
|
|
|
20
20
|
var _organisationFeature = _interopRequireDefault(require("./organisation-feature"));
|
|
21
21
|
|
|
22
|
+
var _loginLink = _interopRequireDefault(require("./login-link"));
|
|
23
|
+
|
|
22
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
25
|
|
|
24
|
-
const ENTITIES = [_organisation.default, _role.default, _userRole.default, _user.default, _userActivity.default, _feature.default, _organisationFeature.default];
|
|
26
|
+
const ENTITIES = [_organisation.default, _role.default, _userRole.default, _user.default, _userActivity.default, _feature.default, _organisationFeature.default, _loginLink.default];
|
|
25
27
|
var _default = ENTITIES;
|
|
26
28
|
exports.default = _default;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.EXPIRATION_DAYS = void 0;
|
|
7
|
+
|
|
8
|
+
var _typeorm = require("typeorm");
|
|
9
|
+
|
|
10
|
+
var _uuid = require("uuid");
|
|
11
|
+
|
|
12
|
+
var _user = _interopRequireDefault(require("../user"));
|
|
13
|
+
|
|
14
|
+
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
18
|
+
function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
|
|
19
|
+
|
|
20
|
+
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
|
|
21
|
+
|
|
22
|
+
function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }
|
|
23
|
+
|
|
24
|
+
const EXPIRATION_DAYS = 3;
|
|
25
|
+
exports.EXPIRATION_DAYS = EXPIRATION_DAYS;
|
|
26
|
+
let LoginLink = (_dec = (0, _typeorm.Entity)({
|
|
27
|
+
name: 'login_link',
|
|
28
|
+
schema: 'user'
|
|
29
|
+
}), _dec2 = (0, _typeorm.PrimaryColumn)("varchar"), _dec3 = (0, _typeorm.ManyToOne)(() => _user.default), _dec4 = (0, _typeorm.JoinColumn)({
|
|
30
|
+
name: 'user_id',
|
|
31
|
+
referencedColumnName: 'id'
|
|
32
|
+
}), _dec5 = (0, _typeorm.CreateDateColumn)(), _dec6 = (0, _typeorm.Column)({
|
|
33
|
+
type: "timestamp with time zone"
|
|
34
|
+
}), _dec7 = (0, _typeorm.Column)({
|
|
35
|
+
type: "boolean",
|
|
36
|
+
default: false
|
|
37
|
+
}), _dec(_class = (_class2 = class LoginLink {
|
|
38
|
+
constructor() {
|
|
39
|
+
_initializerDefineProperty(this, "id", _descriptor, this);
|
|
40
|
+
|
|
41
|
+
_initializerDefineProperty(this, "user", _descriptor2, this);
|
|
42
|
+
|
|
43
|
+
_initializerDefineProperty(this, "created_at", _descriptor3, this);
|
|
44
|
+
|
|
45
|
+
_initializerDefineProperty(this, "expires_at", _descriptor4, this);
|
|
46
|
+
|
|
47
|
+
_initializerDefineProperty(this, "used", _descriptor5, this);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
}, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "id", [_dec2], {
|
|
51
|
+
configurable: true,
|
|
52
|
+
enumerable: true,
|
|
53
|
+
writable: true,
|
|
54
|
+
initializer: function () {
|
|
55
|
+
return (0, _uuid.v4)();
|
|
56
|
+
}
|
|
57
|
+
}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "user", [_dec3, _dec4], {
|
|
58
|
+
configurable: true,
|
|
59
|
+
enumerable: true,
|
|
60
|
+
writable: true,
|
|
61
|
+
initializer: function () {
|
|
62
|
+
return _user.default;
|
|
63
|
+
}
|
|
64
|
+
}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "created_at", [_dec5], {
|
|
65
|
+
configurable: true,
|
|
66
|
+
enumerable: true,
|
|
67
|
+
writable: true,
|
|
68
|
+
initializer: null
|
|
69
|
+
}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "expires_at", [_dec6], {
|
|
70
|
+
configurable: true,
|
|
71
|
+
enumerable: true,
|
|
72
|
+
writable: true,
|
|
73
|
+
initializer: function () {
|
|
74
|
+
return new Date(new Date().setDate(new Date().getDate() + EXPIRATION_DAYS));
|
|
75
|
+
}
|
|
76
|
+
}), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "used", [_dec7], {
|
|
77
|
+
configurable: true,
|
|
78
|
+
enumerable: true,
|
|
79
|
+
writable: true,
|
|
80
|
+
initializer: function () {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
})), _class2)) || _class);
|
|
84
|
+
exports.default = LoginLink;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Base Event
|
|
10
|
+
*/
|
|
11
|
+
class BaseEvent {
|
|
12
|
+
/**
|
|
13
|
+
* BaseEvent constructor
|
|
14
|
+
*/
|
|
15
|
+
constructor() {
|
|
16
|
+
this.base = {
|
|
17
|
+
Source: process.env.SERVICE_NAME,
|
|
18
|
+
EventBusName: process.env.EVENT_BRIDGE_ARN,
|
|
19
|
+
DetailType: null,
|
|
20
|
+
Time: new Date(),
|
|
21
|
+
Detail: {}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the base
|
|
26
|
+
* @returns {*|{EventBusName: string, DetailType: null, Time: Date, Source: string, Detail: {}}}
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
getBase() {
|
|
31
|
+
return { ...this.base,
|
|
32
|
+
Detail: JSON.stringify(this.base.Detail)
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Set the user that initiated the action
|
|
37
|
+
* @param user
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
setUserBy(user) {
|
|
42
|
+
this.base.Detail.userBy = user;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Set the event type
|
|
46
|
+
* @param type
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
setDetailType(type) {
|
|
51
|
+
this.base.DetailType = type;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Set a parameter in the event detail
|
|
55
|
+
* @param key
|
|
56
|
+
* @param value
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
setDetailParam(key, value) {
|
|
61
|
+
this.base.Detail[key] = value;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
var _default = BaseEvent;
|
|
67
|
+
exports.default = _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "UserRegistration", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _registration.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var _registration = _interopRequireDefault(require("./user/registration"));
|
|
14
|
+
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _baseEvent = _interopRequireDefault(require("../../base-event"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
const EVENT_TYPE = 'user:registration';
|
|
13
|
+
|
|
14
|
+
class UserRegistrationEvent extends _baseEvent.default {
|
|
15
|
+
constructor() {
|
|
16
|
+
super();
|
|
17
|
+
this.setDetailType(EVENT_TYPE);
|
|
18
|
+
this.setDetailParam('user', {});
|
|
19
|
+
this.setDetailParam('organisation', {});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
var _default = UserRegistrationEvent;
|
|
25
|
+
exports.default = _default;
|
package/dist/index.js
CHANGED
|
@@ -99,6 +99,12 @@ Object.defineProperty(exports, "LoggerService", {
|
|
|
99
99
|
return _logger.default;
|
|
100
100
|
}
|
|
101
101
|
});
|
|
102
|
+
Object.defineProperty(exports, "LoginLinkEntity", {
|
|
103
|
+
enumerable: true,
|
|
104
|
+
get: function () {
|
|
105
|
+
return _loginLink.default;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
102
108
|
Object.defineProperty(exports, "Model", {
|
|
103
109
|
enumerable: true,
|
|
104
110
|
get: function () {
|
|
@@ -255,6 +261,12 @@ Object.defineProperty(exports, "UserEntity", {
|
|
|
255
261
|
return _user.default;
|
|
256
262
|
}
|
|
257
263
|
});
|
|
264
|
+
Object.defineProperty(exports, "UserRegistrationEvent", {
|
|
265
|
+
enumerable: true,
|
|
266
|
+
get: function () {
|
|
267
|
+
return _registration.default;
|
|
268
|
+
}
|
|
269
|
+
});
|
|
258
270
|
Object.defineProperty(exports, "UserRoleEntity", {
|
|
259
271
|
enumerable: true,
|
|
260
272
|
get: function () {
|
|
@@ -290,6 +302,8 @@ var _feature = _interopRequireDefault(require("./entity/user/feature"));
|
|
|
290
302
|
|
|
291
303
|
var _organisationFeature = _interopRequireDefault(require("./entity/user/organisation-feature"));
|
|
292
304
|
|
|
305
|
+
var _loginLink = _interopRequireDefault(require("./entity/user/login-link"));
|
|
306
|
+
|
|
293
307
|
var _account = _interopRequireDefault(require("./entity/bank/account"));
|
|
294
308
|
|
|
295
309
|
var _beneficiaryProvider = _interopRequireDefault(require("./entity/bank/beneficiary-provider"));
|
|
@@ -332,6 +346,8 @@ var _beneficiary = _interopRequireDefault(require("./entity/nuapay/beneficiary")
|
|
|
332
346
|
|
|
333
347
|
var _transaction2 = _interopRequireDefault(require("./entity/nuapay/transaction"));
|
|
334
348
|
|
|
349
|
+
var _registration = _interopRequireDefault(require("./event/user/registration"));
|
|
350
|
+
|
|
335
351
|
var _model = _interopRequireDefault(require("./model"));
|
|
336
352
|
|
|
337
353
|
var _response = _interopRequireDefault(require("./model/response"));
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const { MigrationInterface, QueryRunner } = require("typeorm");
|
|
2
|
+
|
|
3
|
+
module.exports = class userLoginLink1643296114720 {
|
|
4
|
+
name = 'userLoginLink1643296114720'
|
|
5
|
+
|
|
6
|
+
async up(queryRunner) {
|
|
7
|
+
await queryRunner.query(`CREATE TABLE "user"."login_link" ("id" character varying NOT NULL, "created_at" TIMESTAMP NOT NULL DEFAULT now(), "expires_at" TIMESTAMP WITH TIME ZONE NOT NULL, "user_id" character varying, CONSTRAINT "PK_649f9177c9ef00bea8ef0b04a20" PRIMARY KEY ("id"))`);
|
|
8
|
+
await queryRunner.query(`ALTER TABLE "user"."login_link" ADD CONSTRAINT "FK_d49fc28faf37216c75b09d2f67e" FOREIGN KEY ("user_id") REFERENCES "user"."user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async down(queryRunner) {
|
|
12
|
+
await queryRunner.query(`ALTER TABLE "user"."login_link" DROP CONSTRAINT "FK_d49fc28faf37216c75b09d2f67e"`);
|
|
13
|
+
await queryRunner.query(`DROP TABLE "user"."login_link"`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const { MigrationInterface, QueryRunner } = require("typeorm");
|
|
2
|
+
|
|
3
|
+
module.exports = class loginLinkUsed1643323827662 {
|
|
4
|
+
name = 'loginLinkUsed1643323827662'
|
|
5
|
+
|
|
6
|
+
async up(queryRunner) {
|
|
7
|
+
await queryRunner.query(`ALTER TABLE "user"."login_link" ADD "used" boolean NOT NULL DEFAULT false`);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
async down(queryRunner) {
|
|
11
|
+
await queryRunner.query(`ALTER TABLE "user"."login_link" DROP COLUMN "used"`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _awsSdk = _interopRequireDefault(require("aws-sdk"));
|
|
9
|
+
|
|
10
|
+
var _dependencyAware = _interopRequireDefault(require("../dependency-injection/dependency-aware"));
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
const Eventbridge = new _awsSdk.default.EventBridge({
|
|
15
|
+
region: process.env.REGION
|
|
16
|
+
});
|
|
17
|
+
/**
|
|
18
|
+
* Event Bridge Service
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
class EventBridge extends _dependencyAware.default {
|
|
22
|
+
async put(eventModel) {
|
|
23
|
+
const currentUser = JSON.parse(this.getContainer().getEvent().requestContext.authorizer.userEntity);
|
|
24
|
+
eventModel.setUserBy(currentUser);
|
|
25
|
+
await Eventbridge.putEvents({
|
|
26
|
+
Entries: [eventModel.getBase()]
|
|
27
|
+
}).promise();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
exports.default = EventBridge;
|
|
@@ -47,7 +47,7 @@ class Warehouse extends _dependencyAware.default {
|
|
|
47
47
|
resourceArn: process.env.WAREHOUSE_ARN,
|
|
48
48
|
region: process.env.REGION,
|
|
49
49
|
entities: _entity.default,
|
|
50
|
-
logging: true
|
|
50
|
+
logging: process.env.DB_LOGGING !== 'undefined' && process.env.DB_LOGGING === 'true'
|
|
51
51
|
});
|
|
52
52
|
}
|
|
53
53
|
|