@things-factory/integration-sellercraft 9.0.0-beta.27 → 9.0.0-beta.29

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 (146) hide show
  1. package/dist-server/constants/index.d.ts +2 -0
  2. package/dist-server/constants/index.js +6 -0
  3. package/dist-server/constants/index.js.map +1 -0
  4. package/dist-server/constants/order-status-mapping.d.ts +27 -0
  5. package/dist-server/constants/order-status-mapping.js +31 -0
  6. package/dist-server/constants/order-status-mapping.js.map +1 -0
  7. package/dist-server/constants/platform.d.ts +6 -0
  8. package/dist-server/constants/platform.js +10 -0
  9. package/dist-server/constants/platform.js.map +1 -0
  10. package/dist-server/controllers/index.d.ts +4 -0
  11. package/dist-server/controllers/index.js +8 -0
  12. package/dist-server/controllers/index.js.map +1 -0
  13. package/dist-server/controllers/sellercraft/apis/add-inbound-order.d.ts +8 -0
  14. package/dist-server/controllers/sellercraft/apis/add-inbound-order.js +46 -0
  15. package/dist-server/controllers/sellercraft/apis/add-inbound-order.js.map +1 -0
  16. package/dist-server/controllers/sellercraft/apis/echo.d.ts +12 -0
  17. package/dist-server/controllers/sellercraft/apis/echo.js +18 -0
  18. package/dist-server/controllers/sellercraft/apis/echo.js.map +1 -0
  19. package/dist-server/controllers/sellercraft/apis/fetch-order-document.d.ts +16 -0
  20. package/dist-server/controllers/sellercraft/apis/fetch-order-document.js +21 -0
  21. package/dist-server/controllers/sellercraft/apis/fetch-order-document.js.map +1 -0
  22. package/dist-server/controllers/sellercraft/apis/index.d.ts +8 -0
  23. package/dist-server/controllers/sellercraft/apis/index.js +12 -0
  24. package/dist-server/controllers/sellercraft/apis/index.js.map +1 -0
  25. package/dist-server/controllers/sellercraft/apis/initiate-order-document.d.ts +12 -0
  26. package/dist-server/controllers/sellercraft/apis/initiate-order-document.js +20 -0
  27. package/dist-server/controllers/sellercraft/apis/initiate-order-document.js.map +1 -0
  28. package/dist-server/controllers/sellercraft/apis/initiate-order-shipment.d.ts +17 -0
  29. package/dist-server/controllers/sellercraft/apis/initiate-order-shipment.js +26 -0
  30. package/dist-server/controllers/sellercraft/apis/initiate-order-shipment.js.map +1 -0
  31. package/dist-server/controllers/sellercraft/apis/pack-marketplace-order.d.ts +12 -0
  32. package/dist-server/controllers/sellercraft/apis/pack-marketplace-order.js +35 -0
  33. package/dist-server/controllers/sellercraft/apis/pack-marketplace-order.js.map +1 -0
  34. package/dist-server/controllers/sellercraft/apis/update-marketplace-order.d.ts +6 -0
  35. package/dist-server/controllers/sellercraft/apis/update-marketplace-order.js +17 -0
  36. package/dist-server/controllers/sellercraft/apis/update-marketplace-order.js.map +1 -0
  37. package/dist-server/controllers/sellercraft/apis/update-product.d.ts +11 -0
  38. package/dist-server/controllers/sellercraft/apis/update-product.js +23 -0
  39. package/dist-server/controllers/sellercraft/apis/update-product.js.map +1 -0
  40. package/dist-server/controllers/sellercraft/index.d.ts +1 -0
  41. package/dist-server/controllers/sellercraft/index.js +9 -0
  42. package/dist-server/controllers/sellercraft/index.js.map +1 -0
  43. package/dist-server/controllers/sellercraft/platform-action.d.ts +5 -0
  44. package/dist-server/controllers/sellercraft/platform-action.js +33 -0
  45. package/dist-server/controllers/sellercraft/platform-action.js.map +1 -0
  46. package/dist-server/controllers/sellercraft/sellercraft.d.ts +12 -0
  47. package/dist-server/controllers/sellercraft/sellercraft.js +91 -0
  48. package/dist-server/controllers/sellercraft/sellercraft.js.map +1 -0
  49. package/dist-server/controllers/sellercraft-api/decorators.d.ts +1 -0
  50. package/dist-server/controllers/sellercraft-api/decorators.js +38 -0
  51. package/dist-server/controllers/sellercraft-api/decorators.js.map +1 -0
  52. package/dist-server/controllers/sellercraft-api/index.d.ts +15 -0
  53. package/dist-server/controllers/sellercraft-api/index.js +84 -0
  54. package/dist-server/controllers/sellercraft-api/index.js.map +1 -0
  55. package/dist-server/controllers/sellercraft-api/types.d.ts +0 -0
  56. package/dist-server/controllers/sellercraft-api/types.js +1 -0
  57. package/dist-server/controllers/sellercraft-api/types.js.map +1 -0
  58. package/dist-server/controllers/sellercraft-channel-integration/apis/echo.d.ts +12 -0
  59. package/dist-server/controllers/sellercraft-channel-integration/apis/echo.js +18 -0
  60. package/dist-server/controllers/sellercraft-channel-integration/apis/echo.js.map +1 -0
  61. package/dist-server/controllers/sellercraft-channel-integration/apis/index.d.ts +6 -0
  62. package/dist-server/controllers/sellercraft-channel-integration/apis/index.js +10 -0
  63. package/dist-server/controllers/sellercraft-channel-integration/apis/index.js.map +1 -0
  64. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.d.ts +8 -0
  65. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.js +38 -0
  66. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.js.map +1 -0
  67. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-category-attributes.d.ts +11 -0
  68. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-category-attributes.js +47 -0
  69. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-category-attributes.js.map +1 -0
  70. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.d.ts +8 -0
  71. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.js +48 -0
  72. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.js.map +1 -0
  73. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order.d.ts +8 -0
  74. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order.js +92 -0
  75. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order.js.map +1 -0
  76. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-product.d.ts +8 -0
  77. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-product.js +90 -0
  78. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-product.js.map +1 -0
  79. package/dist-server/controllers/sellercraft-channel-integration/index.d.ts +1 -0
  80. package/dist-server/controllers/sellercraft-channel-integration/index.js +9 -0
  81. package/dist-server/controllers/sellercraft-channel-integration/index.js.map +1 -0
  82. package/dist-server/controllers/sellercraft-channel-integration/platform-action.d.ts +5 -0
  83. package/dist-server/controllers/sellercraft-channel-integration/platform-action.js +33 -0
  84. package/dist-server/controllers/sellercraft-channel-integration/platform-action.js.map +1 -0
  85. package/dist-server/controllers/sellercraft-channel-integration/sellercraft-channel-integration.d.ts +12 -0
  86. package/dist-server/controllers/sellercraft-channel-integration/sellercraft-channel-integration.js +99 -0
  87. package/dist-server/controllers/sellercraft-channel-integration/sellercraft-channel-integration.js.map +1 -0
  88. package/dist-server/controllers/sellercraft-channel-integration-api/decorators.d.ts +1 -0
  89. package/dist-server/controllers/sellercraft-channel-integration-api/decorators.js +30 -0
  90. package/dist-server/controllers/sellercraft-channel-integration-api/decorators.js.map +1 -0
  91. package/dist-server/controllers/sellercraft-channel-integration-api/index.d.ts +13 -0
  92. package/dist-server/controllers/sellercraft-channel-integration-api/index.js +70 -0
  93. package/dist-server/controllers/sellercraft-channel-integration-api/index.js.map +1 -0
  94. package/dist-server/controllers/sellercraft-channel-integration-api/types.d.ts +0 -0
  95. package/dist-server/controllers/sellercraft-channel-integration-api/types.js +1 -0
  96. package/dist-server/controllers/sellercraft-channel-integration-api/types.js.map +1 -0
  97. package/dist-server/index.d.ts +6 -0
  98. package/dist-server/index.js +10 -0
  99. package/dist-server/index.js.map +1 -0
  100. package/dist-server/middlewares/index.d.ts +1 -0
  101. package/dist-server/middlewares/index.js +7 -0
  102. package/dist-server/middlewares/index.js.map +1 -0
  103. package/dist-server/migrations/index.d.ts +1 -0
  104. package/dist-server/migrations/index.js +12 -0
  105. package/dist-server/migrations/index.js.map +1 -0
  106. package/dist-server/routers/sellercraft-router.d.ts +1 -0
  107. package/dist-server/routers/sellercraft-router.js +284 -0
  108. package/dist-server/routers/sellercraft-router.js.map +1 -0
  109. package/dist-server/routes.d.ts +1 -0
  110. package/dist-server/routes.js +29 -0
  111. package/dist-server/routes.js.map +1 -0
  112. package/dist-server/service/index.d.ts +7 -0
  113. package/dist-server/service/index.js +23 -0
  114. package/dist-server/service/index.js.map +1 -0
  115. package/dist-server/service/marketplace-channel/index.d.ts +5 -0
  116. package/dist-server/service/marketplace-channel/index.js +9 -0
  117. package/dist-server/service/marketplace-channel/index.js.map +1 -0
  118. package/dist-server/service/marketplace-channel/marketplace-channel-order-mutation.d.ts +3 -0
  119. package/dist-server/service/marketplace-channel/marketplace-channel-order-mutation.js +391 -0
  120. package/dist-server/service/marketplace-channel/marketplace-channel-order-mutation.js.map +1 -0
  121. package/dist-server/service/marketplace-channel/marketplace-channel-product-mutation.d.ts +3 -0
  122. package/dist-server/service/marketplace-channel/marketplace-channel-product-mutation.js +244 -0
  123. package/dist-server/service/marketplace-channel/marketplace-channel-product-mutation.js.map +1 -0
  124. package/dist-server/service/marketplace-channel/marketplace-channel.d.ts +18 -0
  125. package/dist-server/service/marketplace-channel/marketplace-channel.js +84 -0
  126. package/dist-server/service/marketplace-channel/marketplace-channel.js.map +1 -0
  127. package/dist-server/service/sellercraft/index.d.ts +5 -0
  128. package/dist-server/service/sellercraft/index.js +9 -0
  129. package/dist-server/service/sellercraft/index.js.map +1 -0
  130. package/dist-server/service/sellercraft/sellercraft-mutation.d.ts +9 -0
  131. package/dist-server/service/sellercraft/sellercraft-mutation.js +111 -0
  132. package/dist-server/service/sellercraft/sellercraft-mutation.js.map +1 -0
  133. package/dist-server/service/sellercraft/sellercraft-query.d.ts +11 -0
  134. package/dist-server/service/sellercraft/sellercraft-query.js +71 -0
  135. package/dist-server/service/sellercraft/sellercraft-query.js.map +1 -0
  136. package/dist-server/service/sellercraft/sellercraft-type.d.ts +21 -0
  137. package/dist-server/service/sellercraft/sellercraft-type.js +81 -0
  138. package/dist-server/service/sellercraft/sellercraft-type.js.map +1 -0
  139. package/dist-server/service/sellercraft/sellercraft.d.ts +27 -0
  140. package/dist-server/service/sellercraft/sellercraft.js +107 -0
  141. package/dist-server/service/sellercraft/sellercraft.js.map +1 -0
  142. package/dist-server/tsconfig.tsbuildinfo +1 -0
  143. package/dist-server/utils/tokencraft-util.d.ts +2 -0
  144. package/dist-server/utils/tokencraft-util.js +64 -0
  145. package/dist-server/utils/tokencraft-util.js.map +1 -0
  146. package/package.json +13 -13
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketplaceChannelProductMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const env_1 = require("@things-factory/env");
7
+ const integration_marketplace_1 = require("@things-factory/integration-marketplace");
8
+ const shell_1 = require("@things-factory/shell");
9
+ const sellercraft_channel_integration_api_1 = require("../../controllers/sellercraft-channel-integration-api");
10
+ const tokencraft_util_1 = require("../../utils/tokencraft-util");
11
+ const marketplace_channel_1 = require("./marketplace-channel");
12
+ let MarketplaceChannelProductMutation = class MarketplaceChannelProductMutation {
13
+ async syncAllMarketplaceChannelProducts(context, fromUpdatedDate, toUpdatedDate, productBatchSize, channelId, shopId, airflow) {
14
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
15
+ const sellercraftChannelIntegrationConfig = env_1.config.get('sellercraftChannelIntegrationConfig', {});
16
+ let channels = await (0, shell_1.getRepository)(marketplace_channel_1.MarketplaceChannel).find({ where: { isActive: true } });
17
+ let errors = [];
18
+ if (channelId) {
19
+ channels = channels.filter(channel => channel.channelId == channelId);
20
+ }
21
+ for (var i = 0; i < channels.length; i++) {
22
+ try {
23
+ let shops = await (0, tokencraft_util_1.getShops)(channels[i].channelId);
24
+ if (shopId) {
25
+ shops = shops.filter(shop => shop.channel_shop_id == shopId);
26
+ }
27
+ for (var j = 0; j < shops.length; j++) {
28
+ try {
29
+ var store = {
30
+ accessKey: ((_b = (_a = shops[j]) === null || _a === void 0 ? void 0 : _a.credential) === null || _b === void 0 ? void 0 : _b.consumer_key) || '',
31
+ accessSecret: ((_d = (_c = shops[j]) === null || _c === void 0 ? void 0 : _c.credential) === null || _d === void 0 ? void 0 : _d.consumer_secret) || '',
32
+ storeURL: ((_f = (_e = shops[j]) === null || _e === void 0 ? void 0 : _e.credential) === null || _f === void 0 ? void 0 : _f.store_url) || '',
33
+ platform: channels[i].name,
34
+ accessToken: (_h = (_g = shops[j]) === null || _g === void 0 ? void 0 : _g.credential) === null || _h === void 0 ? void 0 : _h.access_token, // Magento+, Tiktok
35
+ channelShopId: (_j = shops[j]) === null || _j === void 0 ? void 0 : _j.channel_shop_id,
36
+ storeId: ((_l = (_k = shops[j]) === null || _k === void 0 ? void 0 : _k.credential) === null || _l === void 0 ? void 0 : _l.store_url) || ''
37
+ };
38
+ let countryCode = shops[j].country_code;
39
+ let channelCode = shops[j].org_prefix;
40
+ let organisationId = shops[j].account_id;
41
+ let channelShopId = shops[j].channel_shop_id;
42
+ var sellercraftStore = Object.assign(Object.assign({}, store), { platform: 'sellercraftChannelIntegration' });
43
+ const productResult = [];
44
+ let totalPages = 1;
45
+ let limit = 50;
46
+ let parentLinks = [];
47
+ let cursor;
48
+ for (let page = 0; page < totalPages; page++) {
49
+ const { results, total, parentLinkList, page_info: nextCursor } = await integration_marketplace_1.StoreAPI.getStoreProducts(store, {
50
+ pagination: { page, limit },
51
+ pageInfo: cursor,
52
+ fromUpdatedDate,
53
+ toUpdatedDate
54
+ });
55
+ totalPages = Math.ceil(total / limit);
56
+ productResult.push(...results);
57
+ if (store.platform == 'magento')
58
+ parentLinks.push(...parentLinkList);
59
+ cursor = nextCursor;
60
+ }
61
+ const categoryResult = [];
62
+ let totalPagesCategory = 1;
63
+ let limitCategory = 100;
64
+ if (store.platform != 'shopify') {
65
+ for (let page = 0; page < totalPagesCategory; page++) {
66
+ const { results, total } = await integration_marketplace_1.StoreAPI.getStoreProductCategories(store, {
67
+ pagination: { page, limitCategory }
68
+ });
69
+ totalPagesCategory = Math.ceil(total / limitCategory);
70
+ categoryResult.push(...results);
71
+ }
72
+ }
73
+ else {
74
+ categoryResult.push({ id: 1, name: 'default', isActive: true });
75
+ }
76
+ let mappedProducts = productResult.map(item => {
77
+ var _a;
78
+ let { categoryId, itemId: productId, name, brand, isVerified, images, sellercraftAttributes, variations } = item;
79
+ variations = variations.map(variation => {
80
+ let { variationSku, variationId, name, isEnabled: isEnabled, isSellable: isSellable, sellercraftAttributes, stockLocked, qty: stockReported, costPrice: fullPrice, sellPrice: priceDiscounted, length, width, height, weight, extraMetadata } = variation;
81
+ return {
82
+ variationSku,
83
+ variationId,
84
+ name,
85
+ isEnabled,
86
+ isSellable,
87
+ attributes: sellercraftAttributes || [],
88
+ stockLocked,
89
+ stockReported,
90
+ fullPrice: parseFloat(fullPrice) || 0,
91
+ priceDiscounted: parseFloat(priceDiscounted) || 0,
92
+ inventoryProducts: [
93
+ {
94
+ qty: 1,
95
+ name: `${name} - ${variationSku}`,
96
+ sku: variationSku,
97
+ productVersions: [
98
+ {
99
+ label: 'Default',
100
+ packageLengthMM: length,
101
+ packageWidthMM: width,
102
+ packageHeightMM: height,
103
+ packageWeightGram: weight,
104
+ qty: stockReported
105
+ }
106
+ ]
107
+ }
108
+ ],
109
+ extraMetadata
110
+ };
111
+ });
112
+ images = images === null || images === void 0 ? void 0 : images.map(image => {
113
+ return {
114
+ url: image
115
+ };
116
+ });
117
+ return {
118
+ organisationId,
119
+ channelShopId: channelShopId,
120
+ channelCode: channels[i].channelCode,
121
+ channelCountry: shops[j].country_code,
122
+ categoryId: store.platform == 'shopify' ? 1 : categoryId,
123
+ productId: ((_a = parentLinks.find(e => e.children.includes(productId))) === null || _a === void 0 ? void 0 : _a.id) || productId,
124
+ name,
125
+ brand,
126
+ isVerified,
127
+ images,
128
+ attributes: sellercraftAttributes || [],
129
+ variations
130
+ };
131
+ });
132
+ let mappedCategories = categoryResult.map(category => {
133
+ let { id: categoryId, name: categoryName, parent, isActive } = category;
134
+ return {
135
+ categoryId,
136
+ categoryName,
137
+ parent,
138
+ isActive: isActive || true,
139
+ channelCode,
140
+ countryCode,
141
+ childrenCategories: []
142
+ };
143
+ });
144
+ if (store.platform == 'magento') {
145
+ let newList = [];
146
+ for (let np of mappedProducts) {
147
+ if (np.productId == np.variations[0].variationId) {
148
+ let vars = mappedProducts
149
+ .filter(e => e.productId == np.productId)
150
+ .map(e => {
151
+ return e.variations[0];
152
+ });
153
+ np.variations = vars;
154
+ if (np.variations.length > 1) {
155
+ np.variations = np.variations.filter(v => v.variationId != np.productId);
156
+ }
157
+ newList.push(np);
158
+ }
159
+ }
160
+ mappedProducts = newList;
161
+ }
162
+ try {
163
+ let filterList = [];
164
+ mappedCategories = mappedCategories.map(category => {
165
+ if (mappedCategories.filter(e => e.parent == category.categoryId).length > 0) {
166
+ category.childrenCategories = mappedCategories.filter(e => e.parent == category.categoryId);
167
+ filterList.push(...mappedCategories.filter(e => e.parent == category.categoryId));
168
+ }
169
+ return category;
170
+ });
171
+ mappedCategories = mappedCategories
172
+ .map(mc => {
173
+ if (filterList.indexOf(mc) == -1) {
174
+ return mc;
175
+ }
176
+ })
177
+ .filter(e => e);
178
+ await sellercraft_channel_integration_api_1.SellercraftChannelIntegrationAPI.ingestChannelCategories(sellercraftStore, {
179
+ categories: mappedCategories
180
+ });
181
+ }
182
+ catch (e) {
183
+ errors.push({
184
+ name: 'Category Ingestion Error',
185
+ msg: JSON.stringify(e) || {}
186
+ });
187
+ }
188
+ let bs = parseInt(productBatchSize) || mappedProducts.length;
189
+ if (mappedProducts.length > 0) {
190
+ while (mappedProducts.length > 0) {
191
+ let spliceResult = mappedProducts.splice(0, mappedProducts.length >= bs ? bs : mappedProducts.length);
192
+ try {
193
+ await sellercraft_channel_integration_api_1.SellercraftChannelIntegrationAPI.ingestChannelProduct(sellercraftStore, {
194
+ products: spliceResult
195
+ });
196
+ }
197
+ catch (e) {
198
+ errors.push({
199
+ name: 'Product Ingestion Error',
200
+ msg: JSON.stringify(e) || {}
201
+ });
202
+ }
203
+ }
204
+ }
205
+ }
206
+ catch (e) {
207
+ errors.push({
208
+ name: 'Product Processing / Mapping Error',
209
+ msg: JSON.stringify(e) || {}
210
+ });
211
+ }
212
+ }
213
+ }
214
+ catch (e) {
215
+ errors.push({
216
+ name: 'Store Error',
217
+ msg: JSON.stringify(e) || {}
218
+ });
219
+ }
220
+ }
221
+ if (errors.length > 1 && airflow) {
222
+ throw errors;
223
+ }
224
+ return true;
225
+ }
226
+ };
227
+ exports.MarketplaceChannelProductMutation = MarketplaceChannelProductMutation;
228
+ tslib_1.__decorate([
229
+ (0, type_graphql_1.Mutation)(returns => Boolean),
230
+ tslib_1.__param(0, (0, type_graphql_1.Ctx)()),
231
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('fromUpdatedDate', { nullable: true })),
232
+ tslib_1.__param(2, (0, type_graphql_1.Arg)('toUpdatedDate', { nullable: true })),
233
+ tslib_1.__param(3, (0, type_graphql_1.Arg)('productBatchSize', { nullable: true })),
234
+ tslib_1.__param(4, (0, type_graphql_1.Arg)('channelId', { nullable: true })),
235
+ tslib_1.__param(5, (0, type_graphql_1.Arg)('shopId', { nullable: true })),
236
+ tslib_1.__param(6, (0, type_graphql_1.Arg)('airflow', { nullable: true })),
237
+ tslib_1.__metadata("design:type", Function),
238
+ tslib_1.__metadata("design:paramtypes", [Object, String, String, String, String, String, Boolean]),
239
+ tslib_1.__metadata("design:returntype", Promise)
240
+ ], MarketplaceChannelProductMutation.prototype, "syncAllMarketplaceChannelProducts", null);
241
+ exports.MarketplaceChannelProductMutation = MarketplaceChannelProductMutation = tslib_1.__decorate([
242
+ (0, type_graphql_1.Resolver)()
243
+ ], MarketplaceChannelProductMutation);
244
+ //# sourceMappingURL=marketplace-channel-product-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketplace-channel-product-mutation.js","sourceRoot":"","sources":["../../../server/service/marketplace-channel/marketplace-channel-product-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'\n\nimport { config } from '@things-factory/env'\nimport { StoreAPI } from '@things-factory/integration-marketplace'\nimport { getRepository } from '@things-factory/shell'\n\nimport { SellercraftChannelIntegrationAPI } from '../../controllers/sellercraft-channel-integration-api'\nimport { getShops } from '../../utils/tokencraft-util'\nimport { MarketplaceChannel } from './marketplace-channel'\n\n@Resolver()\nexport class MarketplaceChannelProductMutation {\n @Mutation(returns => Boolean)\n async syncAllMarketplaceChannelProducts(\n @Ctx() context: ResolverContext,\n @Arg('fromUpdatedDate', { nullable: true }) fromUpdatedDate?: string,\n @Arg('toUpdatedDate', { nullable: true }) toUpdatedDate?: string,\n @Arg('productBatchSize', { nullable: true }) productBatchSize?: string,\n @Arg('channelId', { nullable: true }) channelId?: string,\n @Arg('shopId', { nullable: true }) shopId?: string,\n @Arg('airflow', { nullable: true }) airflow?: boolean\n ): Promise<boolean> {\n const sellercraftChannelIntegrationConfig = config.get('sellercraftChannelIntegrationConfig', {})\n\n let channels: MarketplaceChannel[] = await getRepository(MarketplaceChannel).find({ where: { isActive: true } })\n let errors: any = []\n\n if (channelId) {\n channels = channels.filter(channel => channel.channelId == channelId)\n }\n\n for (var i = 0; i < channels.length; i++) {\n try {\n let shops: any = await getShops(channels[i].channelId)\n\n if (shopId) {\n shops = shops.filter(shop => shop.channel_shop_id == shopId)\n }\n\n for (var j = 0; j < shops.length; j++) {\n try {\n var store = {\n accessKey: shops[j]?.credential?.consumer_key || '',\n accessSecret: shops[j]?.credential?.consumer_secret || '',\n storeURL: shops[j]?.credential?.store_url || '',\n platform: channels[i].name,\n accessToken: shops[j]?.credential?.access_token, // Magento+, Tiktok\n channelShopId: shops[j]?.channel_shop_id,\n storeId: shops[j]?.credential?.store_url || ''\n }\n\n let countryCode = shops[j].country_code\n let channelCode = shops[j].org_prefix\n let organisationId = shops[j].account_id\n let channelShopId = shops[j].channel_shop_id\n\n var sellercraftStore = { ...store, platform: 'sellercraftChannelIntegration' }\n\n const productResult = []\n let totalPages: number = 1\n let limit: number = 50\n let parentLinks = []\n let cursor: string\n\n for (let page = 0; page < totalPages; page++) {\n const {\n results,\n total,\n parentLinkList,\n page_info: nextCursor\n } = await StoreAPI.getStoreProducts(store, {\n pagination: { page, limit },\n pageInfo: cursor,\n fromUpdatedDate,\n toUpdatedDate\n })\n totalPages = Math.ceil(total / limit)\n productResult.push(...results)\n if (store.platform == 'magento') parentLinks.push(...parentLinkList)\n cursor = nextCursor\n }\n\n const categoryResult = []\n let totalPagesCategory: number = 1\n let limitCategory: number = 100\n\n if (store.platform != 'shopify') {\n for (let page = 0; page < totalPagesCategory; page++) {\n const { results, total } = await StoreAPI.getStoreProductCategories(store, {\n pagination: { page, limitCategory }\n })\n totalPagesCategory = Math.ceil(total / limitCategory)\n categoryResult.push(...results)\n }\n } else {\n categoryResult.push({ id: 1, name: 'default', isActive: true })\n }\n\n let mappedProducts = productResult.map(item => {\n let {\n categoryId,\n itemId: productId,\n name,\n brand,\n isVerified,\n images,\n sellercraftAttributes,\n variations\n } = item\n\n variations = variations.map(variation => {\n let {\n variationSku,\n variationId,\n name,\n isEnabled: isEnabled,\n isSellable: isSellable,\n sellercraftAttributes,\n stockLocked,\n qty: stockReported,\n costPrice: fullPrice,\n sellPrice: priceDiscounted,\n length,\n width,\n height,\n weight,\n extraMetadata\n } = variation\n\n return {\n variationSku,\n variationId,\n name,\n isEnabled,\n isSellable,\n attributes: sellercraftAttributes || [],\n stockLocked,\n stockReported,\n fullPrice: parseFloat(fullPrice) || 0,\n priceDiscounted: parseFloat(priceDiscounted) || 0,\n inventoryProducts: [\n {\n qty: 1,\n name: `${name} - ${variationSku}`,\n sku: variationSku,\n productVersions: [\n {\n label: 'Default',\n packageLengthMM: length,\n packageWidthMM: width,\n packageHeightMM: height,\n packageWeightGram: weight,\n qty: stockReported\n }\n ]\n }\n ],\n extraMetadata\n }\n })\n\n images = images?.map(image => {\n return {\n url: image\n }\n })\n\n return {\n organisationId,\n channelShopId: channelShopId,\n channelCode: channels[i].channelCode,\n channelCountry: shops[j].country_code,\n categoryId: store.platform == 'shopify' ? 1 : categoryId,\n productId: parentLinks.find(e => e.children.includes(productId))?.id || productId,\n name,\n brand,\n isVerified,\n images,\n attributes: sellercraftAttributes || [],\n variations\n }\n })\n\n let mappedCategories = categoryResult.map(category => {\n let { id: categoryId, name: categoryName, parent, isActive } = category\n\n return {\n categoryId,\n categoryName,\n parent,\n isActive: isActive || true,\n channelCode,\n countryCode,\n childrenCategories: []\n }\n })\n\n if (store.platform == 'magento') {\n let newList = []\n for (let np of mappedProducts) {\n if (np.productId == np.variations[0].variationId) {\n let vars = mappedProducts\n .filter(e => e.productId == np.productId)\n .map(e => {\n return e.variations[0]\n })\n np.variations = vars\n if (np.variations.length > 1) {\n np.variations = np.variations.filter(v => v.variationId != np.productId)\n }\n newList.push(np)\n }\n }\n mappedProducts = newList\n }\n\n try {\n let filterList = []\n mappedCategories = mappedCategories.map(category => {\n if (mappedCategories.filter(e => e.parent == category.categoryId).length > 0) {\n category.childrenCategories = mappedCategories.filter(e => e.parent == category.categoryId)\n filterList.push(...mappedCategories.filter(e => e.parent == category.categoryId))\n }\n return category\n })\n\n mappedCategories = mappedCategories\n .map(mc => {\n if (filterList.indexOf(mc) == -1) {\n return mc\n }\n })\n .filter(e => e)\n\n await SellercraftChannelIntegrationAPI.ingestChannelCategories(sellercraftStore, {\n categories: mappedCategories\n })\n } catch (e) {\n errors.push({\n name: 'Category Ingestion Error',\n msg: JSON.stringify(e) || {}\n })\n }\n\n let bs = parseInt(productBatchSize) || mappedProducts.length\n\n if (mappedProducts.length > 0) {\n while (mappedProducts.length > 0) {\n let spliceResult = mappedProducts.splice(0, mappedProducts.length >= bs ? bs : mappedProducts.length)\n\n try {\n await SellercraftChannelIntegrationAPI.ingestChannelProduct(sellercraftStore, {\n products: spliceResult\n })\n } catch (e) {\n errors.push({\n name: 'Product Ingestion Error',\n msg: JSON.stringify(e) || {}\n })\n }\n }\n }\n } catch (e) {\n errors.push({\n name: 'Product Processing / Mapping Error',\n msg: JSON.stringify(e) || {}\n })\n }\n }\n } catch (e) {\n errors.push({\n name: 'Store Error',\n msg: JSON.stringify(e) || {}\n })\n }\n }\n if (errors.length > 1 && airflow) {\n throw errors\n }\n return true\n }\n}\n"]}
@@ -0,0 +1,18 @@
1
+ import { User } from '@things-factory/auth-base';
2
+ import { Domain } from '@things-factory/shell';
3
+ export declare class MarketplaceChannel {
4
+ readonly id: string;
5
+ domain?: Domain;
6
+ domainId?: string;
7
+ name: string;
8
+ channelCode: string;
9
+ channelId: string;
10
+ countryCode: string;
11
+ isActive: boolean;
12
+ createdAt?: Date;
13
+ updatedAt?: Date;
14
+ creator?: User;
15
+ creatorId?: string;
16
+ updater?: User;
17
+ updaterId?: string;
18
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketplaceChannel = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const typeorm_1 = require("typeorm");
7
+ const auth_base_1 = require("@things-factory/auth-base");
8
+ const shell_1 = require("@things-factory/shell");
9
+ let MarketplaceChannel = class MarketplaceChannel {
10
+ };
11
+ exports.MarketplaceChannel = MarketplaceChannel;
12
+ tslib_1.__decorate([
13
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
14
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID),
15
+ tslib_1.__metadata("design:type", String)
16
+ ], MarketplaceChannel.prototype, "id", void 0);
17
+ tslib_1.__decorate([
18
+ (0, typeorm_1.ManyToOne)(type => shell_1.Domain),
19
+ (0, type_graphql_1.Field)(type => shell_1.Domain),
20
+ tslib_1.__metadata("design:type", shell_1.Domain)
21
+ ], MarketplaceChannel.prototype, "domain", void 0);
22
+ tslib_1.__decorate([
23
+ (0, typeorm_1.RelationId)((marketplaceChannel) => marketplaceChannel.domain),
24
+ tslib_1.__metadata("design:type", String)
25
+ ], MarketplaceChannel.prototype, "domainId", void 0);
26
+ tslib_1.__decorate([
27
+ (0, typeorm_1.Column)(),
28
+ (0, type_graphql_1.Field)(),
29
+ tslib_1.__metadata("design:type", String)
30
+ ], MarketplaceChannel.prototype, "name", void 0);
31
+ tslib_1.__decorate([
32
+ (0, typeorm_1.Column)(),
33
+ (0, type_graphql_1.Field)(),
34
+ tslib_1.__metadata("design:type", String)
35
+ ], MarketplaceChannel.prototype, "channelCode", void 0);
36
+ tslib_1.__decorate([
37
+ (0, typeorm_1.Column)(),
38
+ (0, type_graphql_1.Field)(),
39
+ tslib_1.__metadata("design:type", String)
40
+ ], MarketplaceChannel.prototype, "channelId", void 0);
41
+ tslib_1.__decorate([
42
+ (0, typeorm_1.Column)({ nullable: true }),
43
+ (0, type_graphql_1.Field)({ nullable: true }),
44
+ tslib_1.__metadata("design:type", String)
45
+ ], MarketplaceChannel.prototype, "countryCode", void 0);
46
+ tslib_1.__decorate([
47
+ (0, typeorm_1.Column)({ default: true }),
48
+ (0, type_graphql_1.Field)(),
49
+ tslib_1.__metadata("design:type", Boolean)
50
+ ], MarketplaceChannel.prototype, "isActive", void 0);
51
+ tslib_1.__decorate([
52
+ (0, typeorm_1.CreateDateColumn)(),
53
+ (0, type_graphql_1.Field)({ nullable: true }),
54
+ tslib_1.__metadata("design:type", Date)
55
+ ], MarketplaceChannel.prototype, "createdAt", void 0);
56
+ tslib_1.__decorate([
57
+ (0, typeorm_1.UpdateDateColumn)(),
58
+ (0, type_graphql_1.Field)({ nullable: true }),
59
+ tslib_1.__metadata("design:type", Date)
60
+ ], MarketplaceChannel.prototype, "updatedAt", void 0);
61
+ tslib_1.__decorate([
62
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
63
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
64
+ tslib_1.__metadata("design:type", auth_base_1.User)
65
+ ], MarketplaceChannel.prototype, "creator", void 0);
66
+ tslib_1.__decorate([
67
+ (0, typeorm_1.RelationId)((marketplaceChannel) => marketplaceChannel.creator),
68
+ tslib_1.__metadata("design:type", String)
69
+ ], MarketplaceChannel.prototype, "creatorId", void 0);
70
+ tslib_1.__decorate([
71
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
72
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
73
+ tslib_1.__metadata("design:type", auth_base_1.User)
74
+ ], MarketplaceChannel.prototype, "updater", void 0);
75
+ tslib_1.__decorate([
76
+ (0, typeorm_1.RelationId)((marketplaceChannel) => marketplaceChannel.updater),
77
+ tslib_1.__metadata("design:type", String)
78
+ ], MarketplaceChannel.prototype, "updaterId", void 0);
79
+ exports.MarketplaceChannel = MarketplaceChannel = tslib_1.__decorate([
80
+ (0, typeorm_1.Entity)(),
81
+ (0, typeorm_1.Index)('ix_marketplace_channel_0 ', (marketplaceChannel) => [marketplaceChannel.domain, marketplaceChannel.name], { unique: true }),
82
+ (0, type_graphql_1.ObjectType)({ description: 'Entity for Marketplace Channel' })
83
+ ], MarketplaceChannel);
84
+ //# sourceMappingURL=marketplace-channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketplace-channel.js","sourceRoot":"","sources":["../../../server/service/marketplace-channel/marketplace-channel.ts"],"names":[],"mappings":";;;;AAAA,+CAAoD;AACpD,qCASgB;AAEhB,yDAAgD;AAChD,iDAA8C;AASvC,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAqD9B,CAAA;AArDY,gDAAkB;AAGpB;IAFR,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;8CACC;AAInB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;sCACb,cAAM;kDAAA;AAGf;IADC,IAAA,oBAAU,EAAC,CAAC,kBAAsC,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC;;oDACjE;AAIjB;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;gDACI;AAIZ;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;uDACW;AAInB;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;qDACS;AAIjB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACP;AAInB;IAFC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACzB,IAAA,oBAAK,GAAE;;oDACS;AAIjB;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;qDAAA;AAIhB;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;qDAAA;AAIhB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,gBAAI;mDAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,kBAAsC,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC;;qDACjE;AAIlB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,gBAAI;mDAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,kBAAsC,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC;;qDACjE;6BApDP,kBAAkB;IAP9B,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EACJ,2BAA2B,EAC3B,CAAC,kBAAsC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAChG,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB;IACA,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;GACjD,kBAAkB,CAqD9B","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\n\n@Entity()\n@Index(\n 'ix_marketplace_channel_0 ',\n (marketplaceChannel: MarketplaceChannel) => [marketplaceChannel.domain, marketplaceChannel.name],\n { unique: true }\n)\n@ObjectType({ description: 'Entity for Marketplace Channel' })\nexport class MarketplaceChannel {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((marketplaceChannel: MarketplaceChannel) => marketplaceChannel.domain)\n domainId?: string\n\n @Column()\n @Field()\n name: string\n\n @Column()\n @Field()\n channelCode: string\n\n @Column()\n @Field()\n channelId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n countryCode: string\n\n @Column({ default: true })\n @Field()\n isActive: boolean\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((marketplaceChannel: MarketplaceChannel) => marketplaceChannel.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((marketplaceChannel: MarketplaceChannel) => marketplaceChannel.updater)\n updaterId?: string\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { Sellercraft } from './sellercraft';
2
+ import { SellercraftQuery } from './sellercraft-query';
3
+ import { SellercraftMutation } from './sellercraft-mutation';
4
+ export declare const entities: (typeof Sellercraft)[];
5
+ export declare const resolvers: (typeof SellercraftQuery | typeof SellercraftMutation)[];
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolvers = exports.entities = void 0;
4
+ const sellercraft_1 = require("./sellercraft");
5
+ const sellercraft_query_1 = require("./sellercraft-query");
6
+ const sellercraft_mutation_1 = require("./sellercraft-mutation");
7
+ exports.entities = [sellercraft_1.Sellercraft];
8
+ exports.resolvers = [sellercraft_query_1.SellercraftQuery, sellercraft_mutation_1.SellercraftMutation];
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/sellercraft/index.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,2DAAsD;AACtD,iEAA4D;AAE/C,QAAA,QAAQ,GAAG,CAAC,yBAAW,CAAC,CAAA;AACxB,QAAA,SAAS,GAAG,CAAC,oCAAgB,EAAE,0CAAmB,CAAC,CAAA","sourcesContent":["import { Sellercraft } from './sellercraft'\nimport { SellercraftQuery } from './sellercraft-query'\nimport { SellercraftMutation } from './sellercraft-mutation'\n\nexport const entities = [Sellercraft]\nexport const resolvers = [SellercraftQuery, SellercraftMutation]\n"]}
@@ -0,0 +1,9 @@
1
+ import { Sellercraft } from './sellercraft';
2
+ import { NewSellercraft, SellercraftPatch } from './sellercraft-type';
3
+ export declare class SellercraftMutation {
4
+ createSellercraft(sellercraft: NewSellercraft, context: ResolverContext): Promise<Sellercraft>;
5
+ updateSellercraft(id: string, patch: SellercraftPatch, context: ResolverContext): Promise<Sellercraft>;
6
+ updateMultipleSellercraft(patches: SellercraftPatch[], context: ResolverContext): Promise<Sellercraft[]>;
7
+ deleteSellercraft(id: string, context: ResolverContext): Promise<boolean>;
8
+ deleteSellercrafts(ids: string[], context: ResolverContext): Promise<boolean>;
9
+ }
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SellercraftMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const typeorm_1 = require("typeorm");
7
+ const uuid_1 = require("uuid");
8
+ const sellercraft_1 = require("./sellercraft");
9
+ const sellercraft_type_1 = require("./sellercraft-type");
10
+ let SellercraftMutation = class SellercraftMutation {
11
+ async createSellercraft(sellercraft, context) {
12
+ const { domain, user, tx } = context.state;
13
+ return await tx.getRepository(sellercraft_1.Sellercraft).save(Object.assign(Object.assign({}, sellercraft), { name: (0, uuid_1.v4)(), domain, creator: user, updater: user }));
14
+ }
15
+ async updateSellercraft(id, patch, context) {
16
+ const { user, tx } = context.state;
17
+ const repository = tx.getRepository(sellercraft_1.Sellercraft);
18
+ const sellercraft = await repository.findOneBy({ id });
19
+ return await repository.save(Object.assign(Object.assign(Object.assign({}, sellercraft), patch), { updater: user }));
20
+ }
21
+ async updateMultipleSellercraft(patches, context) {
22
+ const { domain, user, tx } = context.state;
23
+ let results = [];
24
+ const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
25
+ const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
26
+ const sellercraftRepo = tx.getRepository(sellercraft_1.Sellercraft);
27
+ if (_createRecords.length > 0) {
28
+ for (let i = 0; i < _createRecords.length; i++) {
29
+ const newRecord = _createRecords[i];
30
+ const result = await sellercraftRepo.save(Object.assign(Object.assign({}, newRecord), { domain, name: (0, uuid_1.v4)(), status: sellercraft_1.SellercraftStatus.ACTIVE, platform: sellercraft_1.SellercraftPlatform.SELLERCRAFT, creator: user, updater: user }));
31
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
32
+ }
33
+ }
34
+ if (_updateRecords.length > 0) {
35
+ for (let i = 0; i < _updateRecords.length; i++) {
36
+ const newRecord = _updateRecords[i];
37
+ const sellercraft = await sellercraftRepo.findOneBy({ id: newRecord.id });
38
+ const result = await sellercraftRepo.save(Object.assign(Object.assign(Object.assign({}, sellercraft), newRecord), { updater: user }));
39
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
40
+ }
41
+ }
42
+ return results;
43
+ }
44
+ async deleteSellercraft(id, context) {
45
+ const { domain, tx } = context.state;
46
+ await tx.getRepository(sellercraft_1.Sellercraft).delete({ domain: { id: domain.id }, id });
47
+ return true;
48
+ }
49
+ async deleteSellercrafts(ids, context) {
50
+ const { domain, tx, user } = context.state;
51
+ let sellercrafts = await tx
52
+ .getRepository(sellercraft_1.Sellercraft)
53
+ .find({ where: { domain: { id: domain.id }, id: (0, typeorm_1.In)(ids) } });
54
+ sellercrafts = sellercrafts.map((sellercraft) => {
55
+ return Object.assign(Object.assign({}, sellercraft), { status: sellercraft_1.SellercraftStatus.TERMINATED, updater: user });
56
+ });
57
+ await tx.getRepository(sellercraft_1.Sellercraft).save(sellercrafts);
58
+ return true;
59
+ }
60
+ };
61
+ exports.SellercraftMutation = SellercraftMutation;
62
+ tslib_1.__decorate([
63
+ (0, type_graphql_1.Directive)('@transaction'),
64
+ (0, type_graphql_1.Mutation)(returns => sellercraft_1.Sellercraft, { description: 'To create new Sellercraft' }),
65
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('sellercraft')),
66
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
67
+ tslib_1.__metadata("design:type", Function),
68
+ tslib_1.__metadata("design:paramtypes", [sellercraft_type_1.NewSellercraft, Object]),
69
+ tslib_1.__metadata("design:returntype", Promise)
70
+ ], SellercraftMutation.prototype, "createSellercraft", null);
71
+ tslib_1.__decorate([
72
+ (0, type_graphql_1.Directive)('@transaction'),
73
+ (0, type_graphql_1.Mutation)(returns => sellercraft_1.Sellercraft, { description: 'To modify Sellercraft information' }),
74
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
75
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
76
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
77
+ tslib_1.__metadata("design:type", Function),
78
+ tslib_1.__metadata("design:paramtypes", [String, sellercraft_type_1.SellercraftPatch, Object]),
79
+ tslib_1.__metadata("design:returntype", Promise)
80
+ ], SellercraftMutation.prototype, "updateSellercraft", null);
81
+ tslib_1.__decorate([
82
+ (0, type_graphql_1.Directive)('@transaction'),
83
+ (0, type_graphql_1.Mutation)(returns => [sellercraft_1.Sellercraft], { description: "To modify multiple Sellercrafts' information" }),
84
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [sellercraft_type_1.SellercraftPatch])),
85
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
86
+ tslib_1.__metadata("design:type", Function),
87
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
88
+ tslib_1.__metadata("design:returntype", Promise)
89
+ ], SellercraftMutation.prototype, "updateMultipleSellercraft", null);
90
+ tslib_1.__decorate([
91
+ (0, type_graphql_1.Directive)('@transaction'),
92
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete Sellercraft' }),
93
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
94
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
95
+ tslib_1.__metadata("design:type", Function),
96
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
97
+ tslib_1.__metadata("design:returntype", Promise)
98
+ ], SellercraftMutation.prototype, "deleteSellercraft", null);
99
+ tslib_1.__decorate([
100
+ (0, type_graphql_1.Directive)('@transaction'),
101
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple sellercrafts' }),
102
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
103
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
104
+ tslib_1.__metadata("design:type", Function),
105
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
106
+ tslib_1.__metadata("design:returntype", Promise)
107
+ ], SellercraftMutation.prototype, "deleteSellercrafts", null);
108
+ exports.SellercraftMutation = SellercraftMutation = tslib_1.__decorate([
109
+ (0, type_graphql_1.Resolver)(sellercraft_1.Sellercraft)
110
+ ], SellercraftMutation);
111
+ //# sourceMappingURL=sellercraft-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sellercraft-mutation.js","sourceRoot":"","sources":["../../../server/service/sellercraft/sellercraft-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { Sellercraft, SellercraftPlatform, SellercraftStatus } from './sellercraft'\nimport { NewSellercraft, SellercraftPatch } from './sellercraft-type'\n\n@Resolver(Sellercraft)\nexport class SellercraftMutation {\n @Directive('@transaction')\n @Mutation(returns => Sellercraft, { description: 'To create new Sellercraft' })\n async createSellercraft(\n @Arg('sellercraft') sellercraft: NewSellercraft,\n @Ctx() context: ResolverContext\n ): Promise<Sellercraft> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(Sellercraft).save({\n ...sellercraft,\n name: uuidv4(),\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Sellercraft, { description: 'To modify Sellercraft information' })\n async updateSellercraft(\n @Arg('id') id: string,\n @Arg('patch') patch: SellercraftPatch,\n @Ctx() context: ResolverContext\n ): Promise<Sellercraft> {\n const { user, tx } = context.state\n\n const repository = tx.getRepository(Sellercraft)\n const sellercraft = await repository.findOneBy({ id })\n\n return await repository.save({\n ...sellercraft,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [Sellercraft], { description: \"To modify multiple Sellercrafts' information\" })\n async updateMultipleSellercraft(\n @Arg('patches', type => [SellercraftPatch]) patches: SellercraftPatch[],\n @Ctx() context: ResolverContext\n ): Promise<Sellercraft[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const sellercraftRepo = tx.getRepository(Sellercraft)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await sellercraftRepo.save({\n ...newRecord,\n domain,\n name: uuidv4(),\n status: SellercraftStatus.ACTIVE,\n platform: SellercraftPlatform.SELLERCRAFT,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const sellercraft = await sellercraftRepo.findOneBy({ id: newRecord.id })\n\n const result = await sellercraftRepo.save({\n ...sellercraft,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete Sellercraft' })\n async deleteSellercraft(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Sellercraft).delete({ domain: { id: domain.id }, id })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple sellercrafts' })\n async deleteSellercrafts(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx, user } = context.state\n let sellercrafts: Sellercraft[] = await tx\n .getRepository(Sellercraft)\n .find({ where: { domain: { id: domain.id }, id: In(ids) } })\n\n sellercrafts = sellercrafts.map((sellercraft: Sellercraft) => {\n return {\n ...sellercraft,\n status: SellercraftStatus.TERMINATED,\n updater: user\n }\n })\n\n await tx.getRepository(Sellercraft).save(sellercrafts)\n return true\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { User } from '@things-factory/auth-base';
2
+ import { Domain, ListParam } from '@things-factory/shell';
3
+ import { Sellercraft } from './sellercraft';
4
+ import { SellercraftList } from './sellercraft-type';
5
+ export declare class SellercraftQuery {
6
+ sellercraft(id: string, context: ResolverContext): Promise<Sellercraft>;
7
+ sellercrafts(params: ListParam, context: ResolverContext): Promise<SellercraftList>;
8
+ domain(sellercraft: Sellercraft): Promise<Domain>;
9
+ updater(sellercraft: Sellercraft): Promise<User>;
10
+ creator(sellercraft: Sellercraft): Promise<User>;
11
+ }