@orchesty/connector-woocommerce 1.0.0 → 2.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 (158) hide show
  1. package/README.md +102 -0
  2. package/dist/Connector/WooCommerceGetProductVariant.d.ts +15 -1
  3. package/dist/Connector/WooCommerceRegisterWebhook.js +1 -0
  4. package/dist/Connector/WooCommerceUnsubscribeWebhooks.js +5 -1
  5. package/dist/package.json +7 -5
  6. package/package.json +6 -4
  7. package/CHANGELOG.md +0 -12
  8. package/coverage/clover.xml +0 -404
  9. package/coverage/coverage-final.json +0 -21
  10. package/coverage/lcov-report/base.css +0 -224
  11. package/coverage/lcov-report/block-navigation.js +0 -87
  12. package/coverage/lcov-report/favicon.png +0 -0
  13. package/coverage/lcov-report/index.html +0 -161
  14. package/coverage/lcov-report/prettify.css +0 -1
  15. package/coverage/lcov-report/prettify.js +0 -2
  16. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  17. package/coverage/lcov-report/sorter.js +0 -210
  18. package/coverage/lcov-report/src/Batch/WooCommerceGetOrders.ts.html +0 -640
  19. package/coverage/lcov-report/src/Batch/WooCommerceGetProducts.ts.html +0 -532
  20. package/coverage/lcov-report/src/Batch/WooCommerceGetVariants.ts.html +0 -433
  21. package/coverage/lcov-report/src/Batch/index.html +0 -146
  22. package/coverage/lcov-report/src/Connector/WooCommerceAddNote.ts.html +0 -220
  23. package/coverage/lcov-report/src/Connector/WooCommerceCreateProduct.ts.html +0 -178
  24. package/coverage/lcov-report/src/Connector/WooCommerceCreateProductCategory.ts.html +0 -307
  25. package/coverage/lcov-report/src/Connector/WooCommerceGetOrderNotes.ts.html +0 -274
  26. package/coverage/lcov-report/src/Connector/WooCommerceGetOrderStatuses.ts.html +0 -175
  27. package/coverage/lcov-report/src/Connector/WooCommerceGetPaymentGateways.ts.html +0 -295
  28. package/coverage/lcov-report/src/Connector/WooCommerceGetProduct.ts.html +0 -181
  29. package/coverage/lcov-report/src/Connector/WooCommerceGetProductVariant.ts.html +0 -496
  30. package/coverage/lcov-report/src/Connector/WooCommerceGetProductsBySku.ts.html +0 -226
  31. package/coverage/lcov-report/src/Connector/WooCommerceGetSettingsGeneral.ts.html +0 -238
  32. package/coverage/lcov-report/src/Connector/WooCommerceGetShippingMethods.ts.html +0 -478
  33. package/coverage/lcov-report/src/Connector/WooCommerceUpdateOrder.ts.html +0 -193
  34. package/coverage/lcov-report/src/Connector/WooCommerceUpdateProduct.ts.html +0 -199
  35. package/coverage/lcov-report/src/Connector/WooCommerceUpdateProductQuantity.ts.html +0 -220
  36. package/coverage/lcov-report/src/Connector/WooCommerceUpdateProductVariant.ts.html +0 -199
  37. package/coverage/lcov-report/src/Connector/index.html +0 -326
  38. package/coverage/lcov-report/src/WooCommerceApplication.ts.html +0 -364
  39. package/coverage/lcov-report/src/index.html +0 -116
  40. package/coverage/lcov-report/test/dataProvider.ts.html +0 -427
  41. package/coverage/lcov-report/test/index.html +0 -116
  42. package/coverage/lcov.info +0 -661
  43. package/jest.config.js +0 -13
  44. package/src/Batch/WooCommerceGetOrders.ts +0 -185
  45. package/src/Batch/WooCommerceGetProducts.ts +0 -149
  46. package/src/Batch/WooCommerceGetVariants.ts +0 -116
  47. package/src/Batch/__tests__/Data/WooCommerceGetOrders/ids-input.json +0 -8
  48. package/src/Batch/__tests__/Data/WooCommerceGetOrders/ids-mock.json +0 -319
  49. package/src/Batch/__tests__/Data/WooCommerceGetOrders/ids-output.json +0 -16
  50. package/src/Batch/__tests__/Data/WooCommerceGetOrders/input.json +0 -6
  51. package/src/Batch/__tests__/Data/WooCommerceGetOrders/lastRun-input.json +0 -6
  52. package/src/Batch/__tests__/Data/WooCommerceGetOrders/lastRun-mock.json +0 -319
  53. package/src/Batch/__tests__/Data/WooCommerceGetOrders/lastRun-output.json +0 -15
  54. package/src/Batch/__tests__/Data/WooCommerceGetOrders/mock.json +0 -319
  55. package/src/Batch/__tests__/Data/WooCommerceGetOrders/output.json +0 -15
  56. package/src/Batch/__tests__/Data/WooCommerceGetProducts/input.json +0 -7
  57. package/src/Batch/__tests__/Data/WooCommerceGetProducts/mock.json +0 -170
  58. package/src/Batch/__tests__/Data/WooCommerceGetProducts/output.json +0 -11
  59. package/src/Batch/__tests__/Data/WooCommerceGetProducts/withAfter-input.json +0 -7
  60. package/src/Batch/__tests__/Data/WooCommerceGetProducts/withAfter-mock.json +0 -170
  61. package/src/Batch/__tests__/Data/WooCommerceGetProducts/withAfter-output.json +0 -11
  62. package/src/Batch/__tests__/Data/WooCommerceGetVariants/input.json +0 -169
  63. package/src/Batch/__tests__/Data/WooCommerceGetVariants/mock.json +0 -160
  64. package/src/Batch/__tests__/Data/WooCommerceGetVariants/output.json +0 -11
  65. package/src/Batch/__tests__/WooCommerceGetOrders.ts +0 -42
  66. package/src/Batch/__tests__/WooCommerceGetProducts.ts +0 -37
  67. package/src/Batch/__tests__/WooCommerceGetVariants.ts +0 -32
  68. package/src/Connector/WooCommerceAddNote.ts +0 -45
  69. package/src/Connector/WooCommerceCreateProduct.ts +0 -31
  70. package/src/Connector/WooCommerceCreateProductCategory.ts +0 -74
  71. package/src/Connector/WooCommerceGetOrderNotes.ts +0 -63
  72. package/src/Connector/WooCommerceGetOrderStatuses.ts +0 -30
  73. package/src/Connector/WooCommerceGetPaymentGateways.ts +0 -70
  74. package/src/Connector/WooCommerceGetProduct.ts +0 -32
  75. package/src/Connector/WooCommerceGetProductVariant.ts +0 -137
  76. package/src/Connector/WooCommerceGetProductsBySku.ts +0 -47
  77. package/src/Connector/WooCommerceGetSettingsGeneral.ts +0 -51
  78. package/src/Connector/WooCommerceGetShippingMethods.ts +0 -131
  79. package/src/Connector/WooCommerceRegisterWebhook.ts +0 -106
  80. package/src/Connector/WooCommerceUnsubscribeWebhooks.ts +0 -91
  81. package/src/Connector/WooCommerceUpdateOrder.ts +0 -36
  82. package/src/Connector/WooCommerceUpdateProduct.ts +0 -38
  83. package/src/Connector/WooCommerceUpdateProductQuantity.ts +0 -45
  84. package/src/Connector/WooCommerceUpdateProductVariant.ts +0 -38
  85. package/src/Connector/__tests__/Data/WooCommerceAddNote/input.json +0 -11
  86. package/src/Connector/__tests__/Data/WooCommerceAddNote/mock.json +0 -22
  87. package/src/Connector/__tests__/Data/WooCommerceAddNote/output.json +0 -23
  88. package/src/Connector/__tests__/Data/WooCommerceCreateProduct/input.json +0 -28
  89. package/src/Connector/__tests__/Data/WooCommerceCreateProduct/mock.json +0 -125
  90. package/src/Connector/__tests__/Data/WooCommerceCreateProduct/output.json +0 -126
  91. package/src/Connector/__tests__/Data/WooCommerceCreateProductCategory/input.json +0 -11
  92. package/src/Connector/__tests__/Data/WooCommerceCreateProductCategory/mock.json +0 -36
  93. package/src/Connector/__tests__/Data/WooCommerceCreateProductCategory/output.json +0 -37
  94. package/src/Connector/__tests__/Data/WooCommerceGetOrderNotes/input.json +0 -8
  95. package/src/Connector/__tests__/Data/WooCommerceGetOrderNotes/mock.json +0 -81
  96. package/src/Connector/__tests__/Data/WooCommerceGetOrderNotes/output.json +0 -82
  97. package/src/Connector/__tests__/Data/WooCommerceGetOrderStatuses/input.json +0 -6
  98. package/src/Connector/__tests__/Data/WooCommerceGetOrderStatuses/mock.json +0 -41
  99. package/src/Connector/__tests__/Data/WooCommerceGetOrderStatuses/output.json +0 -42
  100. package/src/Connector/__tests__/Data/WooCommerceGetPaymentGateways/input.json +0 -6
  101. package/src/Connector/__tests__/Data/WooCommerceGetPaymentGateways/mock.json +0 -350
  102. package/src/Connector/__tests__/Data/WooCommerceGetPaymentGateways/output.json +0 -351
  103. package/src/Connector/__tests__/Data/WooCommerceGetProduct/input.json +0 -8
  104. package/src/Connector/__tests__/Data/WooCommerceGetProduct/mock.json +0 -125
  105. package/src/Connector/__tests__/Data/WooCommerceGetProduct/output.json +0 -126
  106. package/src/Connector/__tests__/Data/WooCommerceGetProductVariant/input.json +0 -37
  107. package/src/Connector/__tests__/Data/WooCommerceGetProductVariant/mock.json +0 -81
  108. package/src/Connector/__tests__/Data/WooCommerceGetProductVariant/mock1.json +0 -81
  109. package/src/Connector/__tests__/Data/WooCommerceGetProductVariant/nok-input.json +0 -22
  110. package/src/Connector/__tests__/Data/WooCommerceGetProductVariant/nok-mock.json +0 -81
  111. package/src/Connector/__tests__/Data/WooCommerceGetProductVariant/nok-output.json +0 -24
  112. package/src/Connector/__tests__/Data/WooCommerceGetProductVariant/output.json +0 -37
  113. package/src/Connector/__tests__/Data/WooCommerceGetProductsBySku/input.json +0 -8
  114. package/src/Connector/__tests__/Data/WooCommerceGetProductsBySku/mock.json +0 -170
  115. package/src/Connector/__tests__/Data/WooCommerceGetProductsBySku/output.json +0 -169
  116. package/src/Connector/__tests__/Data/WooCommerceGetSettingsGeneral/input.json +0 -6
  117. package/src/Connector/__tests__/Data/WooCommerceGetSettingsGeneral/mock.json +0 -3459
  118. package/src/Connector/__tests__/Data/WooCommerceGetSettingsGeneral/output.json +0 -3460
  119. package/src/Connector/__tests__/Data/WooCommerceGetSettingsGeneral/with-id-input.json +0 -8
  120. package/src/Connector/__tests__/Data/WooCommerceGetSettingsGeneral/with-id-mock.json +0 -30
  121. package/src/Connector/__tests__/Data/WooCommerceGetSettingsGeneral/with-id-output.json +0 -31
  122. package/src/Connector/__tests__/Data/WooCommerceGetShippingMethods/input.json +0 -6
  123. package/src/Connector/__tests__/Data/WooCommerceGetShippingMethods/mock.json +0 -50
  124. package/src/Connector/__tests__/Data/WooCommerceGetShippingMethods/mock1.json +0 -187
  125. package/src/Connector/__tests__/Data/WooCommerceGetShippingMethods/mock2.json +0 -187
  126. package/src/Connector/__tests__/Data/WooCommerceGetShippingMethods/output.json +0 -373
  127. package/src/Connector/__tests__/Data/WooCommerceUpdateOrder/input.json +0 -9
  128. package/src/Connector/__tests__/Data/WooCommerceUpdateOrder/mock.json +0 -169
  129. package/src/Connector/__tests__/Data/WooCommerceUpdateOrder/output.json +0 -170
  130. package/src/Connector/__tests__/Data/WooCommerceUpdateProduct/input.json +0 -9
  131. package/src/Connector/__tests__/Data/WooCommerceUpdateProduct/mock.json +0 -125
  132. package/src/Connector/__tests__/Data/WooCommerceUpdateProduct/output.json +0 -126
  133. package/src/Connector/__tests__/Data/WooCommerceUpdateProductQuantity/input.json +0 -20
  134. package/src/Connector/__tests__/Data/WooCommerceUpdateProductQuantity/mock.json +0 -162
  135. package/src/Connector/__tests__/Data/WooCommerceUpdateProductQuantity/output.json +0 -6
  136. package/src/Connector/__tests__/Data/WooCommerceUpdateProductVariant/input.json +0 -10
  137. package/src/Connector/__tests__/Data/WooCommerceUpdateProductVariant/mock.json +0 -125
  138. package/src/Connector/__tests__/Data/WooCommerceUpdateProductVariant/output.json +0 -126
  139. package/src/Connector/__tests__/WooCommerceAddNote.ts +0 -18
  140. package/src/Connector/__tests__/WooCommerceCreateProduct.ts +0 -18
  141. package/src/Connector/__tests__/WooCommerceCreateProductCategory.ts +0 -18
  142. package/src/Connector/__tests__/WooCommerceGetOrderNotes.ts +0 -18
  143. package/src/Connector/__tests__/WooCommerceGetOrderStatuses.ts +0 -18
  144. package/src/Connector/__tests__/WooCommerceGetPaymentGateways.ts +0 -18
  145. package/src/Connector/__tests__/WooCommerceGetProduct.ts +0 -18
  146. package/src/Connector/__tests__/WooCommerceGetProductVariant.ts +0 -25
  147. package/src/Connector/__tests__/WooCommerceGetProductsBySku.ts +0 -18
  148. package/src/Connector/__tests__/WooCommerceGetSettingsGeneral.ts +0 -25
  149. package/src/Connector/__tests__/WooCommerceGetShippingMethods.ts +0 -18
  150. package/src/Connector/__tests__/WooCommerceUpdateOrder.ts +0 -18
  151. package/src/Connector/__tests__/WooCommerceUpdateProduct.ts +0 -18
  152. package/src/Connector/__tests__/WooCommerceUpdateProductQuantity.ts +0 -18
  153. package/src/Connector/__tests__/WooCommerceUpdateProductVariant.ts +0 -18
  154. package/src/WooCommerceApplication.ts +0 -93
  155. package/test/dataProvider.ts +0 -114
  156. package/tsconfig.json +0 -8
  157. package/tsconfig.prod.json +0 -13
  158. package/tsconfig.prod.tsbuildinfo +0 -1
@@ -1,185 +0,0 @@
1
- import ABatchNode from '@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode';
2
- import { HttpMethods } from '@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods';
3
- import BatchProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/BatchProcessDto';
4
- import { DateTime } from 'luxon';
5
- import WooCommerceApplication, { NAME as BASE_NAME } from '../WooCommerceApplication';
6
-
7
- export const NAME = `${BASE_NAME.toLowerCase()}-get-orders`;
8
-
9
- const WOOCOMMERCE_GET_ORDERS_ENDPOINT = 'wp-json/wc/v3/orders?per_page=100&page=';
10
-
11
- export default class WooCommerceGetOrders extends ABatchNode {
12
-
13
- public getName(): string {
14
- return NAME;
15
- }
16
-
17
- public async processAction(dto: BatchProcessDto<IInput>): Promise<BatchProcessDto> {
18
- const { ids } = dto.getJsonData();
19
- const pageNumber = dto.getBatchCursor('1');
20
- const app = this.getApplication<WooCommerceApplication>();
21
- const appInstall = await this.getApplicationInstallFromProcess(dto);
22
-
23
- let after;
24
- if (!ids) {
25
- after = app.getIsoDateFromDate(appInstall.getNonEncryptedSettings().orderLastRun);
26
- }
27
-
28
- const requestDto = app.getRequestDto(
29
- dto,
30
- appInstall,
31
- HttpMethods.GET,
32
- `${WOOCOMMERCE_GET_ORDERS_ENDPOINT}${pageNumber}${after ? `&after=${after}` : ''}${ids ? `&include=${ids}` : ''}`,
33
- );
34
-
35
- const res = await this.getSender().send<IResponseJson[]>(requestDto, [200, 404]);
36
- const totalPages = res.getHeaders()['x-wp-totalpages'];
37
- if (Number(totalPages) > Number(pageNumber)) {
38
- dto.setBatchCursor((Number(pageNumber) + 1).toString());
39
- } else {
40
- appInstall.setNonEncryptedSettings({ orderLastRun: DateTime.now() });
41
- const repo = this.getDbClient().getApplicationRepository();
42
- await repo.update(appInstall);
43
- }
44
- this.setItemsListToDto(dto, res.getJsonBody());
45
-
46
- return dto;
47
- }
48
-
49
- protected setItemsListToDto(dto: BatchProcessDto, responseBody: IResponseJson[]): void {
50
- dto.setItemList(responseBody);
51
- }
52
-
53
- }
54
-
55
- export interface IInput {
56
- ids?: string;
57
- }
58
-
59
- /* eslint-disable @typescript-eslint/naming-convention */
60
- interface IOrdersJson {
61
- id: number;
62
- parent_id: number;
63
- number: string;
64
- order_key: string;
65
- created_via: string;
66
- version: string;
67
- status: string;
68
- currency: string;
69
- date_created: string;
70
- date_created_gmt: string;
71
- date_modified: string;
72
- date_modified_gmt: string;
73
- discount_total: string;
74
- discount_tax: string;
75
- shipping_total: string;
76
- shipping_tax: string;
77
- cart_tax: string;
78
- total: string;
79
- total_tax: string;
80
- prices_include_tax: boolean;
81
- customer_id: number;
82
- customer_ip_address: string;
83
- customer_user_agent: string;
84
- customer_note: string;
85
- billing: {
86
- first_name: string;
87
- last_name: string;
88
- company: string;
89
- address_1: string;
90
- address_2: string;
91
- city: string;
92
- state: string;
93
- postcode: string;
94
- country: string;
95
- email: string;
96
- phone: string;
97
- };
98
- shipping: {
99
- first_name: string;
100
- last_name: string;
101
- company: string;
102
- address_1: string;
103
- address_2: string;
104
- city: string;
105
- state: string;
106
- postcode: string;
107
- country: string;
108
- };
109
- payment_method: string;
110
- payment_method_title: string;
111
- transaction_id: string;
112
- date_paid: string;
113
- date_paid_gmt: string;
114
- date_completed: string;
115
- date_completed_gmt: string;
116
- cart_hash: string;
117
- meta_data: {
118
- id: number;
119
- key: string;
120
- value: string;
121
- }[];
122
- line_items: ILineItems[];
123
- tax_lines: {
124
- id: number;
125
- rate_code: string;
126
- rate_id: number;
127
- label: string;
128
- compound: boolean;
129
- tax_total: string;
130
- shipping_tax_total: string;
131
- meta_data: [];
132
- }[];
133
- shipping_lines: {
134
- id: number;
135
- method_title: string;
136
- method_id: string;
137
- instance_id: string;
138
- total: string;
139
- total_tax: string;
140
- taxes: [];
141
- meta_data: [];
142
- }[];
143
- fee_lines: [];
144
- coupon_lines: [];
145
- refunds: [];
146
- _links: {
147
- self: {
148
- href: string;
149
- }[];
150
- collection: {
151
- href: string;
152
- }[];
153
- };
154
- }
155
-
156
- export interface ILineItems {
157
- id: number;
158
- name: string;
159
- product_id: number;
160
- variation_id: number;
161
- quantity: number;
162
- tax_class: string;
163
- subtotal: string;
164
- subtotal_tax: string;
165
- total: string;
166
- total_tax: string;
167
- taxes: {
168
- id: number;
169
- total: string;
170
- subtotal: string;
171
- }[];
172
- meta_data: IMetaData[];
173
- sku: string;
174
- price: number;
175
- authentica_price: number;
176
- }
177
-
178
- export type IResponseJson = IOrdersJson;
179
-
180
- export interface IMetaData {
181
- display_key: string;
182
- display_value: string;
183
- }
184
-
185
- /* eslint-enable @typescript-eslint/naming-convention */
@@ -1,149 +0,0 @@
1
- import ABatchNode from '@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode';
2
- import { HttpMethods } from '@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods';
3
- import BatchProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/BatchProcessDto';
4
- import { DateTime } from 'luxon';
5
- import WooCommerceApplication, { NAME as BASE_NAME } from '../WooCommerceApplication';
6
-
7
- export const NAME = `${BASE_NAME.toLowerCase()}-get-products`;
8
-
9
- export default class WooCommerceGetProducts extends ABatchNode {
10
-
11
- public getName(): string {
12
- return NAME;
13
- }
14
-
15
- public async processAction(dto: BatchProcessDto): Promise<BatchProcessDto> {
16
- const pageNumber = dto.getBatchCursor('1');
17
- const app = this.getApplication<WooCommerceApplication>();
18
- const appInstall = await this.getApplicationInstallFromProcess(dto);
19
- const after = app.getIsoDateFromDate(appInstall.getNonEncryptedSettings().productLastRun);
20
-
21
- const requestDto = app.getRequestDto(
22
- dto,
23
- appInstall,
24
- HttpMethods.GET,
25
- `wp-json/wc/v3/products?per_page=100&page=${pageNumber}${after ? `&after=${after}` : ''}`,
26
- );
27
-
28
- const res = await this.getSender().send<IOutput[]>(requestDto, [200, 404]);
29
- const totalPages = res.getHeaders()['x-wp-totalpages'];
30
- if (Number(totalPages) > Number(pageNumber)) {
31
- dto.setBatchCursor((Number(pageNumber) + 1).toString());
32
- } else {
33
- appInstall.setNonEncryptedSettings({ productLastRun: DateTime.now() });
34
- const repo = this.getDbClient().getApplicationRepository();
35
- await repo.update(appInstall);
36
- }
37
- dto.setItemList(res.getJsonBody());
38
-
39
- return dto;
40
- }
41
-
42
- }
43
-
44
- /* eslint-disable @typescript-eslint/naming-convention */
45
- export interface IImage {
46
- src: string;
47
- id?: number;
48
- date_created?: Date;
49
- date_created_gmt?: Date;
50
- date_modified?: Date;
51
- date_modified_gmt?: Date;
52
- name?: string;
53
- alt?: string;
54
- }
55
-
56
- export interface IAttribute {
57
- id?: number;
58
- name?: string;
59
- position?: number;
60
- visible?: boolean;
61
- variation?: boolean;
62
- options?: string[];
63
- }
64
-
65
- export interface IOutput {
66
- id: number;
67
- categories: {
68
- id: number;
69
- name: string;
70
- slug: string;
71
- }[];
72
- images: IImage[];
73
- name?: string;
74
- slug?: string;
75
- permalink?: string;
76
- date_created?: Date;
77
- date_created_gmt?: Date;
78
- date_modified?: Date;
79
- date_modified_gmt?: Date;
80
- type?: string;
81
- status?: string;
82
- featured?: boolean;
83
- catalog_visibility?: string;
84
- description?: string;
85
- short_description?: string;
86
- sku?: string;
87
- price?: string;
88
- regular_price?: string;
89
- sale_price?: string;
90
- price_html?: string;
91
- on_sale?: boolean;
92
- purchasable?: boolean;
93
- total_sales?: number;
94
- virtual?: boolean;
95
- downloadable?: boolean;
96
- downloads?: undefined[];
97
- download_limit?: number;
98
- download_expiry?: number;
99
- external_url?: string;
100
- button_text?: string;
101
- tax_status?: string;
102
- tax_class?: string;
103
- manage_stock?: boolean;
104
- stock_status?: string;
105
- backorders?: string;
106
- backorders_allowed?: boolean;
107
- backordered?: boolean;
108
- sold_individually?: boolean;
109
- weight?: string;
110
- dimensions?: {
111
- length?: string;
112
- width?: string;
113
- height?: string;
114
- };
115
- shipping_required?: boolean;
116
- shipping_taxable?: boolean;
117
- shipping_class?: string;
118
- shipping_class_id?: number;
119
- reviews_allowed?: boolean;
120
- average_rating?: string;
121
- rating_count?: number;
122
- related_ids?: number[];
123
- upsell_ids?: number[];
124
- cross_sell_ids?: number[];
125
- parent_id?: number;
126
- purchase_note?: string;
127
- tags?: undefined[];
128
- attributes?: IAttribute[];
129
- default_attributes?: IAttribute[];
130
- variations?: number[];
131
- grouped_products?: number[];
132
- menu_order?: number;
133
- meta_data?: undefined[];
134
- _links?: {
135
- self?: {
136
- href?: string;
137
- }[];
138
- collection?: {
139
- href?: string;
140
- }[];
141
- };
142
- stock_quantity?: number;
143
- date_on_sale_from?: Date;
144
- date_on_sale_from_gmt?: Date;
145
- date_on_sale_to?: Date;
146
- date_on_sale_to_gmt?: Date;
147
- }
148
-
149
- /* eslint-enable @typescript-eslint/naming-convention */
@@ -1,116 +0,0 @@
1
- import ABatchNode from '@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode';
2
- import { HttpMethods } from '@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods';
3
- import BatchProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/BatchProcessDto';
4
- import WooCommerceApplication, { NAME as BASE_NAME } from '../WooCommerceApplication';
5
- import { IOutput as IInput } from './WooCommerceGetProducts';
6
-
7
- export const NAME = `${BASE_NAME.toLowerCase()}-get-variants`;
8
-
9
- export default class WooCommerceGetVariants extends ABatchNode {
10
-
11
- public async processAction(dto: BatchProcessDto<IInput>): Promise<BatchProcessDto> {
12
- const pageNumber = dto.getBatchCursor('1');
13
- const app = this.getApplication<WooCommerceApplication>();
14
- const appInstall = await this.getApplicationInstallFromProcess(dto);
15
- const product = dto.getJsonData();
16
-
17
- const requestDto = app.getRequestDto(
18
- dto,
19
- appInstall,
20
- HttpMethods.GET,
21
- `wp-json/wc/v3/products/${product.id}/variations/?per_page=100&page=${pageNumber}`,
22
- );
23
-
24
- const res = await this.getSender().send<IVariant[]>(requestDto, [200, 404]);
25
- const totalPages = res.getHeaders()['x-wp-totalpages'];
26
- if (Number(totalPages) > Number(pageNumber)) {
27
- dto.setBatchCursor((Number(pageNumber) + 1).toString());
28
- }
29
- dto.setItemList([{ product, variants: res.getJsonBody() }]);
30
-
31
- return dto;
32
- }
33
-
34
- public getName(): string {
35
- return NAME;
36
- }
37
-
38
- }
39
-
40
- export interface IOutput {
41
- product: IInput;
42
- variants: IVariant[];
43
- }
44
-
45
- /* eslint-disable @typescript-eslint/naming-convention */
46
- export interface IVariant {
47
- id: number;
48
- date_created: Date;
49
- date_created_gmt: Date;
50
- date_modified: Date;
51
- date_modified_gmt: Date;
52
- description: string;
53
- permalink: string;
54
- sku: string;
55
- price: string;
56
- regular_price: string;
57
- sale_price: string;
58
- on_sale: boolean;
59
- status: string;
60
- purchasable: boolean;
61
- virtual: boolean;
62
- downloadable: boolean;
63
- downloads: undefined[];
64
- download_limit: number;
65
- download_expiry: number;
66
- tax_status: string;
67
- tax_class: string;
68
- manage_stock: boolean;
69
- stock_status: string;
70
- backorders: string;
71
- backorders_allowed: boolean;
72
- backordered: boolean;
73
- weight: string;
74
- dimensions: {
75
- length: string;
76
- width: string;
77
- height: string;
78
- };
79
- shipping_class: string;
80
- shipping_class_id: number;
81
- image: {
82
- id: number;
83
- date_created: Date;
84
- date_created_gmt: Date;
85
- date_modified: Date;
86
- date_modified_gmt: Date;
87
- src: string;
88
- name: string;
89
- alt: string;
90
- };
91
- attributes: {
92
- id: number;
93
- name: string;
94
- option: string;
95
- }[];
96
- menu_order: number;
97
- meta_data: undefined[];
98
- _links: {
99
- self: {
100
- href: string;
101
- }[];
102
- collection: {
103
- href: string;
104
- }[];
105
- up: {
106
- href: string;
107
- }[];
108
- };
109
- date_on_sale_from?: Date;
110
- date_on_sale_from_gmt?: Date;
111
- date_on_sale_to?: Date;
112
- date_on_sale_to_gmt?: Date;
113
- stock_quantity?: number;
114
- }
115
-
116
- /* eslint-enable @typescript-eslint/naming-convention */
@@ -1,8 +0,0 @@
1
- {
2
- "headers": {
3
- "user": "TestUser"
4
- },
5
- "data": {
6
- "ids": "727,723"
7
- }
8
- }