@orchesty/connector-onesignal 1.0.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 (45) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +190 -0
  3. package/coverage/clover.xml +95 -0
  4. package/coverage/coverage-final.json +5 -0
  5. package/coverage/lcov-report/base.css +224 -0
  6. package/coverage/lcov-report/block-navigation.js +87 -0
  7. package/coverage/lcov-report/favicon.png +0 -0
  8. package/coverage/lcov-report/index.html +161 -0
  9. package/coverage/lcov-report/prettify.css +1 -0
  10. package/coverage/lcov-report/prettify.js +2 -0
  11. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  12. package/coverage/lcov-report/sorter.js +210 -0
  13. package/coverage/lcov-report/src/Batch/OnesignalViewAppsBatch.ts.html +265 -0
  14. package/coverage/lcov-report/src/Batch/index.html +116 -0
  15. package/coverage/lcov-report/src/Connector/OnesignalCreateAppConnector.ts.html +316 -0
  16. package/coverage/lcov-report/src/Connector/index.html +116 -0
  17. package/coverage/lcov-report/src/OnesignalApplication.ts.html +298 -0
  18. package/coverage/lcov-report/src/index.html +116 -0
  19. package/coverage/lcov-report/test/dataProvider.ts.html +181 -0
  20. package/coverage/lcov-report/test/index.html +116 -0
  21. package/coverage/lcov.info +129 -0
  22. package/dist/Batch/OnesignalViewAppsBatch.d.ts +33 -0
  23. package/dist/Batch/OnesignalViewAppsBatch.js +24 -0
  24. package/dist/Connector/OnesignalCreateAppConnector.d.ts +52 -0
  25. package/dist/Connector/OnesignalCreateAppConnector.js +21 -0
  26. package/dist/OnesignalApplication.d.ts +18 -0
  27. package/dist/OnesignalApplication.js +89 -0
  28. package/dist/package.json +22 -0
  29. package/jest.config.js +13 -0
  30. package/package.json +22 -0
  31. package/src/Batch/OnesignalViewAppsBatch.ts +60 -0
  32. package/src/Batch/__tests__/Data/OnesignalViewAppsBatch/input.json +6 -0
  33. package/src/Batch/__tests__/Data/OnesignalViewAppsBatch/mock.json +58 -0
  34. package/src/Batch/__tests__/Data/OnesignalViewAppsBatch/output.json +15 -0
  35. package/src/Batch/__tests__/OnesignalViewAppsBatch.ts +17 -0
  36. package/src/Connector/OnesignalCreateAppConnector.ts +77 -0
  37. package/src/Connector/__tests__/Data/OnesignalCreateAppConnector/input.json +8 -0
  38. package/src/Connector/__tests__/Data/OnesignalCreateAppConnector/mock.json +32 -0
  39. package/src/Connector/__tests__/Data/OnesignalCreateAppConnector/output.json +33 -0
  40. package/src/Connector/__tests__/OnesignalCreateAppConnector.ts +17 -0
  41. package/src/OnesignalApplication.ts +71 -0
  42. package/test/dataProvider.ts +32 -0
  43. package/tsconfig.json +8 -0
  44. package/tsconfig.prod.json +13 -0
  45. package/tsconfig.prod.tsbuildinfo +1 -0
@@ -0,0 +1,58 @@
1
+ {
2
+ "http": "GET https://onesignal.com/api/v1/apps",
3
+ "code": 200,
4
+ "body": [
5
+ {
6
+ "apns_certificates": "Your apns certificate",
7
+ "apns_env": "sandbox",
8
+ "basic_auth_key": "NGEwMGZmMjItY2NkNy0xMWUzLTk5ZDUtMDAwYzI5NDBlNjJj",
9
+ "chrome_key": "A Chrome Web Push GCM key",
10
+ "chrome_web_default_notification_icon": "http://yoursite.com/chrome_notification_icon",
11
+ "chrome_web_gcm_sender_id": "Chrome Web Push GCM Sender ID",
12
+ "chrome_web_origin": "Chrome Web Push Site URL",
13
+ "chrome_web_sub_domain": "your_site_name",
14
+ "created_at": "2014-04-01T04:20:02.003Z",
15
+ "gcm_key": "a gcm push key",
16
+ "id": "92911750-242d-4260-9e00-9d9034f139ce",
17
+ "messageable_players": 143,
18
+ "name": "Your app 1",
19
+ "players": 150,
20
+ "safari_apns_certificate": "Your Safari APNS certificate",
21
+ "safari_icon_128_128": "http://onesignal.com/safari_packages/92911750-242d-4260-9e00-9d9034f139ce/128x128.png",
22
+ "safari_icon_16_16": "http://onesignal.com/safari_packages/92911750-242d-4260-9e00-9d9034f139ce/16x16.png",
23
+ "safari_icon_256_256": "http://onesignal.com/safari_packages/92911750-242d-4260-9e00-9d9034f139ce/128x128@2x.png",
24
+ "safari_icon_32_32": "http://onesignal.com/safari_packages/92911750-242d-4260-9e00-9d9034f139ce/16x16@2.png",
25
+ "safari_icon_64_64": "http://onesignal.com/safari_packages/92911750-242d-4260-9e00-9d9034f139ce/32x32@2x.png",
26
+ "safari_push_id": "The certificate bundle ID for Safari Web Push",
27
+ "safari_site_origin": "The homename for your website for Safari Push, including http or https",
28
+ "site_name": "The URL to your website for Web Push",
29
+ "updated_at": "2014-04-01T04:20:02.003Z"
30
+ },
31
+ {
32
+ "apns_certificates": "Your apns certificate",
33
+ "apns_env": "sandbox",
34
+ "basic_auth_key": "NGEwMGZmMjItY2NkNy0xMWUzLTk5ZDUtMDAwYzI5NDBlNjJj",
35
+ "chrome_key": "A Chrome Web Push GCM key",
36
+ "chrome_web_default_notification_icon": "http://yoursite.com/chrome_notification_icon",
37
+ "chrome_web_gcm_sender_id": "Chrome Web Push GCM Sender ID",
38
+ "chrome_web_origin": "Chrome Web Push Site URL",
39
+ "chrome_web_sub_domain": "your_site_name",
40
+ "created_at": "2014-04-01T04:20:02.003Z",
41
+ "gcm_key": "a gcm push key",
42
+ "id": "e4e87830-b954-11e3-811d-f3b376925f15",
43
+ "messageable_players": 80,
44
+ "name": "Your app 2",
45
+ "players": 100,
46
+ "safari_apns_certificate": "Your Safari APNS certificate",
47
+ "safari_icon_128_128": "http://onesignal.com/safari_packages/e4e87830-b954-11e3-811d-f3b376925f15/128x128.png",
48
+ "safari_icon_16_16": "http://onesignal.com/safari_packages/e4e87830-b954-11e3-811d-f3b376925f15/16x16.png",
49
+ "safari_icon_256_256": "http://onesignal.com/safari_packages/e4e87830-b954-11e3-811d-f3b376925f15/128x128@2x.png",
50
+ "safari_icon_32_32": "http://onesignal.com/safari_packages/e4e87830-b954-11e3-811d-f3b376925f15/16x16@2.png",
51
+ "safari_icon_64_64": "http://onesignal.com/safari_packages/e4e87830-b954-11e3-811d-f3b376925f15/32x32@2x.png",
52
+ "safari_push_id": "The certificate bundle ID for Safari Web Push",
53
+ "safari_site_origin": "The homename for your website for Safari Push, including http or https",
54
+ "site_name": "The URL to your website for Web Push",
55
+ "updated_at": "2014-04-01T04:20:02.003Z"
56
+ }
57
+ ]
58
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "headers": {
3
+ "user": "TestUser"
4
+ },
5
+ "data": [
6
+ {
7
+ "body": "{\"apns_certificates\":\"Your apns certificate\",\"apns_env\":\"sandbox\",\"basic_auth_key\":\"NGEwMGZmMjItY2NkNy0xMWUzLTk5ZDUtMDAwYzI5NDBlNjJj\",\"chrome_key\":\"A Chrome Web Push GCM key\",\"chrome_web_default_notification_icon\":\"http://yoursite.com/chrome_notification_icon\",\"chrome_web_gcm_sender_id\":\"Chrome Web Push GCM Sender ID\",\"chrome_web_origin\":\"Chrome Web Push Site URL\",\"chrome_web_sub_domain\":\"your_site_name\",\"created_at\":\"2014-04-01T04:20:02.003Z\",\"gcm_key\":\"a gcm push key\",\"id\":\"92911750-242d-4260-9e00-9d9034f139ce\",\"messageable_players\":143,\"name\":\"Your app 1\",\"players\":150,\"safari_apns_certificate\":\"Your Safari APNS certificate\",\"safari_icon_128_128\":\"http://onesignal.com/safari_packages/92911750-242d-4260-9e00-9d9034f139ce/128x128.png\",\"safari_icon_16_16\":\"http://onesignal.com/safari_packages/92911750-242d-4260-9e00-9d9034f139ce/16x16.png\",\"safari_icon_256_256\":\"http://onesignal.com/safari_packages/92911750-242d-4260-9e00-9d9034f139ce/128x128@2x.png\",\"safari_icon_32_32\":\"http://onesignal.com/safari_packages/92911750-242d-4260-9e00-9d9034f139ce/16x16@2.png\",\"safari_icon_64_64\":\"http://onesignal.com/safari_packages/92911750-242d-4260-9e00-9d9034f139ce/32x32@2x.png\",\"safari_push_id\":\"The certificate bundle ID for Safari Web Push\",\"safari_site_origin\":\"The homename for your website for Safari Push, including http or https\",\"site_name\":\"The URL to your website for Web Push\",\"updated_at\":\"2014-04-01T04:20:02.003Z\"}",
8
+ "headers": {}
9
+ },
10
+ {
11
+ "body": "{\"apns_certificates\":\"Your apns certificate\",\"apns_env\":\"sandbox\",\"basic_auth_key\":\"NGEwMGZmMjItY2NkNy0xMWUzLTk5ZDUtMDAwYzI5NDBlNjJj\",\"chrome_key\":\"A Chrome Web Push GCM key\",\"chrome_web_default_notification_icon\":\"http://yoursite.com/chrome_notification_icon\",\"chrome_web_gcm_sender_id\":\"Chrome Web Push GCM Sender ID\",\"chrome_web_origin\":\"Chrome Web Push Site URL\",\"chrome_web_sub_domain\":\"your_site_name\",\"created_at\":\"2014-04-01T04:20:02.003Z\",\"gcm_key\":\"a gcm push key\",\"id\":\"e4e87830-b954-11e3-811d-f3b376925f15\",\"messageable_players\":80,\"name\":\"Your app 2\",\"players\":100,\"safari_apns_certificate\":\"Your Safari APNS certificate\",\"safari_icon_128_128\":\"http://onesignal.com/safari_packages/e4e87830-b954-11e3-811d-f3b376925f15/128x128.png\",\"safari_icon_16_16\":\"http://onesignal.com/safari_packages/e4e87830-b954-11e3-811d-f3b376925f15/16x16.png\",\"safari_icon_256_256\":\"http://onesignal.com/safari_packages/e4e87830-b954-11e3-811d-f3b376925f15/128x128@2x.png\",\"safari_icon_32_32\":\"http://onesignal.com/safari_packages/e4e87830-b954-11e3-811d-f3b376925f15/16x16@2.png\",\"safari_icon_64_64\":\"http://onesignal.com/safari_packages/e4e87830-b954-11e3-811d-f3b376925f15/32x32@2x.png\",\"safari_push_id\":\"The certificate bundle ID for Safari Web Push\",\"safari_site_origin\":\"The homename for your website for Safari Push, including http or https\",\"site_name\":\"The URL to your website for Web Push\",\"updated_at\":\"2014-04-01T04:20:02.003Z\"}",
12
+ "headers": {}
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,17 @@
1
+ import { container } from '@orchesty/nodejs-connectors/test/TestAbstract';
2
+ import NodeTester from '@orchesty/nodejs-sdk/dist/test/Testers/NodeTester';
3
+ import init from '../../../test/dataProvider';
4
+ import { NAME as ONESIGNAL_VIEW_APPS_BATCH } from '../OnesignalViewAppsBatch';
5
+
6
+ let tester: NodeTester;
7
+
8
+ describe('Tests for OnesignalViewAppsBatch', () => {
9
+ beforeEach(() => {
10
+ tester = new NodeTester(container, __filename);
11
+ init();
12
+ });
13
+
14
+ it('process - ok', async () => {
15
+ await tester.testBatch(ONESIGNAL_VIEW_APPS_BATCH);
16
+ });
17
+ });
@@ -0,0 +1,77 @@
1
+ import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
2
+ import { HttpMethods } from '@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods';
3
+ import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
4
+
5
+ export const NAME = 'onesignal-create-app-connector';
6
+
7
+ export default class OnesignalCreateAppConnector extends AConnector {
8
+
9
+ public getName(): string {
10
+ return NAME;
11
+ }
12
+
13
+ public async processAction(dto: ProcessDto<IInput>): Promise<ProcessDto<IOutput>> {
14
+ const appInstall = await this.getApplicationInstallFromProcess(dto);
15
+ const req = await this.getApplication().getRequestDto(
16
+ dto,
17
+ appInstall,
18
+ HttpMethods.POST,
19
+ 'apps',
20
+ dto.getJsonData(),
21
+ );
22
+ const resp = await this.getSender().send<IOutput>(req, [200]);
23
+
24
+ return dto.setNewJsonData(resp.getJsonBody());
25
+ }
26
+
27
+ }
28
+
29
+ /* eslint-disable @typescript-eslint/naming-convention */
30
+ export interface IInput {
31
+ name: string;
32
+ apns_env: string;
33
+ apns_p12: string;
34
+ apns_p12_password: string;
35
+ gcm_key: string;
36
+ android_gcm_sender_id: string;
37
+ chrome_web_origin: string;
38
+ chrome_web_default_notification_icon: string;
39
+ chrome_web_sub_domain: string;
40
+ chrome_key: string;
41
+ site_name: string;
42
+ safari_site_origin: string;
43
+ safari_apns_p12: string;
44
+ safari_apns_p12_password: string;
45
+ safari_icon_256_256: string;
46
+ additional_data_is_root_payload: boolean;
47
+ organization_id: string;
48
+ countent_type: string;
49
+ authorization: string;
50
+ }
51
+
52
+ export interface IOutput {
53
+ id: string;
54
+ name: string;
55
+ players: number;
56
+ messageable_players: number;
57
+ updated_at: string;
58
+ created_at: string;
59
+ gcm_key: string;
60
+ chrome_web_origin: string;
61
+ chrome_web_default_notification_icon: string;
62
+ chrome_web_sub_domain: string;
63
+ apns_env: string;
64
+ apns_certificates: string;
65
+ safari_apns_certificate: string;
66
+ safari_site_origin: string;
67
+ safari_push_id: string;
68
+ safari_icon_16_16: string;
69
+ safari_icon_32_32: string;
70
+ safari_icon_64_64: string;
71
+ safari_icon_128_128: string;
72
+ safari_icon_256_256: string;
73
+ site_name: string;
74
+ basic_auth_key: string;
75
+ }
76
+
77
+ /* eslint-enable @typescript-eslint/naming-convention */
@@ -0,0 +1,8 @@
1
+ {
2
+ "headers": {
3
+ "user": "TestUser"
4
+ },
5
+ "data": {
6
+ "name": "karel"
7
+ }
8
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "http": "POST https://onesignal.com/api/v1/apps",
3
+ "code": 200,
4
+ "body": {
5
+ "additional_data_is_root_payload": false,
6
+ "apns_certificates": null,
7
+ "apns_env": null,
8
+ "basic_auth_key": "NjU3YzlhMTUtMmZiNi00OTFlLTgxMjItYWU3ZjhmNTE2ZTkw",
9
+ "chrome_key": null,
10
+ "chrome_web_default_notification_icon": null,
11
+ "chrome_web_gcm_sender_id": null,
12
+ "chrome_web_key": null,
13
+ "chrome_web_origin": null,
14
+ "chrome_web_sub_domain": null,
15
+ "created_at": "2022-08-15T12:20:32.824Z",
16
+ "gcm_key": null,
17
+ "id": "a7fc445c-ae8f-41b6-8642-ed6ebdd7d320",
18
+ "messageable_players": 0,
19
+ "name": "karel",
20
+ "players": 0,
21
+ "safari_apns_certificate": null,
22
+ "safari_icon_128_128": "public/safari_packages/a7fc445c-ae8f-41b6-8642-ed6ebdd7d320/icons/128x128.png",
23
+ "safari_icon_16_16": "public/safari_packages/a7fc445c-ae8f-41b6-8642-ed6ebdd7d320/icons/16x16.png",
24
+ "safari_icon_256_256": "public/safari_packages/a7fc445c-ae8f-41b6-8642-ed6ebdd7d320/icons/128x128@2x.png",
25
+ "safari_icon_32_32": "public/safari_packages/a7fc445c-ae8f-41b6-8642-ed6ebdd7d320/icons/16x16@2x.png",
26
+ "safari_icon_64_64": "public/safari_packages/a7fc445c-ae8f-41b6-8642-ed6ebdd7d320/icons/32x32@2x.png",
27
+ "safari_push_id": null,
28
+ "safari_site_origin": null,
29
+ "site_name": null,
30
+ "updated_at": "2022-08-15T12:20:33.172Z"
31
+ }
32
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "headers": {
3
+ "user": "TestUser"
4
+ },
5
+ "data": {
6
+ "additional_data_is_root_payload": false,
7
+ "apns_certificates": null,
8
+ "apns_env": null,
9
+ "basic_auth_key": "NjU3YzlhMTUtMmZiNi00OTFlLTgxMjItYWU3ZjhmNTE2ZTkw",
10
+ "chrome_key": null,
11
+ "chrome_web_default_notification_icon": null,
12
+ "chrome_web_gcm_sender_id": null,
13
+ "chrome_web_key": null,
14
+ "chrome_web_origin": null,
15
+ "chrome_web_sub_domain": null,
16
+ "created_at": "2022-08-15T12:20:32.824Z",
17
+ "gcm_key": null,
18
+ "id": "a7fc445c-ae8f-41b6-8642-ed6ebdd7d320",
19
+ "messageable_players": 0,
20
+ "name": "karel",
21
+ "players": 0,
22
+ "safari_apns_certificate": null,
23
+ "safari_icon_128_128": "public/safari_packages/a7fc445c-ae8f-41b6-8642-ed6ebdd7d320/icons/128x128.png",
24
+ "safari_icon_16_16": "public/safari_packages/a7fc445c-ae8f-41b6-8642-ed6ebdd7d320/icons/16x16.png",
25
+ "safari_icon_256_256": "public/safari_packages/a7fc445c-ae8f-41b6-8642-ed6ebdd7d320/icons/128x128@2x.png",
26
+ "safari_icon_32_32": "public/safari_packages/a7fc445c-ae8f-41b6-8642-ed6ebdd7d320/icons/16x16@2x.png",
27
+ "safari_icon_64_64": "public/safari_packages/a7fc445c-ae8f-41b6-8642-ed6ebdd7d320/icons/32x32@2x.png",
28
+ "safari_push_id": null,
29
+ "safari_site_origin": null,
30
+ "site_name": null,
31
+ "updated_at": "2022-08-15T12:20:33.172Z"
32
+ }
33
+ }
@@ -0,0 +1,17 @@
1
+ import { container } from '@orchesty/nodejs-connectors/test/TestAbstract';
2
+ import NodeTester from '@orchesty/nodejs-sdk/dist/test/Testers/NodeTester';
3
+ import init from '../../../test/dataProvider';
4
+ import { NAME as ONESIGNAL_CREATE_APP_CONNECTOR } from '../OnesignalCreateAppConnector';
5
+
6
+ let tester: NodeTester;
7
+
8
+ describe('Tests for OnesignalCreateAppConnector', () => {
9
+ beforeEach(() => {
10
+ init();
11
+ tester = new NodeTester(container, __filename);
12
+ });
13
+
14
+ it('process - ok', async () => {
15
+ await tester.testConnector(ONESIGNAL_CREATE_APP_CONNECTOR);
16
+ });
17
+ });
@@ -0,0 +1,71 @@
1
+ import CoreFormsEnum, { getFormName } from '@orchesty/nodejs-sdk/dist/lib/Application/Base/CoreFormsEnum';
2
+ import { ApplicationInstall } from '@orchesty/nodejs-sdk/dist/lib/Application/Database/ApplicationInstall';
3
+ import Field from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/Field';
4
+ import FieldType from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/FieldType';
5
+ import Form from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/Form';
6
+ import FormStack from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/FormStack';
7
+ import { ABasicApplication } from '@orchesty/nodejs-sdk/dist/lib/Authorization/Type/Basic/ABasicApplication';
8
+ import RequestDto from '@orchesty/nodejs-sdk/dist/lib/Transport/Curl/RequestDto';
9
+ import { HttpMethods } from '@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods';
10
+ import AProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/AProcessDto';
11
+ import { CommonHeaders, JSON_TYPE } from '@orchesty/nodejs-sdk/dist/lib/Utils/Headers';
12
+
13
+ export const NAME = 'onesignal';
14
+ export const API_KEY = 'api_key';
15
+ export const REST_API_KEY = 'rest_api_key';
16
+
17
+ export default class OnesignalApplication extends ABasicApplication {
18
+
19
+ public getName(): string {
20
+ return NAME;
21
+ }
22
+
23
+ public getPublicName(): string {
24
+ return 'Onesignal';
25
+ }
26
+
27
+ public getDescription(): string {
28
+ return 'Market-leading customer messaging and engagement solution, offering mobile and web push notifications, in-app messaging, SMS, and email';
29
+ }
30
+
31
+ public getLogo(): string {
32
+ return 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IlZyc3R2YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTAwIDEwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiNFNDRBNDk7fQo8L3N0eWxlPgo8Zz4KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik01MC4xLDRDMjIuNSw0LDAuMSwyNi41LDAuMSw1NC4xYzAsMTcuNiw5LjIsMzMsMjIuNyw0MS45YzAuOC0wLjUsMS42LTEuMSwyLjQtMS42YzAuNS0wLjMsMS40LTAuOCwxLjktMS4xCgkJYzAuOC0wLjMsMS42LTAuOCwyLjItMS4xYzAuOC0wLjMsMS42LTAuNSwyLjQtMS4xYzAuNS0wLjMsMS40LTAuNSwxLjktMC44YzAuOC0wLjMsMS45LTAuNSwyLjctMC44YzAuOC0wLjMsMS40LTAuMywyLjItMC41CgkJYzAuOC0wLjMsMS40LTAuMywyLjItMC41YzAuOC0wLjMsMS42LTAuMywyLjQtMC4zbDAsMGMwLjgsMCwxLjktMC4zLDIuNy0wLjNsMCwwdi0zLjJ2LTIuN1Y3MC44di0yLjd2LTEwaC0yLjd2LTUuNGgyLjdoOC4xaDIuNwoJCXYxNC42djN2MTEuNHYyLjd2NC4xYzcuNiwxLjEsMTQuMywzLjgsMjAuNiw3LjZsMCwwQzkxLDg3LjEsOTkuOSw3MS42LDk5LjksNTQuMUMxMDAuMiwyNi41LDc3LjcsNCw1MC4xLDRMNTAuMSw0eiBNNjUsNTQuMQoJCWMwLTguMS02LjgtMTQuOS0xNC45LTE0LjlzLTE0LjksNi44LTE0LjksMTQuOWMwLDUuNywzLjIsMTAuOCw4LjEsMTMuM3YzYy02LjItMi43LTEwLjgtOC45LTEwLjgtMTYuMmMwLTkuNyw3LjgtMTcuNiwxNy42LTE3LjYKCQlzMTcuNiw3LjgsMTcuNiwxNy42YzAsNi4yLTMuMiwxMS42LTguMSwxNC45di0zLjJDNjIuOSw2Mi43LDY1LDU4LjcsNjUsNTQuMUw2NSw1NC4xeiBNNTkuNiw4My42di0zYzExLjEtMy44LDE4LjktMTQuMywxOC45LTI2LjgKCQljMC0xNS40LTEyLjctMjguMS0yOC40LTI4LjFTMjEuNywzOC40LDIxLjcsNTQuMWMwLDEzLjMsOS4yLDI0LjYsMjEuNiwyNy42djIuN0MyOS42LDgxLjQsMTksNjguOSwxOSw1NC4xCgkJYzAtMTcuMywxMy44LTMxLjEsMzEuMS0zMS4xczMxLjEsMTMuOCwzMS4xLDMxLjFDODEuMyw2Ny45LDcyLjEsNzkuOCw1OS42LDgzLjZMNTkuNiw4My42eiIvPgo8L2c+Cjwvc3ZnPgo=';
33
+ }
34
+
35
+ public getFormStack(): FormStack {
36
+ const form = new Form(CoreFormsEnum.AUTHORIZATION_FORM, getFormName(CoreFormsEnum.AUTHORIZATION_FORM))
37
+ .addField(new Field(FieldType.TEXT, API_KEY, 'api_key', undefined, true));
38
+
39
+ return new FormStack().addForm(form);
40
+ }
41
+
42
+ public isAuthorized(applicationInstall: ApplicationInstall): boolean {
43
+ const authorizationForm = applicationInstall.getSettings()[CoreFormsEnum.AUTHORIZATION_FORM];
44
+ return authorizationForm?.[API_KEY];
45
+ }
46
+
47
+ public getRequestDto(
48
+ dto: AProcessDto,
49
+ applicationInstall: ApplicationInstall,
50
+ method: HttpMethods,
51
+ _url?: string,
52
+ data?: unknown,
53
+ ): RequestDto {
54
+ const settings = applicationInstall.getSettings();
55
+ const key = settings[CoreFormsEnum.AUTHORIZATION_FORM][REST_API_KEY];
56
+ const url = `https://onesignal.com/api/v1/${_url}`;
57
+ const request = new RequestDto(url, method, dto);
58
+ request.setHeaders({
59
+ [CommonHeaders.CONTENT_TYPE]: JSON_TYPE,
60
+ [CommonHeaders.ACCEPT]: JSON_TYPE,
61
+ [CommonHeaders.AUTHORIZATION]: `Basic ${key}`,
62
+ });
63
+
64
+ if (data) {
65
+ request.setJsonBody(data);
66
+ }
67
+
68
+ return request;
69
+ }
70
+
71
+ }
@@ -0,0 +1,32 @@
1
+ import { appInstall, DEFAULT_USER } from '@orchesty/nodejs-connectors/test/DataProvider';
2
+ import { container, db, sender } from '@orchesty/nodejs-connectors/test/TestAbstract';
3
+ import CoreFormsEnum from '@orchesty/nodejs-sdk/dist/lib/Application/Base/CoreFormsEnum';
4
+ import OnesignalViewAppsBatch from '../src/Batch/OnesignalViewAppsBatch';
5
+ import OnesignalCreateAppConnector from '../src/Connector/OnesignalCreateAppConnector';
6
+ import OnesignalApplication, { NAME as ONESIGNAL_APP, REST_API_KEY } from '../src/OnesignalApplication';
7
+
8
+ export default function init(): void {
9
+ appInstall(ONESIGNAL_APP, DEFAULT_USER, {
10
+ [CoreFormsEnum.AUTHORIZATION_FORM]: {
11
+ [REST_API_KEY]: 'Api key',
12
+ },
13
+ });
14
+
15
+ const app = new OnesignalApplication();
16
+ container.setApplication(app);
17
+
18
+ const viewsApps = new OnesignalViewAppsBatch();
19
+ const createApp = new OnesignalCreateAppConnector();
20
+
21
+ createApp
22
+ .setSender(sender)
23
+ .setDb(db)
24
+ .setApplication(app);
25
+ container.setConnector(createApp);
26
+
27
+ viewsApps
28
+ .setSender(sender)
29
+ .setDb(db)
30
+ .setApplication(app);
31
+ container.setBatch(viewsApps);
32
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ "composite": true
6
+ },
7
+ "include": ["src", "test", "../../test"]
8
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "rootDir": "./src",
5
+ },
6
+ "include": [
7
+ "src",
8
+ ],
9
+ "exclude": [
10
+ "node_modules",
11
+ "src/**/__tests__",
12
+ ]
13
+ }