@friggframework/core 2.0.0--canary.397.db073e6.0 → 2.0.0--canary.397.17c930a.0

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.
Files changed (34) hide show
  1. package/credential/credential-repository.js +1 -1
  2. package/handlers/backend-utils.js +1 -1
  3. package/index.js +1 -1
  4. package/integrations/integration-base.js +11 -4
  5. package/integrations/integration-repository.js +24 -1
  6. package/integrations/integration-router.js +9 -9
  7. package/integrations/use-cases/create-integration.js +1 -2
  8. package/integrations/use-cases/enable-integration.js +12 -0
  9. package/package.json +5 -5
  10. /package/{module-plugin → modules}/ModuleConstants.js +0 -0
  11. /package/{module-plugin → modules}/credential.js +0 -0
  12. /package/{module-plugin → modules}/entity.js +0 -0
  13. /package/{module-plugin → modules}/index.js +0 -0
  14. /package/{module-plugin → modules}/manager.js +0 -0
  15. /package/{module-plugin → modules}/module-repository.js +0 -0
  16. /package/{module-plugin → modules}/module-service.js +0 -0
  17. /package/{module-plugin → modules}/module.js +0 -0
  18. /package/{module-plugin → modules}/requester/api-key.js +0 -0
  19. /package/{module-plugin → modules}/requester/basic.js +0 -0
  20. /package/{module-plugin → modules}/requester/oauth-2.js +0 -0
  21. /package/{module-plugin → modules}/requester/requester.js +0 -0
  22. /package/{module-plugin → modules}/requester/requester.test.js +0 -0
  23. /package/{module-plugin → modules}/test/auther.test.js +0 -0
  24. /package/{module-plugin → modules}/test/mock-api/api.js +0 -0
  25. /package/{module-plugin → modules}/test/mock-api/definition.js +0 -0
  26. /package/{module-plugin → modules}/test/mock-api/mocks/hubspot.js +0 -0
  27. /package/{module-plugin → modules}/use-cases/get-entities-for-user.js +0 -0
  28. /package/{module-plugin → modules}/use-cases/get-entity-options-by-id.js +0 -0
  29. /package/{module-plugin → modules}/use-cases/get-entity-options-by-type.js +0 -0
  30. /package/{module-plugin → modules}/use-cases/get-module-instance-from-type.js +0 -0
  31. /package/{module-plugin → modules}/use-cases/get-module.js +0 -0
  32. /package/{module-plugin → modules}/use-cases/refresh-entity-options.js +0 -0
  33. /package/{module-plugin → modules}/use-cases/test-module-auth.js +0 -0
  34. /package/{module-plugin → modules}/utils/map-module-dto.js +0 -0
@@ -1,4 +1,4 @@
1
- const { Credential } = require('../module-plugin');
1
+ const { Credential } = require('../modules');
2
2
 
3
3
  class CredentialRepository {
4
4
  async findCredentialById(id) {
@@ -2,7 +2,7 @@ const { Router } = require('express');
2
2
  const { Worker } = require('@friggframework/core');
3
3
  const { loadAppDefinition } = require('./app-definition-loader');
4
4
  const { IntegrationRepository } = require('../integrations/integration-repository');
5
- const { ModuleService } = require('../module-plugin/module-service');
5
+ const { ModuleService } = require('../modules/module-service');
6
6
  const { GetIntegrationInstance } = require('../integrations/use-cases/get-integration-instance');
7
7
 
8
8
  const loadRouterFromObject = (IntegrationClass, routerObject) => {
package/index.js CHANGED
@@ -52,7 +52,7 @@ const {
52
52
  OAuth2Requester,
53
53
  Requester,
54
54
  ModuleConstants,
55
- } = require('./module-plugin/index');
55
+ } = require('./modules/index');
56
56
  const utils = require('./utils');
57
57
 
58
58
  // const {Sync } = require('./syncs/model');
@@ -1,5 +1,7 @@
1
1
  const { IntegrationMapping } = require('./integration-mapping');
2
2
  const { Options } = require('./options');
3
+ const { EnableIntegration } = require('./use-cases/enable-integration');
4
+ const { IntegrationRepository } = require('./integration-repository');
3
5
 
4
6
  const constantsToBeMigrated = {
5
7
  defaultEvents: {
@@ -76,6 +78,13 @@ class IntegrationBase {
76
78
  }
77
79
 
78
80
  constructor(params) {
81
+
82
+ // todo: maybe we can pass this as Dependency Injection in the sub-class constructor
83
+ const { integrationRepository } = new IntegrationRepository();
84
+ this.enableIntegration = new EnableIntegration({
85
+ integrationRepository,
86
+ });
87
+
79
88
  this.defaultEvents = {
80
89
  [constantsToBeMigrated.defaultEvents.ON_CREATE]: {
81
90
  type: constantsToBeMigrated.types.LIFE_CYCLE_EVENT,
@@ -194,10 +203,8 @@ class IntegrationBase {
194
203
  /**
195
204
  * CHILDREN CAN OVERRIDE THESE CONFIGURATION METHODS
196
205
  */
197
- async onCreate(params) {
198
- this.record.status = 'ENABLED';
199
- await this.record.save();
200
- return this.record;
206
+ async onCreate({ integrationId }) {
207
+ await this.enableIntegration.execute(integrationId);
201
208
  }
202
209
 
203
210
  async onUpdate(params) { }
@@ -31,13 +31,36 @@ class IntegrationRepository {
31
31
  }
32
32
  }
33
33
 
34
+ async updateIntegration(integrationId, status) {
35
+ const integrationRecord = await IntegrationModel.updateOne({ _id: integrationId }, { status });
36
+ return {
37
+ id: integrationRecord._id,
38
+ entitiesIds: integrationRecord.entities.map(e => e._id),
39
+ userId: integrationRecord.user.toString(),
40
+ config: integrationRecord.config,
41
+ version: integrationRecord.version,
42
+ status: integrationRecord.status,
43
+ messages: integrationRecord.messages,
44
+ };
45
+ }
46
+
34
47
  async createIntegration(entities, userId, config) {
35
- return IntegrationModel.create({
48
+ const integrationRecord = await IntegrationModel.create({
36
49
  entities: entities,
37
50
  user: userId,
38
51
  config,
39
52
  version: '0.0.0',
40
53
  });
54
+
55
+ return {
56
+ id: integrationRecord._id,
57
+ entitiesIds: integrationRecord.entities.map(e => e._id),
58
+ userId: integrationRecord.user.toString(),
59
+ config: integrationRecord.config,
60
+ version: integrationRecord.version,
61
+ status: integrationRecord.status,
62
+ messages: integrationRecord.messages,
63
+ };
41
64
  }
42
65
  }
43
66
 
@@ -8,19 +8,19 @@ const { GetIntegrationsForUser } = require('./use-cases/get-integrations-for-use
8
8
  const { CredentialRepository } = require('../credential/credential-repository');
9
9
  const { GetCredentialForUser } = require('../credential/use-cases/get-credential-for-user');
10
10
  const { CreateIntegration } = require('./use-cases/create-integration');
11
- const { ModuleService } = require('../module-plugin/module-service');
12
- const { ModuleRepository } = require('../module-plugin/module-repository');
13
- const { GetEntitiesForUser } = require('../module-plugin/use-cases/get-entities-for-user');
11
+ const { ModuleService } = require('../modules/module-service');
12
+ const { ModuleRepository } = require('../modules/module-repository');
13
+ const { GetEntitiesForUser } = require('../modules/use-cases/get-entities-for-user');
14
14
  const { loadAppDefinition } = require('../handlers/app-definition-loader');
15
15
  const { GetIntegrationInstance } = require('./use-cases/get-integration-instance');
16
16
  const { UpdateIntegration } = require('./use-cases/update-integration');
17
17
  const { getModulesDefinitionFromIntegrationClasses } = require('./utils/map-integration-dto');
18
- const { GetModuleInstanceFromType } = require('../module-plugin/use-cases/get-module-instance-from-type');
19
- const { GetEntityOptionsByType } = require('../module-plugin/use-cases/get-entity-options-by-type');
20
- const { TestModuleAuth } = require('../module-plugin/use-cases/test-module-auth');
21
- const { GetModule } = require('../module-plugin/use-cases/get-module');
22
- const { GetEntityOptionsById } = require('../module-plugin/use-cases/get-entity-options-by-id');
23
- const { RefreshEntityOptions } = require('../module-plugin/use-cases/refresh-entity-options');
18
+ const { GetModuleInstanceFromType } = require('../modules/use-cases/get-module-instance-from-type');
19
+ const { GetEntityOptionsByType } = require('../modules/use-cases/get-entity-options-by-type');
20
+ const { TestModuleAuth } = require('../modules/use-cases/test-module-auth');
21
+ const { GetModule } = require('../modules/use-cases/get-module');
22
+ const { GetEntityOptionsById } = require('../modules/use-cases/get-entity-options-by-id');
23
+ const { RefreshEntityOptions } = require('../modules/use-cases/refresh-entity-options');
24
24
  const { GetPossibleIntegrations } = require('./use-cases/get-possible-integrations');
25
25
 
26
26
  /**
@@ -6,7 +6,7 @@ class CreateIntegration {
6
6
  * @param {Object} params
7
7
  * @param {import('../integration-repository').IntegrationRepository} params.integrationRepository
8
8
  * @param {import('../integration-classes').IntegrationClasses} params.integrationClasses
9
- * @param {import('../../module-plugin/module-service').ModuleService} params.moduleService
9
+ * @param {import('../../modules/module-service').ModuleService} params.moduleService
10
10
  */
11
11
  constructor({ integrationRepository, integrationClasses, moduleService }) {
12
12
  this.integrationRepository = integrationRepository;
@@ -18,7 +18,6 @@ class CreateIntegration {
18
18
  const integrationRecord = await this.integrationRepository.createIntegration(entities, userId, config);
19
19
 
20
20
 
21
- // 2. Get the correct Integration class by type
22
21
  const integrationClass = this.integrationClasses.find(
23
22
  (integrationClass) => integrationClass.Definition.name === integrationRecord.config.type
24
23
  );
@@ -0,0 +1,12 @@
1
+ class EnableIntegration {
2
+ constructor({ integrationRepository }) {
3
+ this.integrationRepository = integrationRepository;
4
+ }
5
+
6
+ async execute(integrationId) {
7
+ const integration = await this.integrationRepository.updateIntegration(integrationId, 'ENABLED');
8
+ return integration;
9
+ }
10
+ }
11
+
12
+ module.exports = { EnableIntegration };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@friggframework/core",
3
3
  "prettier": "@friggframework/prettier-config",
4
- "version": "2.0.0--canary.397.db073e6.0",
4
+ "version": "2.0.0--canary.397.17c930a.0",
5
5
  "dependencies": {
6
6
  "@hapi/boom": "^10.0.1",
7
7
  "aws-sdk": "^2.1200.0",
@@ -22,9 +22,9 @@
22
22
  "uuid": "^9.0.1"
23
23
  },
24
24
  "devDependencies": {
25
- "@friggframework/eslint-config": "2.0.0--canary.397.db073e6.0",
26
- "@friggframework/prettier-config": "2.0.0--canary.397.db073e6.0",
27
- "@friggframework/test": "2.0.0--canary.397.db073e6.0",
25
+ "@friggframework/eslint-config": "2.0.0--canary.397.17c930a.0",
26
+ "@friggframework/prettier-config": "2.0.0--canary.397.17c930a.0",
27
+ "@friggframework/test": "2.0.0--canary.397.17c930a.0",
28
28
  "@types/lodash": "4.17.15",
29
29
  "@typescript-eslint/eslint-plugin": "^8.0.0",
30
30
  "chai": "^4.3.6",
@@ -53,5 +53,5 @@
53
53
  },
54
54
  "homepage": "https://github.com/friggframework/frigg#readme",
55
55
  "description": "",
56
- "gitHead": "db073e64e46dafe5b3afd08c234471b73af4e942"
56
+ "gitHead": "17c930a2dfe417f16b61c1facd6c04b17a6b7d83"
57
57
  }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes