@friggframework/core 2.0.0--canary.398.53eac55.0 → 2.0.0--canary.397.878fefa.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.
- package/README.md +931 -50
- package/core/create-handler.js +1 -0
- package/credential/credential-repository.js +42 -0
- package/credential/use-cases/get-credential-for-user.js +21 -0
- package/credential/use-cases/update-authentication-status.js +15 -0
- package/database/models/WebsocketConnection.js +0 -5
- package/handlers/app-definition-loader.js +38 -0
- package/handlers/app-handler-helpers.js +0 -3
- package/handlers/backend-utils.js +35 -34
- package/handlers/routers/auth.js +3 -14
- package/handlers/routers/integration-defined-routers.js +8 -5
- package/handlers/routers/user.js +25 -5
- package/handlers/workers/integration-defined-workers.js +6 -3
- package/index.js +1 -16
- package/integrations/index.js +0 -5
- package/integrations/integration-base.js +42 -44
- package/integrations/integration-repository.js +67 -0
- package/integrations/integration-router.js +301 -178
- package/integrations/integration.js +233 -0
- package/integrations/options.js +1 -1
- package/integrations/tests/doubles/dummy-integration-class.js +90 -0
- package/integrations/tests/doubles/test-integration-repository.js +89 -0
- package/integrations/tests/use-cases/create-integration.test.js +124 -0
- package/integrations/tests/use-cases/delete-integration-for-user.test.js +143 -0
- package/integrations/tests/use-cases/get-integration-for-user.test.js +143 -0
- package/integrations/tests/use-cases/get-integration-instance.test.js +169 -0
- package/integrations/tests/use-cases/get-integrations-for-user.test.js +169 -0
- package/integrations/tests/use-cases/get-possible-integrations.test.js +188 -0
- package/integrations/tests/use-cases/update-integration-messages.test.js +142 -0
- package/integrations/tests/use-cases/update-integration-status.test.js +103 -0
- package/integrations/tests/use-cases/update-integration.test.js +134 -0
- package/integrations/use-cases/create-integration.js +72 -0
- package/integrations/use-cases/delete-integration-for-user.js +73 -0
- package/integrations/use-cases/get-integration-for-user.js +79 -0
- package/integrations/use-cases/get-integration-instance.js +84 -0
- package/integrations/use-cases/get-integrations-for-user.js +77 -0
- package/integrations/use-cases/get-possible-integrations.js +27 -0
- package/integrations/use-cases/index.js +11 -0
- package/integrations/use-cases/update-integration-messages.js +31 -0
- package/integrations/use-cases/update-integration-status.js +28 -0
- package/integrations/use-cases/update-integration.js +92 -0
- package/integrations/utils/map-integration-dto.js +36 -0
- package/{module-plugin → modules}/index.js +0 -8
- package/modules/module-factory.js +54 -0
- package/modules/module-repository.js +107 -0
- package/modules/module.js +221 -0
- package/{module-plugin → modules}/test/mock-api/api.js +8 -3
- package/{module-plugin → modules}/test/mock-api/definition.js +12 -8
- package/modules/tests/doubles/test-module-factory.js +16 -0
- package/modules/tests/doubles/test-module-repository.js +19 -0
- package/modules/use-cases/get-entities-for-user.js +32 -0
- package/modules/use-cases/get-entity-options-by-id.js +58 -0
- package/modules/use-cases/get-entity-options-by-type.js +34 -0
- package/modules/use-cases/get-module-instance-from-type.js +31 -0
- package/modules/use-cases/get-module.js +56 -0
- package/modules/use-cases/process-authorization-callback.js +114 -0
- package/modules/use-cases/refresh-entity-options.js +58 -0
- package/modules/use-cases/test-module-auth.js +54 -0
- package/modules/utils/map-module-dto.js +18 -0
- package/package.json +5 -5
- package/syncs/sync.js +0 -1
- package/types/integrations/index.d.ts +2 -6
- package/types/module-plugin/index.d.ts +4 -56
- package/types/syncs/index.d.ts +0 -2
- package/user/tests/doubles/test-user-repository.js +72 -0
- package/user/tests/use-cases/create-individual-user.test.js +24 -0
- package/user/tests/use-cases/create-organization-user.test.js +28 -0
- package/user/tests/use-cases/create-token-for-user-id.test.js +19 -0
- package/user/tests/use-cases/get-user-from-bearer-token.test.js +64 -0
- package/user/tests/use-cases/login-user.test.js +140 -0
- package/user/use-cases/create-individual-user.js +61 -0
- package/user/use-cases/create-organization-user.js +47 -0
- package/user/use-cases/create-token-for-user-id.js +30 -0
- package/user/use-cases/get-user-from-bearer-token.js +77 -0
- package/user/use-cases/login-user.js +122 -0
- package/user/user-repository.js +62 -0
- package/user/user.js +77 -0
- package/handlers/routers/middleware/loadUser.js +0 -15
- package/handlers/routers/middleware/requireLoggedInUser.js +0 -12
- package/integrations/create-frigg-backend.js +0 -31
- package/integrations/integration-factory.js +0 -251
- package/integrations/integration-user.js +0 -144
- package/integrations/test/integration-base.test.js +0 -144
- package/module-plugin/auther.js +0 -393
- package/module-plugin/entity-manager.js +0 -70
- package/module-plugin/manager.js +0 -169
- package/module-plugin/module-factory.js +0 -61
- /package/{module-plugin → modules}/ModuleConstants.js +0 -0
- /package/{module-plugin → modules}/credential.js +0 -0
- /package/{module-plugin → modules}/entity.js +0 -0
- /package/{module-plugin → modules}/requester/api-key.js +0 -0
- /package/{module-plugin → modules}/requester/basic.js +0 -0
- /package/{module-plugin → modules}/requester/oauth-2.js +0 -0
- /package/{module-plugin → modules}/requester/requester.js +0 -0
- /package/{module-plugin → modules}/requester/requester.test.js +0 -0
- /package/{module-plugin → modules}/test/auther.test.js +0 -0
- /package/{module-plugin → modules}/test/mock-api/mocks/hubspot.js +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
const { IntegrationModel } = require('./integration-model');
|
|
2
|
+
|
|
3
|
+
class IntegrationRepository {
|
|
4
|
+
async findIntegrationsByUserId(userId) {
|
|
5
|
+
const integrationRecords = await IntegrationModel.find({ user: userId }, '', { lean: true }).populate('entities');
|
|
6
|
+
return integrationRecords.map(integrationRecord => ({
|
|
7
|
+
id: integrationRecord._id,
|
|
8
|
+
entitiesIds: integrationRecord.entities.map(e => e._id),
|
|
9
|
+
userId: integrationRecord.user.toString(),
|
|
10
|
+
config: integrationRecord.config,
|
|
11
|
+
version: integrationRecord.version,
|
|
12
|
+
status: integrationRecord.status,
|
|
13
|
+
messages: integrationRecord.messages,
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async deleteIntegrationById(integrationId) {
|
|
18
|
+
return IntegrationModel.deleteOne({ _id: integrationId });
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async findIntegrationById(id) {
|
|
22
|
+
const integrationRecord = await IntegrationModel.findById(id, '', { lean: true }).populate('entities');
|
|
23
|
+
return {
|
|
24
|
+
id: integrationRecord._id,
|
|
25
|
+
entitiesIds: integrationRecord.entities.map(e => e._id),
|
|
26
|
+
userId: integrationRecord.user.toString(),
|
|
27
|
+
config: integrationRecord.config,
|
|
28
|
+
version: integrationRecord.version,
|
|
29
|
+
status: integrationRecord.status,
|
|
30
|
+
messages: integrationRecord.messages,
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async updateIntegrationStatus(integrationId, status) {
|
|
35
|
+
const integrationRecord = await IntegrationModel.updateOne({ _id: integrationId }, { status });
|
|
36
|
+
return integrationRecord.acknowledged;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async updateIntegrationMessages(integrationId, messageType, messageTitle, messageBody, messageTimestamp) {
|
|
40
|
+
const integrationRecord = await IntegrationModel.updateOne(
|
|
41
|
+
{ _id: integrationId },
|
|
42
|
+
{ $push: { [`messages.${messageType}`]: { title: messageTitle, message: messageBody, timestamp: messageTimestamp } } }
|
|
43
|
+
);
|
|
44
|
+
return integrationRecord.acknowledged;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
async createIntegration(entities, userId, config) {
|
|
48
|
+
const integrationRecord = await IntegrationModel.create({
|
|
49
|
+
entities: entities,
|
|
50
|
+
user: userId,
|
|
51
|
+
config,
|
|
52
|
+
version: '0.0.0',
|
|
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
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
module.exports = { IntegrationRepository };
|