@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.
@@ -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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@felloh-org/lambda-wrapper",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "Lambda wrapper for all Felloh Serverless Projects",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {