@orchesty/connector-upgates 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 (123) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +190 -0
  3. package/coverage/clover.xml +302 -0
  4. package/coverage/coverage-final.json +11 -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/UpgatesCreateWebhooks.ts.html +358 -0
  14. package/coverage/lcov-report/src/Batch/UpgatesGetOrders.ts.html +727 -0
  15. package/coverage/lcov-report/src/Batch/UpgatesGetProducts.ts.html +733 -0
  16. package/coverage/lcov-report/src/Batch/index.html +146 -0
  17. package/coverage/lcov-report/src/Connector/UpgatesDeleteWebhooks.ts.html +370 -0
  18. package/coverage/lcov-report/src/Connector/UpgatesGetOrderStates.ts.html +190 -0
  19. package/coverage/lcov-report/src/Connector/UpgatesGetPayments.ts.html +268 -0
  20. package/coverage/lcov-report/src/Connector/UpgatesGetProductParameters.ts.html +316 -0
  21. package/coverage/lcov-report/src/Connector/UpgatesGetShipments.ts.html +274 -0
  22. package/coverage/lcov-report/src/Connector/index.html +176 -0
  23. package/coverage/lcov-report/src/UpgatesApplication.ts.html +379 -0
  24. package/coverage/lcov-report/src/index.html +116 -0
  25. package/coverage/lcov-report/test/dataProvider.ts.html +223 -0
  26. package/coverage/lcov-report/test/index.html +116 -0
  27. package/coverage/lcov.info +485 -0
  28. package/dist/Batch/UpgatesCreateWebhooks.d.ts +17 -0
  29. package/dist/Batch/UpgatesCreateWebhooks.js +61 -0
  30. package/dist/Batch/UpgatesGetOrders.d.ts +148 -0
  31. package/dist/Batch/UpgatesGetOrders.js +51 -0
  32. package/dist/Batch/UpgatesGetProducts.d.ts +146 -0
  33. package/dist/Batch/UpgatesGetProducts.js +70 -0
  34. package/dist/Connector/UpgatesDeleteWebhooks.d.ts +15 -0
  35. package/dist/Connector/UpgatesDeleteWebhooks.js +62 -0
  36. package/dist/Connector/UpgatesGetOrderStates.d.ts +15 -0
  37. package/dist/Connector/UpgatesGetOrderStates.js +21 -0
  38. package/dist/Connector/UpgatesGetPayments.d.ts +38 -0
  39. package/dist/Connector/UpgatesGetPayments.js +21 -0
  40. package/dist/Connector/UpgatesGetProductParameters.d.ts +37 -0
  41. package/dist/Connector/UpgatesGetProductParameters.js +33 -0
  42. package/dist/Connector/UpgatesGetShipments.d.ts +40 -0
  43. package/dist/Connector/UpgatesGetShipments.js +21 -0
  44. package/dist/Connector/UpgatesUpdateOrder.d.ts +37 -0
  45. package/dist/Connector/UpgatesUpdateOrder.js +24 -0
  46. package/dist/Connector/UpgatesUpdateStock.d.ts +21 -0
  47. package/dist/Connector/UpgatesUpdateStock.js +24 -0
  48. package/dist/UpgatesApplication.d.ts +21 -0
  49. package/dist/UpgatesApplication.js +105 -0
  50. package/dist/package.json +27 -0
  51. package/jest.config.js +13 -0
  52. package/package.json +27 -0
  53. package/src/Batch/UpgatesCreateWebhooks.ts +91 -0
  54. package/src/Batch/UpgatesGetOrders.ts +214 -0
  55. package/src/Batch/UpgatesGetProducts.ts +216 -0
  56. package/src/Batch/__tests__/Data/UpgatesCreateWebhooks/input.json +6 -0
  57. package/src/Batch/__tests__/Data/UpgatesCreateWebhooks/mock.json +14 -0
  58. package/src/Batch/__tests__/Data/UpgatesCreateWebhooks/output.json +6 -0
  59. package/src/Batch/__tests__/Data/UpgatesGetOrders/input.json +6 -0
  60. package/src/Batch/__tests__/Data/UpgatesGetOrders/lastRun-input.json +6 -0
  61. package/src/Batch/__tests__/Data/UpgatesGetOrders/lastRun-mock.json +191 -0
  62. package/src/Batch/__tests__/Data/UpgatesGetOrders/lastRun-output.json +11 -0
  63. package/src/Batch/__tests__/Data/UpgatesGetOrders/mock.json +191 -0
  64. package/src/Batch/__tests__/Data/UpgatesGetOrders/orderNumber-input.json +8 -0
  65. package/src/Batch/__tests__/Data/UpgatesGetOrders/orderNumber-mock.json +191 -0
  66. package/src/Batch/__tests__/Data/UpgatesGetOrders/orderNumber-output.json +11 -0
  67. package/src/Batch/__tests__/Data/UpgatesGetOrders/orderNumbers-input.json +8 -0
  68. package/src/Batch/__tests__/Data/UpgatesGetOrders/orderNumbers-mock.json +191 -0
  69. package/src/Batch/__tests__/Data/UpgatesGetOrders/orderNumbers-output.json +11 -0
  70. package/src/Batch/__tests__/Data/UpgatesGetOrders/output.json +11 -0
  71. package/src/Batch/__tests__/Data/UpgatesGetProducts/input.json +6 -0
  72. package/src/Batch/__tests__/Data/UpgatesGetProducts/lastRun-input.json +6 -0
  73. package/src/Batch/__tests__/Data/UpgatesGetProducts/lastRun-mock.json +147 -0
  74. package/src/Batch/__tests__/Data/UpgatesGetProducts/lastRun-output.json +11 -0
  75. package/src/Batch/__tests__/Data/UpgatesGetProducts/mock.json +146 -0
  76. package/src/Batch/__tests__/Data/UpgatesGetProducts/output.json +11 -0
  77. package/src/Batch/__tests__/Data/UpgatesGetProducts/productId-input.json +8 -0
  78. package/src/Batch/__tests__/Data/UpgatesGetProducts/productId-mock.json +146 -0
  79. package/src/Batch/__tests__/Data/UpgatesGetProducts/productId-output.json +11 -0
  80. package/src/Batch/__tests__/Data/UpgatesGetProducts/productIds-input.json +8 -0
  81. package/src/Batch/__tests__/Data/UpgatesGetProducts/productIds-mock.json +146 -0
  82. package/src/Batch/__tests__/Data/UpgatesGetProducts/productIds-output.json +11 -0
  83. package/src/Batch/__tests__/UpgatesCreateWebhooks.ts +17 -0
  84. package/src/Batch/__tests__/UpgatesGetOrders.ts +33 -0
  85. package/src/Batch/__tests__/UpgatesGetProducts.ts +33 -0
  86. package/src/Connector/UpgatesDeleteWebhooks.ts +95 -0
  87. package/src/Connector/UpgatesGetOrderStates.ts +35 -0
  88. package/src/Connector/UpgatesGetPayments.ts +61 -0
  89. package/src/Connector/UpgatesGetProductParameters.ts +77 -0
  90. package/src/Connector/UpgatesGetShipments.ts +63 -0
  91. package/src/Connector/UpgatesUpdateOrder.ts +73 -0
  92. package/src/Connector/UpgatesUpdateStock.ts +59 -0
  93. package/src/Connector/__tests__/Data/UpgatesDeleteWebhooks/input.json +6 -0
  94. package/src/Connector/__tests__/Data/UpgatesDeleteWebhooks/mock.json +16 -0
  95. package/src/Connector/__tests__/Data/UpgatesDeleteWebhooks/output.json +6 -0
  96. package/src/Connector/__tests__/Data/UpgatesGetOrderStates/input.json +6 -0
  97. package/src/Connector/__tests__/Data/UpgatesGetOrderStates/mock.json +14 -0
  98. package/src/Connector/__tests__/Data/UpgatesGetOrderStates/output.json +15 -0
  99. package/src/Connector/__tests__/Data/UpgatesGetPayments/input.json +6 -0
  100. package/src/Connector/__tests__/Data/UpgatesGetPayments/mock.json +42 -0
  101. package/src/Connector/__tests__/Data/UpgatesGetPayments/output.json +43 -0
  102. package/src/Connector/__tests__/Data/UpgatesGetProductParameters/both-input.json +9 -0
  103. package/src/Connector/__tests__/Data/UpgatesGetProductParameters/both-mock.json +108 -0
  104. package/src/Connector/__tests__/Data/UpgatesGetProductParameters/both-output.json +109 -0
  105. package/src/Connector/__tests__/Data/UpgatesGetProductParameters/input.json +8 -0
  106. package/src/Connector/__tests__/Data/UpgatesGetProductParameters/mock.json +108 -0
  107. package/src/Connector/__tests__/Data/UpgatesGetProductParameters/none-input.json +6 -0
  108. package/src/Connector/__tests__/Data/UpgatesGetProductParameters/none-mock.json +5 -0
  109. package/src/Connector/__tests__/Data/UpgatesGetProductParameters/none-output.json +6 -0
  110. package/src/Connector/__tests__/Data/UpgatesGetProductParameters/output.json +109 -0
  111. package/src/Connector/__tests__/Data/UpgatesGetShipments/input.json +6 -0
  112. package/src/Connector/__tests__/Data/UpgatesGetShipments/mock.json +58 -0
  113. package/src/Connector/__tests__/Data/UpgatesGetShipments/output.json +59 -0
  114. package/src/Connector/__tests__/UpgatesDeleteWebhooks.ts +61 -0
  115. package/src/Connector/__tests__/UpgatesGetOrderStates.ts +18 -0
  116. package/src/Connector/__tests__/UpgatesGetPayments.ts +18 -0
  117. package/src/Connector/__tests__/UpgatesGetProductParameters.ts +28 -0
  118. package/src/Connector/__tests__/UpgatesGetShipments.ts +18 -0
  119. package/src/UpgatesApplication.ts +98 -0
  120. package/test/dataProvider.ts +46 -0
  121. package/tsconfig.json +8 -0
  122. package/tsconfig.prod.json +13 -0
  123. package/tsconfig.prod.tsbuildinfo +1 -0
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NAME = void 0;
7
+ const ABatchNode_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode"));
8
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
9
+ const luxon_1 = require("luxon");
10
+ const UpgatesApplication_1 = require("../UpgatesApplication");
11
+ exports.NAME = `${UpgatesApplication_1.NAME.toLowerCase()}-get-orders`;
12
+ const LIST_PAGE_ENDPOINT = 'api/v2/orders';
13
+ class UpgatesGetOrders extends ABatchNode_1.default {
14
+ getName() {
15
+ return exports.NAME;
16
+ }
17
+ async processAction(dto) {
18
+ const app = this.getApplication();
19
+ const appInstall = await this.getApplicationInstallFromProcess(dto);
20
+ const { from, orderNumber, orderNumbers } = dto.getJsonData();
21
+ const pageNumber = dto.getBatchCursor('1');
22
+ let url;
23
+ if (orderNumbers) {
24
+ url = `${LIST_PAGE_ENDPOINT}?order_numbers=${orderNumbers}`;
25
+ }
26
+ else if (orderNumber) {
27
+ url = `${LIST_PAGE_ENDPOINT}/${orderNumber}`;
28
+ }
29
+ else {
30
+ url = `${LIST_PAGE_ENDPOINT}?page=${pageNumber}`;
31
+ const lastRun = from ?? app.getIsoDateFromDate(appInstall.getNonEncryptedSettings().orderLastRun);
32
+ if (lastRun) {
33
+ url = `${url}&creation_time_from=${lastRun}`;
34
+ }
35
+ }
36
+ const requestDto = app.getRequestDto(dto, appInstall, HttpMethods_1.HttpMethods.GET, url);
37
+ const res = await this.getSender().send(requestDto);
38
+ const { number_of_pages, orders, } = res.getJsonBody();
39
+ if (Number(pageNumber) < number_of_pages) {
40
+ dto.setBatchCursor((Number(pageNumber) + 1).toString());
41
+ }
42
+ else if (!orderNumber) {
43
+ appInstall.setNonEncryptedSettings({ orderLastRun: luxon_1.DateTime.now() });
44
+ const repo = this.getDbClient().getApplicationRepository();
45
+ await repo.update(appInstall);
46
+ }
47
+ dto.setItemList(orders);
48
+ return dto;
49
+ }
50
+ }
51
+ exports.default = UpgatesGetOrders;
@@ -0,0 +1,146 @@
1
+ import ABatchNode from '@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode';
2
+ import BatchProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/BatchProcessDto';
3
+ export declare const NAME = "upgates-get-products";
4
+ export default class UpgatesGetProducts extends ABatchNode {
5
+ getName(): string;
6
+ processAction(dto: BatchProcessDto<IInput>): Promise<BatchProcessDto>;
7
+ }
8
+ export interface IProductJson {
9
+ products: IProduct[];
10
+ }
11
+ export interface IProduct {
12
+ code: string;
13
+ code_supplier: string;
14
+ ean: string;
15
+ product_id: number;
16
+ active_yn: boolean;
17
+ archived_yn: boolean;
18
+ replacement_product_code: string;
19
+ can_add_to_basket_yn: boolean;
20
+ adult_yn: boolean;
21
+ descriptions: IProductDescription[];
22
+ manufacturer: string;
23
+ stock: number;
24
+ stock_position: number;
25
+ availability: string;
26
+ availability_type: AvailabilityTypeEnum;
27
+ weight: number;
28
+ shipment_group: string;
29
+ images: IProductImage[];
30
+ categories: IProductCategories;
31
+ groups: number[];
32
+ prices: IProductPrice[];
33
+ vats: Record<string, number>;
34
+ parameters: IProductParameters[];
35
+ labels: IProductLabel[];
36
+ variants: IProductVariant[];
37
+ related: string[];
38
+ accessories: string[];
39
+ alternative: string[];
40
+ gifts: string[];
41
+ sets: string[];
42
+ metas: IProductVariantMeta[];
43
+ admin_url: string;
44
+ }
45
+ export interface IProductDescription {
46
+ language: string;
47
+ title: string;
48
+ short_description: string;
49
+ long_description: string;
50
+ url: string;
51
+ unit: string;
52
+ }
53
+ interface IProductImage {
54
+ url: string;
55
+ main_yn: boolean;
56
+ list_yn: boolean;
57
+ position: number;
58
+ titles: IProductImageTitle[];
59
+ }
60
+ interface IProductImageTitle {
61
+ language: string;
62
+ title: string;
63
+ }
64
+ interface IProductCategories {
65
+ category_id: number;
66
+ code: string;
67
+ main_yn: boolean;
68
+ position: number;
69
+ name: string;
70
+ }
71
+ interface IProductPrice {
72
+ language: string;
73
+ currency: string;
74
+ pricelists: IProductPricePriceList[];
75
+ }
76
+ interface IProductPricePriceList {
77
+ name: string;
78
+ price_original: number;
79
+ product_discount: number;
80
+ product_discount_real: number;
81
+ price_sale: number;
82
+ price_with_vat: number;
83
+ price_without_vat: number;
84
+ }
85
+ interface IProductParameters {
86
+ name: Record<string, string>;
87
+ values: Record<string, string>;
88
+ }
89
+ interface IProductLabel {
90
+ name: Record<string, string>;
91
+ active_yn: boolean;
92
+ active_from: Date;
93
+ active_to: Date;
94
+ }
95
+ interface IProductVariant {
96
+ code: string;
97
+ code_supplier: string;
98
+ ean: string;
99
+ variant_id: number;
100
+ active_yn: boolean;
101
+ can_add_to_basket_yn: boolean;
102
+ stock: number;
103
+ stock_position: string;
104
+ availability: string;
105
+ availability_type: AvailabilityTypeEnum;
106
+ weight: number;
107
+ image: string;
108
+ prices: IProductPrice[];
109
+ parameters: IProductParameters[];
110
+ labels: IProductLabel[];
111
+ metas: IProductVariantMeta[];
112
+ }
113
+ interface IProductVariantMeta {
114
+ key: string;
115
+ type: MetaTypeEnum;
116
+ value: string | boolean;
117
+ values: IProductVariantMetaValues[];
118
+ }
119
+ interface IProductVariantMetaValues {
120
+ language: string;
121
+ value: string;
122
+ }
123
+ export interface IInput {
124
+ from?: string;
125
+ productId?: string;
126
+ productIds?: string;
127
+ }
128
+ declare enum AvailabilityTypeEnum {
129
+ ON_REQUEST = "OnRequest",
130
+ NOT_AVAILABLE = "NotAvailable",
131
+ IN_STOCK = "InStock",
132
+ CUSTOM = "Custom"
133
+ }
134
+ declare enum MetaTypeEnum {
135
+ RADIO = "radio",
136
+ CHECKBOX = "checkbox",
137
+ INPUT = "input",
138
+ DATE = "date",
139
+ EMAIL = "email",
140
+ NUMBER = "number",
141
+ SELECT = "select",
142
+ MULTISELECT = "multiselect",
143
+ TEXTAREA = "textarea",
144
+ FORMATTED = "formatted"
145
+ }
146
+ export {};
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NAME = void 0;
7
+ const ABatchNode_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode"));
8
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
9
+ const luxon_1 = require("luxon");
10
+ const LIST_PAGE_ENDPOINT = 'api/v2/products';
11
+ exports.NAME = 'upgates-get-products';
12
+ class UpgatesGetProducts extends ABatchNode_1.default {
13
+ getName() {
14
+ return exports.NAME;
15
+ }
16
+ async processAction(dto) {
17
+ const app = this.getApplication();
18
+ const appInstall = await this.getApplicationInstallFromProcess(dto);
19
+ const { from, productId, productIds } = dto.getJsonData();
20
+ const pageNumber = dto.getBatchCursor('1');
21
+ let url = LIST_PAGE_ENDPOINT;
22
+ if (productIds) {
23
+ url = `${url}?product_ids=${productIds}`;
24
+ }
25
+ else if (productId) {
26
+ url = `${url}?product_id=${productId}`;
27
+ }
28
+ else {
29
+ url = `${url}?page=${pageNumber}`;
30
+ const lastRun = from ?? app.getIsoDateFromDate(appInstall.getNonEncryptedSettings().productLastRun);
31
+ if (lastRun) {
32
+ url = `${url}&last_update_time_from=${lastRun}`;
33
+ }
34
+ }
35
+ const requestDto = app.getRequestDto(dto, appInstall, HttpMethods_1.HttpMethods.GET, url);
36
+ const res = await this.getSender().send(requestDto);
37
+ const { number_of_pages, products } = res.getJsonBody();
38
+ if (Number(pageNumber) < number_of_pages) {
39
+ dto.setBatchCursor((Number(pageNumber) + 1).toString());
40
+ }
41
+ else if (!productId) {
42
+ appInstall.setNonEncryptedSettings({ productLastRun: luxon_1.DateTime.now() });
43
+ const repo = this.getDbClient().getApplicationRepository();
44
+ await repo.update(appInstall);
45
+ }
46
+ dto.setItemList(products);
47
+ return dto;
48
+ }
49
+ }
50
+ exports.default = UpgatesGetProducts;
51
+ var AvailabilityTypeEnum;
52
+ (function (AvailabilityTypeEnum) {
53
+ AvailabilityTypeEnum["ON_REQUEST"] = "OnRequest";
54
+ AvailabilityTypeEnum["NOT_AVAILABLE"] = "NotAvailable";
55
+ AvailabilityTypeEnum["IN_STOCK"] = "InStock";
56
+ AvailabilityTypeEnum["CUSTOM"] = "Custom";
57
+ })(AvailabilityTypeEnum || (AvailabilityTypeEnum = {}));
58
+ var MetaTypeEnum;
59
+ (function (MetaTypeEnum) {
60
+ MetaTypeEnum["RADIO"] = "radio";
61
+ MetaTypeEnum["CHECKBOX"] = "checkbox";
62
+ MetaTypeEnum["INPUT"] = "input";
63
+ MetaTypeEnum["DATE"] = "date";
64
+ MetaTypeEnum["EMAIL"] = "email";
65
+ MetaTypeEnum["NUMBER"] = "number";
66
+ MetaTypeEnum["SELECT"] = "select";
67
+ MetaTypeEnum["MULTISELECT"] = "multiselect";
68
+ MetaTypeEnum["TEXTAREA"] = "textarea";
69
+ MetaTypeEnum["FORMATTED"] = "formatted";
70
+ })(MetaTypeEnum || (MetaTypeEnum = {}));
@@ -0,0 +1,15 @@
1
+ import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
2
+ import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
3
+ export declare const NAME = "upgates-delete-webhooks";
4
+ export default class UpgatesDeleteWebhooks extends AConnector {
5
+ getName(): string;
6
+ processAction(dto: ProcessDto): Promise<ProcessDto>;
7
+ }
8
+ export interface IResponse {
9
+ webhooks: IWebhook[];
10
+ }
11
+ export interface IWebhook {
12
+ id: string | number;
13
+ deleted: boolean;
14
+ messages: string[];
15
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NAME = void 0;
7
+ const Webhook_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Application/Database/Webhook"));
8
+ const AConnector_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Connector/AConnector"));
9
+ const OnRepeatException_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Exception/OnRepeatException"));
10
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
11
+ const http_status_codes_1 = require("http-status-codes");
12
+ exports.NAME = 'upgates-delete-webhooks';
13
+ const UPGATES_DELETE_WEBHOOK_ENDPOINT = 'api/v2/webhooks';
14
+ class UpgatesDeleteWebhooks extends AConnector_1.default {
15
+ getName() {
16
+ return exports.NAME;
17
+ }
18
+ async processAction(dto) {
19
+ const app = this.getApplication();
20
+ let appInstall;
21
+ try {
22
+ appInstall = await this.getApplicationInstallFromProcess(dto, null, true);
23
+ }
24
+ catch (e) {
25
+ appInstall = await this.getApplicationInstallFromProcess(dto, null, false);
26
+ }
27
+ const repo = this.getDbClient().getRepository(Webhook_1.default);
28
+ const webhooks = (await repo.findMany({ users: [appInstall.getUser()], apps: [app.getName()] }))
29
+ .filter((item) => !item.getUnsubscribeFailed());
30
+ const webhooksIds = [];
31
+ webhooks.forEach((webhook) => {
32
+ webhooksIds.push(Number(webhook.getWebhookId()));
33
+ });
34
+ if (webhooks && webhooks.length > 0) {
35
+ const requestDto = app.getRequestDto(dto, appInstall, HttpMethods_1.HttpMethods.DELETE, `${UPGATES_DELETE_WEBHOOK_ENDPOINT}?ids=${webhooksIds.join(';')}`);
36
+ const res = await this.getSender().send(requestDto);
37
+ if (res.getResponseCode() !== http_status_codes_1.StatusCodes.OK && res.getResponseCode() !== http_status_codes_1.StatusCodes.NOT_FOUND) {
38
+ await Promise.all(webhooks.map(async (wantedDelete) => {
39
+ wantedDelete.setUnsubscribeFailed(true);
40
+ return repo.update(wantedDelete);
41
+ }));
42
+ throw new OnRepeatException_1.default(60, 10, res.getBody());
43
+ }
44
+ let repeat = false;
45
+ const resData = res.getJsonBody().webhooks;
46
+ await Promise.all(webhooks.map(async (wantedDelete) => {
47
+ const foundWebhook = resData?.find((item) => String(item.id) === wantedDelete.getWebhookId());
48
+ if (foundWebhook) {
49
+ return repo.remove(wantedDelete);
50
+ }
51
+ repeat = true;
52
+ wantedDelete.setUnsubscribeFailed(true);
53
+ return repo.update(wantedDelete);
54
+ }));
55
+ if (repeat) {
56
+ throw new OnRepeatException_1.default(60, 10, res.getBody());
57
+ }
58
+ }
59
+ return dto;
60
+ }
61
+ }
62
+ exports.default = UpgatesDeleteWebhooks;
@@ -0,0 +1,15 @@
1
+ import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
2
+ import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
3
+ export declare const NAME = "upgates-get-order-states";
4
+ export default class UpgatesGetOrderStates extends AConnector {
5
+ getName(): string;
6
+ processAction(dto: ProcessDto): Promise<ProcessDto<IOutput>>;
7
+ }
8
+ export interface IOutput {
9
+ states: {
10
+ id: number;
11
+ type: string;
12
+ color: string;
13
+ names: Record<string, string>;
14
+ }[];
15
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NAME = void 0;
7
+ const AConnector_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Connector/AConnector"));
8
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
9
+ exports.NAME = 'upgates-get-order-states';
10
+ const GET_ORDER_STATES_ENDPOINT = 'api/v2/orders/states';
11
+ class UpgatesGetOrderStates extends AConnector_1.default {
12
+ getName() {
13
+ return exports.NAME;
14
+ }
15
+ async processAction(dto) {
16
+ const req = await this.getApplication().getRequestDto(dto, await this.getApplicationInstallFromProcess(dto, null), HttpMethods_1.HttpMethods.GET, GET_ORDER_STATES_ENDPOINT);
17
+ const resp = await this.getSender().send(req, [200]);
18
+ return dto.setNewJsonData(resp.getJsonBody());
19
+ }
20
+ }
21
+ exports.default = UpgatesGetOrderStates;
@@ -0,0 +1,38 @@
1
+ import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
2
+ import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
3
+ export declare const NAME = "upgates-get-payments";
4
+ export default class UpgatesGetPayments extends AConnector {
5
+ getName(): string;
6
+ processAction(dto: ProcessDto): Promise<ProcessDto<IOutput>>;
7
+ }
8
+ export interface IOutput {
9
+ current_page: number;
10
+ current_page_items: number;
11
+ number_of_pages: number;
12
+ number_of_items: number;
13
+ payments: IPayment[];
14
+ }
15
+ export interface IPayment {
16
+ id: string;
17
+ code: string;
18
+ image_url: string;
19
+ type: string;
20
+ active_yn: boolean;
21
+ descriptions: {
22
+ language_id: string;
23
+ name: string;
24
+ description: string;
25
+ price: number;
26
+ price_type: string;
27
+ free_from: number;
28
+ }[];
29
+ metas: {
30
+ key: string;
31
+ type: string;
32
+ value: string;
33
+ values: {
34
+ language: string;
35
+ value: string;
36
+ }[];
37
+ }[];
38
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NAME = void 0;
7
+ const AConnector_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Connector/AConnector"));
8
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
9
+ exports.NAME = 'upgates-get-payments';
10
+ const GET_PAYMENTS_ENDPOINT = 'api/v2/payments';
11
+ class UpgatesGetPayments extends AConnector_1.default {
12
+ getName() {
13
+ return exports.NAME;
14
+ }
15
+ async processAction(dto) {
16
+ const req = await this.getApplication().getRequestDto(dto, await this.getApplicationInstallFromProcess(dto, null), HttpMethods_1.HttpMethods.GET, GET_PAYMENTS_ENDPOINT);
17
+ const resp = await this.getSender().send(req, [200]);
18
+ return dto.setNewJsonData(resp.getJsonBody());
19
+ }
20
+ }
21
+ exports.default = UpgatesGetPayments;
@@ -0,0 +1,37 @@
1
+ import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
2
+ import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
3
+ export declare const NAME = "upgates-get-product-parameters";
4
+ export default class UpgatesGetProductParameters extends AConnector {
5
+ getName(): string;
6
+ processAction(dto: ProcessDto<IInput>): Promise<ProcessDto<IOutput>>;
7
+ }
8
+ export interface IInput {
9
+ code?: string;
10
+ productId?: string;
11
+ }
12
+ export interface IOutput {
13
+ current_page: number;
14
+ current_page_items: number;
15
+ number_of_pages: number;
16
+ number_of_items: number;
17
+ products: IProduct[];
18
+ }
19
+ export interface IProduct {
20
+ code: string;
21
+ parameters: {
22
+ name: Record<string, string>;
23
+ values: Record<string, string>[];
24
+ }[];
25
+ variants: [
26
+ {
27
+ code: string;
28
+ parameters: [
29
+ {
30
+ name: Record<string, string>;
31
+ values: Record<string, string>[];
32
+ }
33
+ ];
34
+ }
35
+ ];
36
+ admin_url: string;
37
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NAME = void 0;
7
+ const AConnector_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Connector/AConnector"));
8
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
9
+ exports.NAME = 'upgates-get-product-parameters';
10
+ const GET_PARAMETERS_ENDPOINT = 'api/v2/products/parameters/';
11
+ class UpgatesGetProductParameters extends AConnector_1.default {
12
+ getName() {
13
+ return exports.NAME;
14
+ }
15
+ async processAction(dto) {
16
+ const { code, productId } = dto.getJsonData();
17
+ if (!code && !productId) {
18
+ throw new Error('At least one parameter must be inserted.');
19
+ }
20
+ let url = GET_PARAMETERS_ENDPOINT;
21
+ if (code) {
22
+ url = `${url}?code=${code}`;
23
+ }
24
+ if (productId) {
25
+ const joinChar = url.includes('?') ? '&' : '?';
26
+ url = `${url}${joinChar}product_id=${productId}`;
27
+ }
28
+ const req = await this.getApplication().getRequestDto(dto, await this.getApplicationInstallFromProcess(dto, null), HttpMethods_1.HttpMethods.GET, url);
29
+ const resp = await this.getSender().send(req, [200]);
30
+ return dto.setNewJsonData(resp.getJsonBody());
31
+ }
32
+ }
33
+ exports.default = UpgatesGetProductParameters;
@@ -0,0 +1,40 @@
1
+ import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
2
+ import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
3
+ export declare const NAME = "upgates-get-shipments";
4
+ export default class UpgatesGetShipments extends AConnector {
5
+ getName(): string;
6
+ processAction(dto: ProcessDto): Promise<ProcessDto<IOutput>>;
7
+ }
8
+ export interface IOutput {
9
+ current_page: number;
10
+ current_page_items: number;
11
+ number_of_pages: number;
12
+ number_of_items: number;
13
+ shipments: IShipment[];
14
+ }
15
+ export interface IShipment {
16
+ id: string;
17
+ code: string;
18
+ image_url: string;
19
+ type: string;
20
+ active_yn: boolean;
21
+ affiliates_types: string[];
22
+ tracking_url: string;
23
+ internal_note: string;
24
+ descriptions: {
25
+ language_id: string;
26
+ name: string;
27
+ description: string;
28
+ price: number;
29
+ free_from: number;
30
+ }[];
31
+ metas: {
32
+ key: string;
33
+ type: string;
34
+ value: string;
35
+ values: {
36
+ language: string;
37
+ value: string;
38
+ }[];
39
+ }[];
40
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NAME = void 0;
7
+ const AConnector_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Connector/AConnector"));
8
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
9
+ exports.NAME = 'upgates-get-shipments';
10
+ const GET_SHIPMENTS_ENDPOINT = 'api/v2/shipments';
11
+ class UpgatesGetShipments extends AConnector_1.default {
12
+ getName() {
13
+ return exports.NAME;
14
+ }
15
+ async processAction(dto) {
16
+ const req = await this.getApplication().getRequestDto(dto, await this.getApplicationInstallFromProcess(dto, null), HttpMethods_1.HttpMethods.GET, GET_SHIPMENTS_ENDPOINT);
17
+ const resp = await this.getSender().send(req, [200]);
18
+ return dto.setNewJsonData(resp.getJsonBody());
19
+ }
20
+ }
21
+ exports.default = UpgatesGetShipments;
@@ -0,0 +1,37 @@
1
+ import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
2
+ import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
3
+ export declare const NAME = "upgates-update-order";
4
+ export default class UpgatesUpdateOrder extends AConnector {
5
+ getName(): string;
6
+ processAction(dto: ProcessDto<IInput>): Promise<ProcessDto<IOrder[]>>;
7
+ }
8
+ export interface IInput {
9
+ data: IUpdateOrders;
10
+ }
11
+ interface IUpdateOrders {
12
+ orders: IUpdate[];
13
+ send_emails_yn?: boolean;
14
+ send_sms_yn?: boolean;
15
+ }
16
+ interface IUpdate {
17
+ order_number: string;
18
+ status?: string;
19
+ status_id?: number;
20
+ paid_date?: Date;
21
+ tracking_code?: string;
22
+ resolved_yn?: boolean;
23
+ internal_note?: string;
24
+ metas?: Record<string, string>[];
25
+ }
26
+ interface IOrder {
27
+ order_number: string;
28
+ order_url: string;
29
+ updated_yn: string;
30
+ messages: IMessage[];
31
+ }
32
+ interface IMessage {
33
+ object: string;
34
+ property: string;
35
+ message: string;
36
+ }
37
+ export {};
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NAME = void 0;
7
+ const AConnector_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Connector/AConnector"));
8
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
9
+ const UPDATE_ORDER_ENDPOINT = 'api/v2/orders';
10
+ exports.NAME = 'upgates-update-order';
11
+ class UpgatesUpdateOrder extends AConnector_1.default {
12
+ getName() {
13
+ return exports.NAME;
14
+ }
15
+ async processAction(dto) {
16
+ const app = this.getApplication();
17
+ const { data } = dto.getJsonData();
18
+ const appInstall = await this.getApplicationInstallFromProcess(dto);
19
+ const requestDto = app.getRequestDto(dto, appInstall, HttpMethods_1.HttpMethods.PUT, UPDATE_ORDER_ENDPOINT, JSON.stringify(data));
20
+ const { orders } = (await this.getSender().send(requestDto)).getJsonBody();
21
+ return dto.setNewJsonData(orders);
22
+ }
23
+ }
24
+ exports.default = UpgatesUpdateOrder;
@@ -0,0 +1,21 @@
1
+ import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
2
+ import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
3
+ export declare const NAME = "upgates-update-stock";
4
+ export default class UpgatesUpdateStock extends AConnector {
5
+ getName(): string;
6
+ processAction(dto: ProcessDto<IInput>): Promise<ProcessDto>;
7
+ }
8
+ export interface IInput {
9
+ data: IUpdateStock;
10
+ }
11
+ interface IUpdateStock {
12
+ products?: {
13
+ code: string;
14
+ stock: number;
15
+ }[];
16
+ variants?: {
17
+ code: string;
18
+ stock: number;
19
+ }[];
20
+ }
21
+ export {};