@cloudcommerce/app-tiny-erp 0.0.60 → 0.0.61

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.
@@ -1,32 +1,32 @@
1
- @cloudcommerce/app-tiny-erp:build: cache hit, replaying output f168c19322174ba6
2
- @cloudcommerce/app-tiny-erp:build: 
3
- @cloudcommerce/app-tiny-erp:build: > @cloudcommerce/app-tiny-erp@0.0.59 build /home/leo/code/ecomplus/cloud-commerce/packages/apps/tiny-erp
4
- @cloudcommerce/app-tiny-erp:build: > sh ../../../scripts/build-lib.sh
5
- @cloudcommerce/app-tiny-erp:build: 
6
- @cloudcommerce/app-tiny-erp:build: 
7
- @cloudcommerce/app-tiny-erp:build: /home/leo/code/ecomplus/cloud-commerce/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js
8
- @cloudcommerce/app-tiny-erp:build:  37:32 warning 'data' is already declared in the upper scope on line 29 column 17 no-shadow
9
- @cloudcommerce/app-tiny-erp:build: 
10
- @cloudcommerce/app-tiny-erp:build: /home/leo/code/ecomplus/cloud-commerce/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js
11
- @cloudcommerce/app-tiny-erp:build:  38:41 warning 'variation' is already declared in the upper scope on line 38 column 11 no-shadow
12
- @cloudcommerce/app-tiny-erp:build:  79:16 warning 'produto' is already declared in the upper scope on line 54 column 30 no-shadow
13
- @cloudcommerce/app-tiny-erp:build:  82:13 warning 'productId' is already declared in the upper scope on line 10 column 15 no-shadow
14
- @cloudcommerce/app-tiny-erp:build:  93:63 warning 'product' is already declared in the upper scope on line 25 column 7 no-shadow
15
- @cloudcommerce/app-tiny-erp:build:  95:13 warning Assignment to property of function parameter 'product' no-param-reassign
16
- @cloudcommerce/app-tiny-erp:build: 
17
- @cloudcommerce/app-tiny-erp:build: /home/leo/code/ecomplus/cloud-commerce/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js
18
- @cloudcommerce/app-tiny-erp:build:  30:9 warning Assignment to property of function parameter 'tinyObject' no-param-reassign
19
- @cloudcommerce/app-tiny-erp:build: 
20
- @cloudcommerce/app-tiny-erp:build: /home/leo/code/ecomplus/cloud-commerce/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js
21
- @cloudcommerce/app-tiny-erp:build:  27:16 warning 'data' is already declared in the upper scope on line 17 column 14 no-shadow
22
- @cloudcommerce/app-tiny-erp:build:  32:22 warning Assignment to property of function parameter 'data' no-param-reassign
23
- @cloudcommerce/app-tiny-erp:build:  36:22 warning Assignment to property of function parameter 'data' no-param-reassign
24
- @cloudcommerce/app-tiny-erp:build:  38:13 warning Assignment to property of function parameter 'data' no-param-reassign
25
- @cloudcommerce/app-tiny-erp:build: 
26
- @cloudcommerce/app-tiny-erp:build: /home/leo/code/ecomplus/cloud-commerce/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js
27
- @cloudcommerce/app-tiny-erp:build:  13:14 warning Do not nest ternary expressions no-nested-ternary
28
- @cloudcommerce/app-tiny-erp:build:  60:21 warning Do not nest ternary expressions no-nested-ternary
29
- @cloudcommerce/app-tiny-erp:build:  117:42 warning 'i' is already declared in the upper scope on line 106 column 45 no-shadow
30
- @cloudcommerce/app-tiny-erp:build: 
31
- @cloudcommerce/app-tiny-erp:build: ✖ 14 problems (0 errors, 14 warnings)
32
- @cloudcommerce/app-tiny-erp:build: 
1
+ @cloudcommerce/app-tiny-erp:build: cache hit, replaying output 02e4be25cd419867
2
+ @cloudcommerce/app-tiny-erp:build: 
3
+ @cloudcommerce/app-tiny-erp:build: > @cloudcommerce/app-tiny-erp@0.0.60 build /home/leo/code/ecomplus/cloud-commerce/packages/apps/tiny-erp
4
+ @cloudcommerce/app-tiny-erp:build: > sh ../../../scripts/build-lib.sh
5
+ @cloudcommerce/app-tiny-erp:build: 
6
+ @cloudcommerce/app-tiny-erp:build: 
7
+ @cloudcommerce/app-tiny-erp:build: /home/leo/code/ecomplus/cloud-commerce/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js
8
+ @cloudcommerce/app-tiny-erp:build:  37:32 warning 'data' is already declared in the upper scope on line 29 column 17 no-shadow
9
+ @cloudcommerce/app-tiny-erp:build: 
10
+ @cloudcommerce/app-tiny-erp:build: /home/leo/code/ecomplus/cloud-commerce/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js
11
+ @cloudcommerce/app-tiny-erp:build:  22:41 warning 'variation' is already declared in the upper scope on line 22 column 11 no-shadow
12
+ @cloudcommerce/app-tiny-erp:build:  63:16 warning 'produto' is already declared in the upper scope on line 38 column 30 no-shadow
13
+ @cloudcommerce/app-tiny-erp:build:  66:13 warning 'productId' is already declared in the upper scope on line 8 column 15 no-shadow
14
+ @cloudcommerce/app-tiny-erp:build:  77:63 warning 'product' is already declared in the upper scope on line 9 column 7 no-shadow
15
+ @cloudcommerce/app-tiny-erp:build:  79:13 warning Assignment to property of function parameter 'product' no-param-reassign
16
+ @cloudcommerce/app-tiny-erp:build: 
17
+ @cloudcommerce/app-tiny-erp:build: /home/leo/code/ecomplus/cloud-commerce/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js
18
+ @cloudcommerce/app-tiny-erp:build:  30:9 warning Assignment to property of function parameter 'tinyObject' no-param-reassign
19
+ @cloudcommerce/app-tiny-erp:build: 
20
+ @cloudcommerce/app-tiny-erp:build: /home/leo/code/ecomplus/cloud-commerce/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js
21
+ @cloudcommerce/app-tiny-erp:build:  27:16 warning 'data' is already declared in the upper scope on line 17 column 14 no-shadow
22
+ @cloudcommerce/app-tiny-erp:build:  32:22 warning Assignment to property of function parameter 'data' no-param-reassign
23
+ @cloudcommerce/app-tiny-erp:build:  36:22 warning Assignment to property of function parameter 'data' no-param-reassign
24
+ @cloudcommerce/app-tiny-erp:build:  38:13 warning Assignment to property of function parameter 'data' no-param-reassign
25
+ @cloudcommerce/app-tiny-erp:build: 
26
+ @cloudcommerce/app-tiny-erp:build: /home/leo/code/ecomplus/cloud-commerce/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js
27
+ @cloudcommerce/app-tiny-erp:build:  13:14 warning Do not nest ternary expressions no-nested-ternary
28
+ @cloudcommerce/app-tiny-erp:build:  60:21 warning Do not nest ternary expressions no-nested-ternary
29
+ @cloudcommerce/app-tiny-erp:build:  117:42 warning 'i' is already declared in the upper scope on line 106 column 45 no-shadow
30
+ @cloudcommerce/app-tiny-erp:build: 
31
+ @cloudcommerce/app-tiny-erp:build: ✖ 14 problems (0 errors, 14 warnings)
32
+ @cloudcommerce/app-tiny-erp:build: 
@@ -29,9 +29,15 @@ const handleApiEvent = async ({
29
29
  return null;
30
30
  }
31
31
  logger.info(`> Webhook ${resourceId} [${evName}]`);
32
- const tinyToken = appData.tiny_api_token;
33
- if (typeof tinyToken === 'string' && tinyToken) {
34
- process.env.TINY_ERP_TOKEN = tinyToken;
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');
38
+ }
39
+ }
40
+ if (process.env.TINY_ERP_TOKEN) {
35
41
  let integrationConfig;
36
42
  let canCreateNew = false;
37
43
  if (evName === 'applications-dataSet') {
@@ -1 +1 @@
1
- {"version":3,"file":"event-to-tiny.js","sourceRoot":"","sources":["../src/event-to-tiny.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-to-tiny.js","sourceRoot":"","sources":["../src/event-to-tiny.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- // eslint-disable-next-line import/no-unresolved
2
- import { getFirestore } from 'firebase-admin/firestore';
3
1
  import logger from 'firebase-functions/lib/logger';
4
2
  import api from '@cloudcommerce/api';
5
3
  import updateAppData from '@cloudcommerce/firebase/lib/helpers/update-app-data';
@@ -8,20 +6,6 @@ import parseProduct from './parsers/product-from-tiny.js';
8
6
 
9
7
  export default async (apiDoc, queueEntry, appData, canCreateNew, isHiddenQueue) => {
10
8
  const [sku, productId] = String(queueEntry.nextId).split(';:');
11
- let { tinyStockUpdate } = queueEntry;
12
- if (!tinyStockUpdate) {
13
- const querySnapshot = await getFirestore().collection('tinyErpStockUpdates')
14
- .where('ref', '==', `${sku}`).get();
15
- let lastUpdateTime;
16
- querySnapshot.forEach((documentSnapshot) => {
17
- const updateTime = documentSnapshot.updateTime.toDate().getTime();
18
- if (!lastUpdateTime || updateTime > lastUpdateTime) {
19
- lastUpdateTime = updateTime;
20
- tinyStockUpdate = documentSnapshot.data();
21
- }
22
- documentSnapshot.ref.delete().catch(logger.error);
23
- });
24
- }
25
9
  let product = null;
26
10
  try {
27
11
  product = (await api.get(`products/${(productId || `sku:${sku}`)}`)).data;
@@ -101,6 +85,10 @@ export default async (apiDoc, queueEntry, appData, canCreateNew, isHiddenQueue)
101
85
  data: product,
102
86
  });
103
87
  if (Array.isArray(produto.variacoes) && produto.variacoes.length) {
88
+ if (!queueEntry.app) {
89
+ logger.warn('Variations cannot be queued without `queueEntry.app`');
90
+ return promise;
91
+ }
104
92
  promise.then((response) => {
105
93
  let skus = appData.__importation && appData.__importation.skus;
106
94
  if (!Array.isArray(skus)) {
@@ -141,6 +129,7 @@ export default async (apiDoc, queueEntry, appData, canCreateNew, isHiddenQueue)
141
129
  hasVariations,
142
130
  variationId,
143
131
  }));
132
+ const { tinyStockUpdate } = queueEntry;
144
133
  if (tinyStockUpdate && isHiddenQueue && productId) {
145
134
  return handleTinyStock(tinyStockUpdate);
146
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"import-product-from-tiny.js","sourceRoot":"","sources":["../../src/integration/import-product-from-tiny.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-product-from-tiny.js","sourceRoot":"","sources":["../../src/integration/import-product-from-tiny.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,+BAA+B,CAAC;AACnD,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,aAAa,MAAM,qDAAqD,CAAC;AAChF,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAEvD,eAAe,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE;IAChF,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,OAAO,GAAoB,IAAI,CAAC;IACpC,IAAI;QACF,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,IAAI,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KAC3E;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;YAC1B,MAAM,GAAG,CAAC;SACX;KACF;IACD,IAAI,aAAa,GAAY,KAAK,CAAC;IACnC,IAAI,WAA+B,CAAC;IACpC,IAAI,OAAO,EAAE;QACX,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAC/B,aAAa,GAAG,OAAO,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,UAAU,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC;QACzE,IAAI,SAAS,EAAE;YACb,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC;SAC7B;aAAM;YACL,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC7C,MAAM,GAAG,GAAG,GAAG;sBACX,0CAA0C;sBAC1C,+CAA+C,CAAC;gBACpD,MAAM,GAAG,GAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;gBACzB,OAAO,GAAG,CAAC;aACZ;YACD,OAAO,IAAI,CAAC;SACb;KACF;IAED,MAAM,eAAe,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,WAAY,EAAE,EAAE;QAC1D,IAAI,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACrE,IAAI,OAAO,CAAC,cAAc,EAAE;YAC1B,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC5C;QACD,IAAI,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,WAAW,CAAC,EAAE;YACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBAC3B,IAAI,QAAQ,GAAG,CAAC,EAAE;oBAChB,QAAQ,GAAG,CAAC,CAAC;iBACd;gBACD,IAAI,QAAQ,GAAG,YAAY,OAAO,CAAC,GAAG,EAAE,CAAC;gBACzC,IAAI,WAAW,EAAE;oBACf,QAAQ,IAAI,cAAc,WAAW,EAAE,CAAC;iBACzC;gBACD,QAAQ,IAAI,WAAW,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACpC,aAAa;gBACb,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aACpC;YACD,OAAO,IAAI,CAAC;SACb;QACD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,QAAQ,CAAC,oBAAoB,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC;aAC1D,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YACpB,IAAI,MAAM,CAAC;YACX,IAAI,QAAQ,CAAC;YACb,IAAI,SAAS,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;YACvC,IAAI,SAAS,EAAE;gBACb,MAAM,GAAG,OAAO,CAAC;gBACjB,QAAQ,GAAG,YAAY,SAAS,EAAE,CAAC;aACpC;iBAAM,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,EAAE;gBACtC,MAAM,GAAG,MAAM,CAAC;gBAChB,QAAQ,GAAG,UAAU,CAAC;aACvB;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;YACD,aAAa;YACb,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAiB,EAAE,EAAE;gBACzE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;oBAC3B,OAAO,CAAC,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;iBACjD;gBACD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;gBACrC,MAAM,OAAO,GAAG,GAAG,CAAC;oBAClB,MAAM;oBACN,QAAQ;oBACR,IAAI,EAAE,OAAO;iBACd,CAAC,CAAC;gBAEH,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;oBAChE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;wBACnB,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;wBACpE,OAAO,OAAO,CAAC;qBAChB;oBACD,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;wBACxB,IAAI,IAAI,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;wBAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;4BACxB,IAAI,GAAG,EAAE,CAAC;yBACX;wBACD,IAAI,kBAAkB,GAAG,KAAK,CAAC;wBAC/B,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;4BACzC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;4BAC5B,IAAI,QAAQ,GAAG,MAAM,CAAC;4BACtB,IAAI,CAAC,SAAS,EAAE;gCACd,SAAS,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;6BAChD;4BACD,IAAI,SAAS,EAAE;gCACb,QAAQ,IAAI,KAAK,SAAS,EAAE,CAAC;6BAC9B;4BACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gCACtD,kBAAkB,GAAG,IAAI,CAAC;gCAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;6BACrB;wBACH,CAAC,CAAC,CAAC;wBACH,OAAO,kBAAkB;4BACvB,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE;gCAC9B,aAAa,EAAE;oCACb,GAAG,OAAO,CAAC,aAAa;oCACxB,IAAI;iCACL;6BACF,CAAC;4BACF,CAAC,CAAC,QAAQ,CAAC;oBACf,CAAC,CAAC,CAAC;iBACJ;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACzB,GAAG;QACH,SAAS;QACT,aAAa;QACb,WAAW;KACZ,CAAC,CAAC,CAAC;IACJ,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC;IACvC,IAAI,eAAe,IAAI,aAAa,IAAI,SAAS,EAAE;QACjD,OAAO,eAAe,CAAC,eAAsB,CAAC,CAAC;KAChD;IACD,OAAO,QAAQ,CAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;SACzD,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC3B,IAAI,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACjF,IAAI,WAAW,EAAE;gBACf,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,aAAa,IAAI,WAAW,EAAE;oBACjC,IAAI,eAAe,EAAE;wBACnB,OAAO,eAAe,CAAC,eAAsB,EAAE,WAAW,CAAC,CAAC;qBAC7D;oBACD,OAAO,QAAQ,CAAC,4BAA4B,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC;yBAClE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;iBACjE;gBACD,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE,EAAS,EAAE,WAAW,CAAC,CAAC;aAC7D;SACF;QACD,MAAM,GAAG,GAAG,OAAO,GAAG,yBAAyB,CAAC;QAChD,MAAM,GAAG,GAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -1,11 +1,11 @@
1
- import { firestore } from 'firebase-admin';
2
1
  import logger from 'firebase-functions/lib/logger';
3
2
  import api from '@cloudcommerce/api';
4
3
  import config from '@cloudcommerce/firebase/lib/config';
5
- import updateAppData from '@cloudcommerce/firebase/lib/helpers/update-app-data';
6
4
  import importProduct from './integration/import-product-from-tiny.js';
7
5
  import importOrder from './integration/import-order-from-tiny.js';
8
- import afterQueue from './integration/after-tiny-queue.js';
6
+
7
+ let appData = {};
8
+ let application;
9
9
 
10
10
  export default async (req, res) => {
11
11
  const tinyToken = req.query.token;
@@ -16,95 +16,51 @@ export default async (req, res) => {
16
16
  TODO: Check Tiny server IPs
17
17
  const clientIp = req.get('x-forwarded-for') || req.connection.remoteAddress
18
18
  */
19
- const { apps: { tinyErp: { appId } } } = config.get();
20
- const applicationId = req.query._id;
21
- const appEndpoint = applicationId && typeof applicationId === 'string'
22
- ? `applications/${applicationId}`
23
- : `applications/app_id:${appId}`;
24
- const application = (await api.get(appEndpoint)).data;
25
- const appData = {
26
- ...application.data,
27
- ...application.hidden_data,
28
- };
29
- if (appData.tiny_api_token !== tinyToken) {
30
- return res.sendStatus(401);
19
+ const { TINY_ERP_TOKEN } = process.env;
20
+ if (!TINY_ERP_TOKEN || TINY_ERP_TOKEN !== tinyToken) {
21
+ const { apps: { tinyErp: { appId } } } = config.get();
22
+ const applicationId = req.query._id;
23
+ const appEndpoint = applicationId && typeof applicationId === 'string'
24
+ ? `applications/${applicationId}`
25
+ : `applications/app_id:${appId}`;
26
+ application = (await api.get(appEndpoint)).data;
27
+ appData = {
28
+ ...application.data,
29
+ ...application.hidden_data,
30
+ };
31
+ if (appData.tiny_api_token !== tinyToken) {
32
+ return res.sendStatus(401);
33
+ }
34
+ process.env.TINY_ERP_TOKEN = tinyToken;
31
35
  }
32
36
  if (dados.idVendaTiny) {
33
- let orderNumbers = appData.___importation?.order_numbers;
34
- if (!Array.isArray(orderNumbers)) {
35
- orderNumbers = [];
36
- }
37
37
  const orderNumber = `id:${dados.idVendaTiny}`;
38
- if (!orderNumbers.includes(orderNumber)) {
39
- logger.info(`> Tiny webhook: order ${orderNumber}`);
40
- const saveToQueue = () => {
41
- orderNumbers.push(orderNumber);
42
- logger.info(`> Order numbers: ${JSON.stringify(orderNumbers)}`);
43
- return updateAppData(application, {
44
- ___importation: {
45
- ...appData.___importation,
46
- order_numbers: orderNumbers,
47
- },
48
- });
49
- };
50
- const queueEntry = {
51
- nextId: orderNumber,
52
- isNotQueued: true,
53
- };
54
- try {
55
- const payload = await importOrder({}, queueEntry);
56
- await afterQueue(queueEntry, appData, application, payload);
57
- } catch (e) {
58
- await saveToQueue();
59
- }
60
- }
61
- }
62
- if (tipo === 'produto' || tipo === 'estoque') {
63
- if ((dados.id || dados.idProduto) && (dados.codigo || dados.sku)) {
64
- const nextId = String(dados.skuMapeamento || dados.sku || dados.codigo);
65
- const tinyStockUpdate = {
66
- ref: `${nextId}`,
67
- tipo,
68
- produto: {
69
- id: dados.idProduto,
70
- codigo: dados.sku,
71
- ...dados,
72
- },
73
- updatedAt: firestore.Timestamp.fromDate(new Date()),
74
- };
75
- logger.info(`> Tiny webhook: ${nextId} => ${tinyStockUpdate.produto.saldo}`);
76
- const saveToQueue = () => {
77
- let skus = appData.___importation && appData.___importation.skus;
78
- if (!Array.isArray(skus)) {
79
- skus = [];
80
- }
81
- if (!skus.includes(nextId)) {
82
- return firestore().collection('tinyErpStockUpdates').add(tinyStockUpdate)
83
- .then(() => {
84
- skus.push(nextId);
85
- logger.info(`> SKUs: ${JSON.stringify(skus)}`);
86
- return updateAppData(application, {
87
- ___importation: {
88
- ...appData.___importation,
89
- skus,
90
- },
91
- });
92
- });
93
- }
94
- return Promise.resolve(null);
95
- };
96
- const queueEntry = {
97
- nextId,
98
- tinyStockUpdate,
99
- isNotQueued: true,
100
- };
101
- try {
102
- const payload = await importProduct({}, queueEntry, appData, false, true);
103
- await afterQueue(queueEntry, appData, application, payload);
104
- } catch (e) {
105
- await saveToQueue();
106
- }
107
- }
38
+ const queueEntry = {
39
+ nextId: orderNumber,
40
+ isNotQueued: true,
41
+ };
42
+ await importOrder({}, queueEntry);
43
+ } else if ((tipo === 'produto' || tipo === 'estoque')
44
+ && (dados.id || dados.idProduto)
45
+ && (dados.codigo || dados.sku)) {
46
+ const nextId = String(dados.skuMapeamento || dados.sku || dados.codigo);
47
+ const tinyStockUpdate = {
48
+ ref: `${nextId}`,
49
+ tipo,
50
+ produto: {
51
+ id: dados.idProduto,
52
+ codigo: dados.sku,
53
+ ...dados,
54
+ },
55
+ };
56
+ logger.info(`> Tiny webhook: ${nextId} => ${tinyStockUpdate.produto.saldo}`);
57
+ const queueEntry = {
58
+ nextId,
59
+ tinyStockUpdate,
60
+ isNotQueued: true,
61
+ app: application,
62
+ };
63
+ await importProduct({}, queueEntry, appData, false, true);
108
64
  }
109
65
  if (tipo === 'produto') {
110
66
  const mapeamentos = [];
@@ -129,6 +85,7 @@ export default async (req, res) => {
129
85
  }
130
86
  return res.sendStatus(200);
131
87
  }
88
+ logger.warn('< Invalid Tiny Webhook body', req.body);
132
89
  }
133
90
  return res.sendStatus(403);
134
91
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tiny-webhook.js","sourceRoot":"","sources":["../src/tiny-webhook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tiny-webhook.js","sourceRoot":"","sources":["../src/tiny-webhook.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-tiny-erp",
3
3
  "type": "module",
4
- "version": "0.0.60",
4
+ "version": "0.0.61",
5
5
  "description": "E-Com Plus Cloud Commerce app for Tiny ERP",
6
6
  "main": "lib/tiny-erp.js",
7
7
  "repository": {
@@ -16,8 +16,8 @@
16
16
  },
17
17
  "homepage": "https://github.com/ecomplus/cloud-commerce/tree/main/packages/apps/tiny-erp#readme",
18
18
  "dependencies": {
19
- "@cloudcommerce/api": "0.0.60",
20
- "@cloudcommerce/firebase": "0.0.60",
19
+ "@cloudcommerce/api": "0.0.61",
20
+ "@cloudcommerce/firebase": "0.0.61",
21
21
  "@ecomplus/utils": "^1.4.1",
22
22
  "axios": "^0.27.2",
23
23
  "firebase-admin": "^11.0.1",
@@ -25,7 +25,7 @@
25
25
  "form-data": "^4.0.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@cloudcommerce/types": "0.0.60",
28
+ "@cloudcommerce/types": "0.0.61",
29
29
  "@firebase/app-types": "^0.7.0"
30
30
  },
31
31
  "scripts": {
@@ -37,9 +37,16 @@ const handleApiEvent: ApiEventHandler = async ({
37
37
  }
38
38
  logger.info(`> Webhook ${resourceId} [${evName}]`);
39
39
 
40
- const tinyToken = appData.tiny_api_token;
41
- if (typeof tinyToken === 'string' && tinyToken) {
42
- process.env.TINY_ERP_TOKEN = tinyToken;
40
+ if (!process.env.TINY_ERP_TOKEN) {
41
+ const tinyToken = appData.tiny_api_token;
42
+ if (typeof tinyToken === 'string' && tinyToken) {
43
+ process.env.TINY_ERP_TOKEN = tinyToken;
44
+ } else {
45
+ logger.warn('Missing Tiny API token');
46
+ }
47
+ }
48
+
49
+ if (process.env.TINY_ERP_TOKEN) {
43
50
  let integrationConfig;
44
51
  let canCreateNew = false;
45
52
  if (evName === 'applications-dataSet') {
@@ -1,6 +1,4 @@
1
1
  import type { Products } from '@cloudcommerce/types';
2
- // eslint-disable-next-line import/no-unresolved
3
- import { getFirestore } from 'firebase-admin/firestore';
4
2
  import logger from 'firebase-functions/lib/logger';
5
3
  import api from '@cloudcommerce/api';
6
4
  import updateAppData from '@cloudcommerce/firebase/lib/helpers/update-app-data';
@@ -9,21 +7,6 @@ import parseProduct from './parsers/product-from-tiny';
9
7
 
10
8
  export default async (apiDoc, queueEntry, appData, canCreateNew, isHiddenQueue) => {
11
9
  const [sku, productId] = String(queueEntry.nextId).split(';:');
12
- let { tinyStockUpdate } = queueEntry;
13
- if (!tinyStockUpdate) {
14
- const querySnapshot = await getFirestore().collection('tinyErpStockUpdates')
15
- .where('ref', '==', `${sku}`).get();
16
- let lastUpdateTime;
17
- querySnapshot.forEach((documentSnapshot) => {
18
- const updateTime = documentSnapshot.updateTime.toDate().getTime();
19
- if (!lastUpdateTime || updateTime > lastUpdateTime) {
20
- lastUpdateTime = updateTime;
21
- tinyStockUpdate = documentSnapshot.data();
22
- }
23
- documentSnapshot.ref.delete().catch(logger.error);
24
- });
25
- }
26
-
27
10
  let product: Products | null = null;
28
11
  try {
29
12
  product = (await api.get(`products/${(productId || `sku:${sku}`)}`)).data;
@@ -106,6 +89,10 @@ export default async (apiDoc, queueEntry, appData, canCreateNew, isHiddenQueue)
106
89
  });
107
90
 
108
91
  if (Array.isArray(produto.variacoes) && produto.variacoes.length) {
92
+ if (!queueEntry.app) {
93
+ logger.warn('Variations cannot be queued without `queueEntry.app`');
94
+ return promise;
95
+ }
109
96
  promise.then((response) => {
110
97
  let skus = appData.__importation && appData.__importation.skus;
111
98
  if (!Array.isArray(skus)) {
@@ -147,6 +134,7 @@ export default async (apiDoc, queueEntry, appData, canCreateNew, isHiddenQueue)
147
134
  hasVariations,
148
135
  variationId,
149
136
  }));
137
+ const { tinyStockUpdate } = queueEntry;
150
138
  if (tinyStockUpdate && isHiddenQueue && productId) {
151
139
  return handleTinyStock(tinyStockUpdate as any);
152
140
  }
@@ -1,12 +1,13 @@
1
1
  import type { Request, Response } from 'firebase-functions';
2
- import { firestore } from 'firebase-admin';
2
+ import type { Applications } from '@cloudcommerce/types';
3
3
  import logger from 'firebase-functions/lib/logger';
4
4
  import api from '@cloudcommerce/api';
5
5
  import config from '@cloudcommerce/firebase/lib/config';
6
- import updateAppData from '@cloudcommerce/firebase/lib/helpers/update-app-data';
7
6
  import importProduct from './integration/import-product-from-tiny';
8
7
  import importOrder from './integration/import-order-from-tiny';
9
- import afterQueue from './integration/after-tiny-queue';
8
+
9
+ let appData: Record<string, any> = {};
10
+ let application: Applications;
10
11
 
11
12
  export default async (req: Request, res: Response) => {
12
13
  const tinyToken = req.query.token;
@@ -17,99 +18,54 @@ export default async (req: Request, res: Response) => {
17
18
  TODO: Check Tiny server IPs
18
19
  const clientIp = req.get('x-forwarded-for') || req.connection.remoteAddress
19
20
  */
20
- const { apps: { tinyErp: { appId } } } = config.get();
21
- const applicationId = req.query._id;
22
- const appEndpoint = applicationId && typeof applicationId === 'string'
23
- ? `applications/${applicationId}`
24
- : `applications/app_id:${appId}`;
25
- const application = (await api.get(appEndpoint as 'applications/id')).data;
26
- const appData: Record<string, any> = {
27
- ...application.data,
28
- ...application.hidden_data,
29
- };
30
- if (appData.tiny_api_token !== tinyToken) {
31
- return res.sendStatus(401);
21
+ const { TINY_ERP_TOKEN } = process.env;
22
+ if (!TINY_ERP_TOKEN || TINY_ERP_TOKEN !== tinyToken) {
23
+ const { apps: { tinyErp: { appId } } } = config.get();
24
+ const applicationId = req.query._id;
25
+ const appEndpoint = applicationId && typeof applicationId === 'string'
26
+ ? `applications/${applicationId}`
27
+ : `applications/app_id:${appId}`;
28
+ application = (await api.get(appEndpoint as 'applications/id')).data;
29
+ appData = {
30
+ ...application.data,
31
+ ...application.hidden_data,
32
+ };
33
+ if (appData.tiny_api_token !== tinyToken) {
34
+ return res.sendStatus(401);
35
+ }
36
+ process.env.TINY_ERP_TOKEN = tinyToken;
32
37
  }
33
38
 
34
39
  if (dados.idVendaTiny) {
35
- let orderNumbers = appData.___importation?.order_numbers;
36
- if (!Array.isArray(orderNumbers)) {
37
- orderNumbers = [];
38
- }
39
40
  const orderNumber = `id:${dados.idVendaTiny}`;
40
- if (!orderNumbers.includes(orderNumber)) {
41
- logger.info(`> Tiny webhook: order ${orderNumber}`);
42
- const saveToQueue = () => {
43
- orderNumbers.push(orderNumber);
44
- logger.info(`> Order numbers: ${JSON.stringify(orderNumbers)}`);
45
- return updateAppData(application, {
46
- ___importation: {
47
- ...appData.___importation,
48
- order_numbers: orderNumbers,
49
- },
50
- });
51
- };
52
-
53
- const queueEntry = {
54
- nextId: orderNumber,
55
- isNotQueued: true,
56
- };
57
- try {
58
- const payload = await importOrder({}, queueEntry);
59
- await afterQueue(queueEntry, appData, application, payload);
60
- } catch (e) {
61
- await saveToQueue();
62
- }
63
- }
64
- }
65
-
66
- if (tipo === 'produto' || tipo === 'estoque') {
67
- if ((dados.id || dados.idProduto) && (dados.codigo || dados.sku)) {
68
- const nextId = String(dados.skuMapeamento || dados.sku || dados.codigo);
69
- const tinyStockUpdate = {
70
- ref: `${nextId}`,
71
- tipo,
72
- produto: {
73
- id: dados.idProduto,
74
- codigo: dados.sku,
75
- ...dados,
76
- },
77
- updatedAt: firestore.Timestamp.fromDate(new Date()),
78
- };
79
- logger.info(`> Tiny webhook: ${nextId} => ${tinyStockUpdate.produto.saldo}`);
80
- const saveToQueue = () => {
81
- let skus = appData.___importation && appData.___importation.skus;
82
- if (!Array.isArray(skus)) {
83
- skus = [];
84
- }
85
- if (!skus.includes(nextId)) {
86
- return firestore().collection('tinyErpStockUpdates').add(tinyStockUpdate)
87
- .then(() => {
88
- skus.push(nextId);
89
- logger.info(`> SKUs: ${JSON.stringify(skus)}`);
90
- return updateAppData(application, {
91
- ___importation: {
92
- ...appData.___importation,
93
- skus,
94
- },
95
- });
96
- });
97
- }
98
- return Promise.resolve(null);
99
- };
100
-
101
- const queueEntry = {
102
- nextId,
103
- tinyStockUpdate,
104
- isNotQueued: true,
105
- };
106
- try {
107
- const payload = await importProduct({}, queueEntry, appData, false, true);
108
- await afterQueue(queueEntry, appData, application, payload);
109
- } catch (e) {
110
- await saveToQueue();
111
- }
112
- }
41
+ const queueEntry = {
42
+ nextId: orderNumber,
43
+ isNotQueued: true,
44
+ };
45
+ await importOrder({}, queueEntry);
46
+ } else if (
47
+ (tipo === 'produto' || tipo === 'estoque')
48
+ && (dados.id || dados.idProduto)
49
+ && (dados.codigo || dados.sku)
50
+ ) {
51
+ const nextId = String(dados.skuMapeamento || dados.sku || dados.codigo);
52
+ const tinyStockUpdate = {
53
+ ref: `${nextId}`,
54
+ tipo,
55
+ produto: {
56
+ id: dados.idProduto,
57
+ codigo: dados.sku,
58
+ ...dados,
59
+ },
60
+ };
61
+ logger.info(`> Tiny webhook: ${nextId} => ${tinyStockUpdate.produto.saldo}`);
62
+ const queueEntry = {
63
+ nextId,
64
+ tinyStockUpdate,
65
+ isNotQueued: true,
66
+ app: application,
67
+ };
68
+ await importProduct({}, queueEntry, appData, false, true);
113
69
  }
114
70
 
115
71
  if (tipo === 'produto') {
@@ -138,6 +94,7 @@ export default async (req: Request, res: Response) => {
138
94
  }
139
95
  return res.sendStatus(200);
140
96
  }
97
+ logger.warn('< Invalid Tiny Webhook body', req.body);
141
98
  }
142
99
  return res.sendStatus(403);
143
100
  };