cloudcommerce 0.0.98 → 0.0.100

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 (57) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +1 -1
  3. package/packages/api/package.json +1 -1
  4. package/packages/apps/correios/package.json +1 -1
  5. package/packages/apps/custom-shipping/package.json +1 -1
  6. package/packages/apps/discounts/package.json +1 -1
  7. package/packages/apps/frenet/package.json +1 -1
  8. package/packages/apps/tiny-erp/lib/event-to-tiny.js +94 -94
  9. package/packages/apps/tiny-erp/lib/index.js +1 -1
  10. package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js +71 -74
  11. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js +70 -73
  12. package/packages/apps/tiny-erp/lib/integration/export-product-to-tiny.js +49 -53
  13. package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js +3 -3
  14. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +76 -75
  15. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +137 -140
  16. package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js +40 -39
  17. package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js +173 -178
  18. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js +173 -171
  19. package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js +123 -127
  20. package/packages/apps/tiny-erp/lib/integration/parsers/status-from-tiny.js +32 -32
  21. package/packages/apps/tiny-erp/lib/integration/parsers/status-to-tiny.js +37 -37
  22. package/packages/apps/tiny-erp/lib/integration/post-tiny-erp.js +42 -43
  23. package/packages/apps/tiny-erp/lib/tiny-erp.js +8 -6
  24. package/packages/apps/tiny-erp/lib/tiny-webhook.js +76 -73
  25. package/packages/apps/tiny-erp/package.json +1 -1
  26. package/packages/cli/package.json +1 -1
  27. package/packages/config/package.json +1 -1
  28. package/packages/events/package.json +1 -1
  29. package/packages/firebase/package.json +1 -1
  30. package/packages/modules/lib/firebase/ajv.js +24 -19
  31. package/packages/modules/lib/firebase/call-app-module.js +110 -116
  32. package/packages/modules/lib/firebase/checkout.js +152 -151
  33. package/packages/modules/lib/firebase/functions-checkout/fix-items.js +187 -194
  34. package/packages/modules/lib/firebase/functions-checkout/get-custumerId.js +26 -25
  35. package/packages/modules/lib/firebase/functions-checkout/handle-order-transaction.js +109 -110
  36. package/packages/modules/lib/firebase/functions-checkout/new-order.js +177 -177
  37. package/packages/modules/lib/firebase/functions-checkout/request-to-module.js +59 -59
  38. package/packages/modules/lib/firebase/functions-checkout/utils.js +197 -195
  39. package/packages/modules/lib/firebase/handle-module.js +146 -144
  40. package/packages/modules/lib/firebase/proxy-apps.js +1 -2
  41. package/packages/modules/lib/firebase/serve-modules-api.js +53 -52
  42. package/packages/modules/lib/firebase.js +6 -4
  43. package/packages/modules/lib/index.js +15 -12
  44. package/packages/modules/package.json +1 -1
  45. package/packages/passport/package.json +1 -1
  46. package/packages/ssr/package.json +1 -1
  47. package/packages/storefront/astro.config.mjs +4 -1
  48. package/packages/storefront/dist/client/{LoginOffcanvas.daf3f717.js → LoginOffcanvas.6707cd95.js} +1 -1
  49. package/packages/storefront/dist/client/chunks/{LoginForm.d9251274.js → LoginForm.aee2ceda.js} +1 -1
  50. package/packages/storefront/dist/client/chunks/{LoginOffcanvas.07fe6492.js → LoginOffcanvas.21bef0b8.js} +1 -1
  51. package/packages/storefront/dist/client/sw.js +1 -1
  52. package/packages/storefront/dist/server/entry.mjs +4 -2
  53. package/packages/storefront/package.json +1 -2
  54. package/packages/storefront/src/lib/i18n/en-us.ts +1152 -0
  55. package/packages/storefront/src/lib/i18n/pt-br.ts +1152 -0
  56. package/packages/storefront/tsconfig.json +1 -1
  57. package/packages/types/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.0.100](https://github.com/ecomplus/cloud-commerce/compare/v0.0.99...v0.0.100) (2022-09-27)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **storefront:** Replace `@ecomplus/i18n` with local dictionary modules ([1e236a6](https://github.com/ecomplus/cloud-commerce/commit/1e236a6c0062163e7f5558513af0f1831d48b3b4))
11
+
12
+ ### [0.0.99](https://github.com/ecomplus/cloud-commerce/compare/v0.0.98...v0.0.99) (2022-09-27)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **storefront:** Bump `@ecomplus/i18n` and fix alias to .mjs ([fa33b44](https://github.com/ecomplus/cloud-commerce/commit/fa33b44ffa63d48f3de075d44cf09d9e4066f9fe))
18
+
5
19
  ### [0.0.98](https://github.com/ecomplus/cloud-commerce/compare/v0.0.97...v0.0.98) (2022-09-27)
6
20
 
7
21
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cloudcommerce",
3
3
  "type": "module",
4
- "version": "0.0.98",
4
+ "version": "0.0.100",
5
5
  "description": "Open fair-code headless commerce platform: API-first, microservices based, event driven and cloud native",
6
6
  "main": "packages/api/lib/index.js",
7
7
  "author": "E-Com Club Softwares para E-commerce <ti@e-com.club>",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/api",
3
3
  "type": "module",
4
- "version": "0.0.98",
4
+ "version": "0.0.100",
5
5
  "description": "E-Com Plus Cloud Commerce APIs client/adapter",
6
6
  "main": "lib/api.js",
7
7
  "types": "lib/api.d.ts",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-correios",
3
3
  "type": "module",
4
- "version": "0.0.98",
4
+ "version": "0.0.100",
5
5
  "description": "E-Com Plus Cloud Commerce app for Correios shipping calculation",
6
6
  "main": "lib/correios.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-custom-shipping",
3
3
  "type": "module",
4
- "version": "0.0.98",
4
+ "version": "0.0.100",
5
5
  "description": "E-Com Plus Cloud Commerce app for custom shipping methods",
6
6
  "main": "lib/custom-shipping.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-discounts",
3
3
  "type": "module",
4
- "version": "0.0.98",
4
+ "version": "0.0.100",
5
5
  "description": "E-Com Plus Cloud Commerce app for complex discount rules",
6
6
  "main": "lib/discounts.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-frenet",
3
3
  "type": "module",
4
- "version": "0.0.98",
4
+ "version": "0.0.100",
5
5
  "description": "E-Com Plus Cloud Commerce app for Frenet shipping calculation",
6
6
  "main": "lib/frenet.js",
7
7
  "repository": {
@@ -4,112 +4,112 @@ import exportOrder from './integration/export-order-to-tiny.js';
4
4
  import importProduct from './integration/import-product-from-tiny.js';
5
5
  import importOrder from './integration/import-order-from-tiny.js';
6
6
  import afterQueue from './integration/after-tiny-queue.js';
7
+
7
8
  // Async integration handlers
8
9
  const integrationHandlers = {
9
- exportation: {
10
- product_ids: exportProduct,
11
- order_ids: exportOrder,
12
- },
13
- importation: {
14
- skus: importProduct,
15
- order_numbers: importOrder,
16
- },
10
+ exportation: {
11
+ product_ids: exportProduct,
12
+ order_ids: exportOrder,
13
+ },
14
+ importation: {
15
+ skus: importProduct,
16
+ order_numbers: importOrder,
17
+ },
17
18
  };
18
- const handleApiEvent = async ({ evName, apiEvent, apiDoc, app, }) => {
19
- const resourceId = apiEvent.resource_id;
20
- logger.info('>> ', resourceId, ' - Action: ', apiEvent.action);
21
- const key = `${evName}_${resourceId}`;
22
- const appData = { ...app.data, ...app.hidden_data };
23
- if (Array.isArray(appData.ignore_events)
19
+ const handleApiEvent = async ({
20
+ evName, apiEvent, apiDoc, app,
21
+ }) => {
22
+ const resourceId = apiEvent.resource_id;
23
+ logger.info('>> ', resourceId, ' - Action: ', apiEvent.action);
24
+ const key = `${evName}_${resourceId}`;
25
+ const appData = { ...app.data, ...app.hidden_data };
26
+ if (Array.isArray(appData.ignore_events)
24
27
  && appData.ignore_events.includes(evName)) {
25
- logger.info('>> ', key, ' - Ignored event');
26
- return null;
28
+ logger.info('>> ', key, ' - Ignored event');
29
+ return null;
30
+ }
31
+ logger.info(`> Webhook ${resourceId} [${evName}]`);
32
+ if (!process.env.TINY_ERP_TOKEN) {
33
+ const tinyToken = appData.tiny_api_token;
34
+ if (typeof tinyToken === 'string' && tinyToken) {
35
+ process.env.TINY_ERP_TOKEN = tinyToken;
36
+ } else {
37
+ logger.warn('Missing Tiny API token');
27
38
  }
28
- logger.info(`> Webhook ${resourceId} [${evName}]`);
29
- if (!process.env.TINY_ERP_TOKEN) {
30
- const tinyToken = appData.tiny_api_token;
31
- if (typeof tinyToken === 'string' && tinyToken) {
32
- process.env.TINY_ERP_TOKEN = tinyToken;
33
- }
34
- else {
35
- logger.warn('Missing Tiny API token');
39
+ }
40
+ if (process.env.TINY_ERP_TOKEN) {
41
+ let integrationConfig;
42
+ let canCreateNew = false;
43
+ if (evName === 'applications-dataSet') {
44
+ integrationConfig = appData;
45
+ canCreateNew = true;
46
+ } else if (evName === 'orders-anyStatusSet') {
47
+ canCreateNew = Boolean(appData.new_orders);
48
+ integrationConfig = {
49
+ _exportation: {
50
+ order_ids: [resourceId],
51
+ },
52
+ };
53
+ } else {
54
+ if (evName === 'products-new') {
55
+ if (!appData.new_products) {
56
+ return null;
36
57
  }
58
+ } else if (!appData.update_price) {
59
+ return null;
60
+ }
61
+ integrationConfig = {
62
+ _exportation: {
63
+ product_ids: [resourceId],
64
+ },
65
+ };
37
66
  }
38
- if (process.env.TINY_ERP_TOKEN) {
39
- let integrationConfig;
40
- let canCreateNew = false;
41
- if (evName === 'applications-dataSet') {
42
- integrationConfig = appData;
43
- canCreateNew = true;
44
- }
45
- else if (evName === 'orders-anyStatusSet') {
46
- canCreateNew = Boolean(appData.new_orders);
47
- integrationConfig = {
48
- _exportation: {
49
- order_ids: [resourceId],
50
- },
51
- };
67
+ if (integrationConfig) {
68
+ const actions = Object.keys(integrationHandlers);
69
+ actions.forEach((action) => {
70
+ for (let i = 1; i <= 3; i++) {
71
+ actions.push(`${('_'.repeat(i))}${action}`);
52
72
  }
53
- else {
54
- if (evName === 'products-new') {
55
- if (!appData.new_products) {
56
- return null;
57
- }
58
- }
59
- else if (!appData.update_price) {
60
- return null;
61
- }
62
- integrationConfig = {
63
- _exportation: {
64
- product_ids: [resourceId],
65
- },
66
- };
67
- }
68
- if (integrationConfig) {
69
- const actions = Object.keys(integrationHandlers);
70
- actions.forEach((action) => {
71
- for (let i = 1; i <= 3; i++) {
72
- actions.push(`${('_'.repeat(i))}${action}`);
73
- }
74
- });
75
- for (let i = 0; i < actions.length; i++) {
76
- const action = actions[i];
77
- const actionQueues = integrationConfig[action];
78
- if (typeof actionQueues === 'object' && actionQueues) {
79
- // eslint-disable-next-line guard-for-in, no-restricted-syntax
80
- for (const queue in actionQueues) {
81
- const ids = actionQueues[queue];
82
- if (Array.isArray(ids) && ids.length) {
83
- const isHiddenQueue = action.charAt(0) === '_';
84
- const handlerName = action.replace(/^_+/, '');
85
- const handler = integrationHandlers[handlerName][queue.toLowerCase()];
86
- const nextId = ids[0];
87
- if (typeof nextId === 'string'
73
+ });
74
+ for (let i = 0; i < actions.length; i++) {
75
+ const action = actions[i];
76
+ const actionQueues = integrationConfig[action];
77
+ if (typeof actionQueues === 'object' && actionQueues) {
78
+ // eslint-disable-next-line guard-for-in, no-restricted-syntax
79
+ for (const queue in actionQueues) {
80
+ const ids = actionQueues[queue];
81
+ if (Array.isArray(ids) && ids.length) {
82
+ const isHiddenQueue = action.charAt(0) === '_';
83
+ const handlerName = action.replace(/^_+/, '');
84
+ const handler = integrationHandlers[handlerName][queue.toLowerCase()];
85
+ const nextId = ids[0];
86
+ if (typeof nextId === 'string'
88
87
  && nextId.length
89
88
  && handler) {
90
- const debugFlag = `#${action}/${queue}/${nextId}`;
91
- logger.info(`> Starting ${debugFlag}`);
92
- const queueEntry = {
93
- action,
94
- queue,
95
- nextId,
96
- key,
97
- app,
98
- };
99
- return handler(apiDoc, queueEntry, appData, canCreateNew, isHiddenQueue).then((payload) => {
100
- return afterQueue(queueEntry, appData, app, payload);
101
- }).catch((err) => {
102
- return afterQueue(queueEntry, appData, app, err);
103
- });
104
- }
105
- }
106
- }
107
- }
89
+ const debugFlag = `#${action}/${queue}/${nextId}`;
90
+ logger.info(`> Starting ${debugFlag}`);
91
+ const queueEntry = {
92
+ action,
93
+ queue,
94
+ nextId,
95
+ key,
96
+ app,
97
+ };
98
+ return handler(apiDoc, queueEntry, appData, canCreateNew, isHiddenQueue).then((payload) => {
99
+ return afterQueue(queueEntry, appData, app, payload);
100
+ }).catch((err) => {
101
+ return afterQueue(queueEntry, appData, app, err);
102
+ });
103
+ }
108
104
  }
105
+ }
109
106
  }
107
+ }
110
108
  }
111
- // Nothing to do
112
- return null;
109
+ }
110
+ // Nothing to do
111
+ return null;
113
112
  };
113
+
114
114
  export default handleApiEvent;
115
- //# sourceMappingURL=event-to-tiny.js.map
115
+ // # sourceMappingURL=event-to-tiny.js.map
@@ -1,2 +1,2 @@
1
1
  export * from './tiny-erp.js';
2
- //# sourceMappingURL=index.js.map
2
+ // # sourceMappingURL=index.js.map
@@ -1,82 +1,79 @@
1
1
  import logger from 'firebase-functions/lib/logger';
2
2
  import updateAppData from '@cloudcommerce/firebase/lib/helpers/update-app-data';
3
+
3
4
  export default async (queueEntry, appData, application, payload) => {
4
- const isError = payload instanceof Error;
5
- const isImportation = queueEntry.action.endsWith('importation');
6
- const logs = appData.logs || [];
7
- const logEntry = {
8
- resource: /order/i.test(queueEntry.queue) ? 'orders' : 'products',
9
- [(isImportation ? 'tiny_id' : 'resource_id')]: queueEntry.nextId,
10
- success: !isError,
11
- imestamp: new Date().toISOString(),
12
- };
13
- let notes;
14
- if (payload) {
15
- if (!isError) {
16
- // payload = response
17
- const { data, status, config } = payload;
18
- if (data && data._id) {
19
- logEntry.resource_id = data._id;
20
- }
21
- notes = `Status ${status}`;
22
- if (config) {
23
- notes += ` [${config.url}]`;
24
- }
5
+ const isError = payload instanceof Error;
6
+ const isImportation = queueEntry.action.endsWith('importation');
7
+ const logs = appData.logs || [];
8
+ const logEntry = {
9
+ resource: /order/i.test(queueEntry.queue) ? 'orders' : 'products',
10
+ [(isImportation ? 'tiny_id' : 'resource_id')]: queueEntry.nextId,
11
+ success: !isError,
12
+ imestamp: new Date().toISOString(),
13
+ };
14
+ let notes;
15
+ if (payload) {
16
+ if (!isError) {
17
+ // payload = response
18
+ const { data, status, config } = payload;
19
+ if (data && data._id) {
20
+ logEntry.resource_id = data._id;
21
+ }
22
+ notes = `Status ${status}`;
23
+ if (config) {
24
+ notes += ` [${config.url}]`;
25
+ }
26
+ } else {
27
+ const { config, response } = payload;
28
+ if (response) {
29
+ const { data, status } = response;
30
+ notes = `Error: Status ${status} \n${JSON.stringify(data)}`;
31
+ if (!status || status === 429 || status >= 500) {
32
+ return setTimeout(() => {
33
+ throw payload;
34
+ }, 2000);
25
35
  }
26
- else {
27
- const { config, response } = payload;
28
- if (response) {
29
- const { data, status } = response;
30
- notes = `Error: Status ${status} \n${JSON.stringify(data)}`;
31
- if (!status || status === 429 || status >= 500) {
32
- return setTimeout(() => {
33
- throw payload;
34
- }, 2000);
35
- }
36
- if (config) {
37
- const { url, method, data } = config;
38
- notes += `\n\n-- Request -- \n${method} ${url} \n${JSON.stringify(data)}`;
39
- }
40
- // @ts-ignore
41
- }
42
- else if (payload.isConfigError === true) {
43
- notes = payload.message;
44
- }
45
- else {
46
- notes = payload.stack;
47
- }
36
+ if (config) {
37
+ const { url, method, data } = config;
38
+ notes += `\n\n-- Request -- \n${method} ${url} \n${JSON.stringify(data)}`;
48
39
  }
40
+ // @ts-ignore
41
+ } else if (payload.isConfigError === true) {
42
+ notes = payload.message;
43
+ } else {
44
+ notes = payload.stack;
45
+ }
49
46
  }
50
- if (notes) {
51
- logEntry.notes = notes.substring(0, 5000);
47
+ }
48
+ if (notes) {
49
+ logEntry.notes = notes.substring(0, 5000);
50
+ }
51
+ if (isError || !isImportation) {
52
+ logs.unshift(logEntry);
53
+ await updateAppData(application, {
54
+ logs: logs.slice(0, 200),
55
+ }, {
56
+ isHiddenData: true,
57
+ canSendPubSub: false,
58
+ });
59
+ }
60
+ const { action, queue, nextId } = queueEntry;
61
+ let queueList = appData[action][queue];
62
+ if (Array.isArray(queueList)) {
63
+ const idIndex = queueList.indexOf(nextId);
64
+ if (idIndex > -1) {
65
+ queueList.splice(idIndex, 1);
52
66
  }
53
- if (isError || !isImportation) {
54
- logs.unshift(logEntry);
55
- await updateAppData(application, {
56
- logs: logs.slice(0, 200),
57
- }, {
58
- isHiddenData: true,
59
- canSendPubSub: false,
60
- });
61
- }
62
- const { action, queue, nextId } = queueEntry;
63
- let queueList = appData[action][queue];
64
- if (Array.isArray(queueList)) {
65
- const idIndex = queueList.indexOf(nextId);
66
- if (idIndex > -1) {
67
- queueList.splice(idIndex, 1);
68
- }
69
- }
70
- else {
71
- queueList = [];
72
- }
73
- const data = {
74
- [action]: {
75
- ...appData[action],
76
- [queue]: queueList,
77
- },
78
- };
79
- logger.info(JSON.stringify(data));
80
- return updateAppData(application, data);
67
+ } else {
68
+ queueList = [];
69
+ }
70
+ const data = {
71
+ [action]: {
72
+ ...appData[action],
73
+ [queue]: queueList,
74
+ },
75
+ };
76
+ logger.info(JSON.stringify(data));
77
+ return updateAppData(application, data);
81
78
  };
82
- //# sourceMappingURL=after-tiny-queue.js.map
79
+ // # sourceMappingURL=after-tiny-queue.js.map
@@ -3,85 +3,82 @@ import api from '@cloudcommerce/api';
3
3
  import postTiny from './post-tiny-erp.js';
4
4
  import parseStatus from './parsers/status-to-tiny.js';
5
5
  import parseOrder from './parsers/order-to-tiny.js';
6
+
6
7
  export default async (apiDoc, queueEntry, appData, canCreateNew) => {
7
- const orderId = queueEntry.nextId;
8
- let order;
9
- if (orderId === apiDoc._id) {
10
- order = apiDoc;
11
- }
12
- else {
13
- try {
14
- order = (await api.get(`orders/${orderId}`)).data;
15
- }
16
- catch (err) {
17
- if (err.statusCode === 404) {
18
- const msg = `O pedido ${orderId} não existe (:${err.statusCode})`;
19
- const error = new Error(msg);
20
- error.isConfigError = true;
21
- return error;
22
- }
23
- throw err;
24
- }
25
- }
26
- if (!order.financial_status) {
27
- logger.info(`${orderId} skipped with no financial status`);
28
- return null;
29
- }
30
- logger.info(`${orderId} searching order ${order.number}`);
31
- let tinyData;
8
+ const orderId = queueEntry.nextId;
9
+ let order;
10
+ if (orderId === apiDoc._id) {
11
+ order = apiDoc;
12
+ } else {
32
13
  try {
33
- tinyData = await postTiny('/pedidos.pesquisa.php', {
34
- numeroEcommerce: String(order.number),
35
- });
14
+ order = (await api.get(`orders/${orderId}`)).data;
15
+ } catch (err) {
16
+ if (err.statusCode === 404) {
17
+ const msg = `O pedido ${orderId} não existe (:${err.statusCode})`;
18
+ const error = new Error(msg);
19
+ error.isConfigError = true;
20
+ return error;
21
+ }
22
+ throw err;
23
+ }
24
+ }
25
+ if (!order.financial_status) {
26
+ logger.info(`${orderId} skipped with no financial status`);
27
+ return null;
28
+ }
29
+ logger.info(`${orderId} searching order ${order.number}`);
30
+ let tinyData;
31
+ try {
32
+ tinyData = await postTiny('/pedidos.pesquisa.php', {
33
+ numeroEcommerce: String(order.number),
34
+ });
35
+ } catch (err) {
36
+ const status = err.response && err.response.status;
37
+ if (status === 404) {
38
+ tinyData = {};
39
+ } else {
40
+ logger.info(`${orderId} search on tiny ends with status ${status}`);
41
+ throw err;
36
42
  }
37
- catch (err) {
38
- const status = err.response && err.response.status;
39
- if (status === 404) {
40
- tinyData = {};
41
- }
42
- else {
43
- logger.info(`${orderId} search on tiny ends with status ${status}`);
44
- throw err;
45
- }
43
+ }
44
+ const { pedidos } = tinyData;
45
+ const tinyStatus = parseStatus(order);
46
+ let originalTinyOrder;
47
+ if (Array.isArray(pedidos)) {
48
+ originalTinyOrder = pedidos.find(({ pedido }) => {
49
+ return order.number === Number(pedido.numero_ecommerce);
50
+ });
51
+ if (originalTinyOrder) {
52
+ originalTinyOrder = originalTinyOrder.pedido;
46
53
  }
47
- const { pedidos } = tinyData;
48
- const tinyStatus = parseStatus(order);
49
- let originalTinyOrder;
50
- if (Array.isArray(pedidos)) {
51
- originalTinyOrder = pedidos.find(({ pedido }) => {
52
- return order.number === Number(pedido.numero_ecommerce);
53
- });
54
- if (originalTinyOrder) {
55
- originalTinyOrder = originalTinyOrder.pedido;
56
- }
54
+ }
55
+ if (!originalTinyOrder) {
56
+ if (!canCreateNew) {
57
+ return null;
57
58
  }
58
- if (!originalTinyOrder) {
59
- if (!canCreateNew) {
60
- return null;
61
- }
62
- if (appData.approved_orders_only
59
+ if (appData.approved_orders_only
63
60
  && (tinyStatus === 'aberto' || tinyStatus === 'cancelado')) {
64
- logger.info(`${orderId} skipped with status "${tinyStatus}"`);
65
- return null;
66
- }
67
- const tinyOrder = parseOrder(order, appData);
68
- logger.info(`${orderId} ${JSON.stringify(tinyOrder)}`);
69
- return postTiny('/pedido.incluir.php', {
70
- pedido: {
71
- pedido: tinyOrder,
72
- },
73
- });
61
+ logger.info(`${orderId} skipped with status "${tinyStatus}"`);
62
+ return null;
74
63
  }
75
- if (originalTinyOrder) {
76
- const { id, situacao } = originalTinyOrder;
77
- logger.info(`${orderId} found with tiny status ${situacao} => ${tinyStatus}`);
78
- if (tinyStatus && tinyStatus !== situacao) {
79
- return postTiny('/pedido.alterar.situacao', {
80
- id,
81
- situacao: tinyStatus,
82
- });
83
- }
64
+ const tinyOrder = parseOrder(order, appData);
65
+ logger.info(`${orderId} ${JSON.stringify(tinyOrder)}`);
66
+ return postTiny('/pedido.incluir.php', {
67
+ pedido: {
68
+ pedido: tinyOrder,
69
+ },
70
+ });
71
+ }
72
+ if (originalTinyOrder) {
73
+ const { id, situacao } = originalTinyOrder;
74
+ logger.info(`${orderId} found with tiny status ${situacao} => ${tinyStatus}`);
75
+ if (tinyStatus && tinyStatus !== situacao) {
76
+ return postTiny('/pedido.alterar.situacao', {
77
+ id,
78
+ situacao: tinyStatus,
79
+ });
84
80
  }
85
- return null;
81
+ }
82
+ return null;
86
83
  };
87
- //# sourceMappingURL=export-order-to-tiny.js.map
84
+ // # sourceMappingURL=export-order-to-tiny.js.map