@friggframework/core 2.0.0--canary.397.58770d0.0 → 2.0.0--canary.397.4cedf64.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 (36) 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-repository.js +11 -1
  5. package/integrations/integration-router.js +17 -12
  6. package/integrations/integration.js +0 -19
  7. package/integrations/use-cases/create-integration.js +1 -2
  8. package/integrations/use-cases/get-integrations-for-user.js +0 -1
  9. package/integrations/use-cases/get-possible-integrations.js +13 -0
  10. package/integrations/utils/map-integration-dto.js +0 -1
  11. package/package.json +5 -5
  12. /package/{module-plugin → modules}/ModuleConstants.js +0 -0
  13. /package/{module-plugin → modules}/credential.js +0 -0
  14. /package/{module-plugin → modules}/entity.js +0 -0
  15. /package/{module-plugin → modules}/index.js +0 -0
  16. /package/{module-plugin → modules}/manager.js +0 -0
  17. /package/{module-plugin → modules}/module-repository.js +0 -0
  18. /package/{module-plugin → modules}/module-service.js +0 -0
  19. /package/{module-plugin → modules}/module.js +0 -0
  20. /package/{module-plugin → modules}/requester/api-key.js +0 -0
  21. /package/{module-plugin → modules}/requester/basic.js +0 -0
  22. /package/{module-plugin → modules}/requester/oauth-2.js +0 -0
  23. /package/{module-plugin → modules}/requester/requester.js +0 -0
  24. /package/{module-plugin → modules}/requester/requester.test.js +0 -0
  25. /package/{module-plugin → modules}/test/auther.test.js +0 -0
  26. /package/{module-plugin → modules}/test/mock-api/api.js +0 -0
  27. /package/{module-plugin → modules}/test/mock-api/definition.js +0 -0
  28. /package/{module-plugin → modules}/test/mock-api/mocks/hubspot.js +0 -0
  29. /package/{module-plugin → modules}/use-cases/get-entities-for-user.js +0 -0
  30. /package/{module-plugin → modules}/use-cases/get-entity-options-by-id.js +0 -0
  31. /package/{module-plugin → modules}/use-cases/get-entity-options-by-type.js +0 -0
  32. /package/{module-plugin → modules}/use-cases/get-module-instance-from-type.js +0 -0
  33. /package/{module-plugin → modules}/use-cases/get-module.js +0 -0
  34. /package/{module-plugin → modules}/use-cases/refresh-entity-options.js +0 -0
  35. /package/{module-plugin → modules}/use-cases/test-module-auth.js +0 -0
  36. /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');
@@ -32,12 +32,22 @@ class IntegrationRepository {
32
32
  }
33
33
 
34
34
  async createIntegration(entities, userId, config) {
35
- return IntegrationModel.create({
35
+ const integrationRecord = await IntegrationModel.create({
36
36
  entities: entities,
37
37
  user: userId,
38
38
  config,
39
39
  version: '0.0.0',
40
40
  });
41
+
42
+ return {
43
+ id: integrationRecord._id,
44
+ entitiesIds: integrationRecord.entities.map(e => e._id),
45
+ userId: integrationRecord.user.toString(),
46
+ config: integrationRecord.config,
47
+ version: integrationRecord.version,
48
+ status: integrationRecord.status,
49
+ messages: integrationRecord.messages,
50
+ };
41
51
  }
42
52
  }
43
53
 
@@ -8,19 +8,20 @@ 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
+ const { GetPossibleIntegrations } = require('./use-cases/get-possible-integrations');
24
25
 
25
26
  /**
26
27
  * Creates an Express router with integration and entity routes configured
@@ -104,6 +105,10 @@ function createIntegrationRouter(params) {
104
105
  moduleDefinitions: getModulesDefinitionFromIntegrationClasses(integrationClasses),
105
106
  });
106
107
 
108
+ const getPossibleIntegrations = new GetPossibleIntegrations({
109
+ integrationClasses,
110
+ });
111
+
107
112
  const router = get(params, 'router', express());
108
113
  const getUserFromBearerToken = get(params, 'getUserFromBearerToken');
109
114
 
@@ -114,6 +119,7 @@ function createIntegrationRouter(params) {
114
119
  getEntitiesForUser,
115
120
  getIntegrationInstance,
116
121
  updateIntegration,
122
+ getPossibleIntegrations,
117
123
  });
118
124
  setEntityRoutes(router, getUserFromBearerToken, {
119
125
  getCredentialForUser,
@@ -163,6 +169,7 @@ function setIntegrationRoutes(router, getUserFromBearerToken, useCases) {
163
169
  getEntitiesForUser,
164
170
  getIntegrationInstance,
165
171
  updateIntegration,
172
+ getPossibleIntegrations,
166
173
  } = useCases;
167
174
  router.route('/api/integrations').get(
168
175
  catchAsyncError(async (req, res) => {
@@ -173,9 +180,7 @@ function setIntegrationRoutes(router, getUserFromBearerToken, useCases) {
173
180
  const integrations = await getIntegrationsForUser.execute(userId);
174
181
  const results = {
175
182
  entities: {
176
- options: integrations.map((integration) =>
177
- integration.options
178
- ),
183
+ options: await getPossibleIntegrations.execute(),
179
184
  authorized: await getEntitiesForUser.execute(userId),
180
185
  },
181
186
  integrations: integrations,
@@ -211,25 +211,6 @@ class Integration {
211
211
  });
212
212
  return options.get();
213
213
  }
214
-
215
- /**
216
- * Custom JSON serializer to prevent circular references (e.g. Module → Api → delegate)
217
- * and to keep API responses lightweight.
218
- * Only primitive, serialisable data needed by clients is returned.
219
- */
220
- toJSON() {
221
- return {
222
- id: this.id,
223
- userId: this.userId,
224
- entities: this.entities,
225
- config: this.config,
226
- status: this.status,
227
- version: this.version,
228
- messages: this.messages,
229
- // Expose userActions if they were loaded/attached elsewhere
230
- userActions: this.userActions,
231
- };
232
- }
233
214
  }
234
215
 
235
216
  module.exports = { Integration };
@@ -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
  );
@@ -46,7 +46,6 @@ class GetIntegrationsForUser {
46
46
  status: integrationRecord.status,
47
47
  version: integrationRecord.version,
48
48
  messages: integrationRecord.messages,
49
- entityReference: integrationRecord.entityReference,
50
49
  integrationClass: integrationClass,
51
50
  modules
52
51
  });
@@ -0,0 +1,13 @@
1
+ class GetPossibleIntegrations {
2
+ constructor({ integrationClasses }) {
3
+ this.integrationClasses = integrationClasses;
4
+ }
5
+
6
+ async execute() {
7
+ return this.integrationClasses.map((integrationClass) =>
8
+ integrationClass.getOptionDetails()
9
+ );
10
+ }
11
+ }
12
+
13
+ module.exports = { GetPossibleIntegrations };
@@ -13,7 +13,6 @@ function mapIntegrationClassToIntegrationDTO(integration) {
13
13
  status: integration.status,
14
14
  version: integration.version,
15
15
  messages: integration.messages,
16
- entityReference: integration.entityReference,
17
16
  userActions: integration.userActions,
18
17
  options: integration.getOptionDetails(),
19
18
  };
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.58770d0.0",
4
+ "version": "2.0.0--canary.397.4cedf64.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.58770d0.0",
26
- "@friggframework/prettier-config": "2.0.0--canary.397.58770d0.0",
27
- "@friggframework/test": "2.0.0--canary.397.58770d0.0",
25
+ "@friggframework/eslint-config": "2.0.0--canary.397.4cedf64.0",
26
+ "@friggframework/prettier-config": "2.0.0--canary.397.4cedf64.0",
27
+ "@friggframework/test": "2.0.0--canary.397.4cedf64.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": "58770d02726c3f3ed9bf3e3260c57d3c2df9efc6"
56
+ "gitHead": "4cedf648a1675ba589e66f40ee9b3c700b12f0b5"
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