cloudcommerce 0.0.60 → 0.0.63

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 (31) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/action.yml +6 -1
  3. package/package.json +1 -1
  4. package/packages/api/package.json +1 -1
  5. package/packages/apps/discounts/package.json +1 -1
  6. package/packages/apps/tiny-erp/lib/event-to-tiny.js +9 -3
  7. package/packages/apps/tiny-erp/lib/event-to-tiny.js.map +1 -1
  8. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +4 -6
  9. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js.map +1 -1
  10. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +5 -16
  11. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js.map +1 -1
  12. package/packages/apps/tiny-erp/lib/tiny-erp.js +6 -5
  13. package/packages/apps/tiny-erp/lib/tiny-erp.js.map +1 -1
  14. package/packages/apps/tiny-erp/lib/tiny-webhook.js +46 -89
  15. package/packages/apps/tiny-erp/lib/tiny-webhook.js.map +1 -1
  16. package/packages/apps/tiny-erp/package.json +1 -1
  17. package/packages/apps/tiny-erp/src/event-to-tiny.ts +10 -3
  18. package/packages/apps/tiny-erp/src/integration/import-order-from-tiny.ts +4 -6
  19. package/packages/apps/tiny-erp/src/integration/import-product-from-tiny.ts +5 -17
  20. package/packages/apps/tiny-erp/src/tiny-erp.ts +9 -7
  21. package/packages/apps/tiny-erp/src/tiny-webhook.ts +49 -92
  22. package/packages/cli/package.json +1 -1
  23. package/packages/events/lib/index.js +1 -1
  24. package/packages/events/package.json +1 -1
  25. package/packages/firebase/lib/index.js +1 -1
  26. package/packages/firebase/package.json +1 -1
  27. package/packages/modules/package.json +1 -1
  28. package/packages/passport/package.json +1 -1
  29. package/packages/ssr/package.json +1 -1
  30. package/packages/storefront/package.json +1 -1
  31. package/packages/types/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,32 @@
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.63](https://github.com/ecomplus/cloud-commerce/compare/v0.0.62...v0.0.63) (2022-08-31)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * Group app (Tiny ERP) functions and fix name for CLoud Functions v2 limits ([a059056](https://github.com/ecomplus/cloud-commerce/commit/a0590564ce8e376c000ba02ccb3b2a94d31e3c0d))
11
+
12
+ ### [0.0.62](https://github.com/ecomplus/cloud-commerce/compare/v0.0.61...v0.0.62) (2022-08-31)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * Properly import `firebase-admin/firestore` ([5754bb0](https://github.com/ecomplus/cloud-commerce/commit/5754bb0f7378106b15f9f683597f78afeb92ba74))
18
+
19
+ ### [0.0.61](https://github.com/ecomplus/cloud-commerce/compare/v0.0.60...v0.0.61) (2022-08-31)
20
+
21
+
22
+ ### Features
23
+
24
+ * Add optional `tiny-erp-token` input to GH Action to improve Tiny webhooks performance ([0444f65](https://github.com/ecomplus/cloud-commerce/commit/0444f655b0a358979b14cee8ab85f0f018d08df3))
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * **tiny-erp:** Properly set and reuse `process.env.TINY_ERP_TOKEN` on webhooks ([4aee43a](https://github.com/ecomplus/cloud-commerce/commit/4aee43a3f067eb430c0c183eada27dca1b331fd3))
30
+
5
31
  ### [0.0.60](https://github.com/ecomplus/cloud-commerce/compare/v0.0.59...v0.0.60) (2022-08-30)
6
32
 
7
33
 
package/action.yml CHANGED
@@ -15,7 +15,9 @@ inputs:
15
15
  description: 'E-Com Plus store API key'
16
16
  required: true
17
17
  ecom-store-id:
18
- description: 'Store ID if defined in config.json'
18
+ description: 'Store ID if not defined in config.json'
19
+ tiny-erp-token:
20
+ description: 'App: Tiny ERP API token'
19
21
 
20
22
  outputs: {}
21
23
 
@@ -26,6 +28,7 @@ runs:
26
28
  with:
27
29
  node-version: 16
28
30
  cache: 'npm'
31
+ cache-dependency-path: '**/package-lock.json'
29
32
 
30
33
  - if: github.event_name == 'push'
31
34
  shell: bash
@@ -52,6 +55,7 @@ runs:
52
55
  ECOM_AUTHENTICATION_ID: ${{ inputs.ecom-authentication-id }}
53
56
  ECOM_API_KEY: ${{ inputs.ecom-api-key }}
54
57
  ECOM_STORE_ID: ${{ inputs.ecom-store-id }}
58
+ TINY_ERP_TOKEN: ${{ inputs.tiny-erp-token }}
55
59
  run: |
56
60
  export GAC_FILENAME=".gac-$RANDOM.json"
57
61
  echo $FIREBASE_SERVICE_ACCOUNT > $GAC_FILENAME
@@ -59,6 +63,7 @@ runs:
59
63
  ECOM_API_KEY=$ECOM_API_KEY
60
64
  ECOM_STORE_ID=$ECOM_STORE_ID
61
65
  GITHUB_TOKEN=$GITHUB_TOKEN
66
+ TINY_ERP_TOKEN=$TINY_ERP_TOKEN
62
67
  " > functions/.env
63
68
  GOOGLE_APPLICATION_CREDENTIALS=$GAC_FILENAME npm run deploy
64
69
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cloudcommerce",
3
3
  "type": "module",
4
- "version": "0.0.60",
4
+ "version": "0.0.63",
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.60",
4
+ "version": "0.0.63",
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-discounts",
3
3
  "type": "module",
4
- "version": "0.0.60",
4
+ "version": "0.0.63",
5
5
  "description": "E-Com Plus Cloud Commerce app for complex discount rules",
6
6
  "main": "lib/discounts.js",
7
7
  "repository": {
@@ -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,4 +1,5 @@
1
- import { firestore } from 'firebase-admin';
1
+ // eslint-disable-next-line import/no-unresolved
2
+ import { getFirestore } from 'firebase-admin/firestore';
2
3
  import logger from 'firebase-functions/lib/logger';
3
4
  import api from '@cloudcommerce/api';
4
5
  import postTiny from './post-tiny-erp.js';
@@ -26,7 +27,7 @@ export default async (apiDoc, queueEntry) => {
26
27
  : null;
27
28
  const orderNumber = pedido.numero_ecommerce;
28
29
  logger.info(`Import order n${orderNumber} ${tinyOrderId} => ${situacao}`);
29
- const documentRef = firestore().doc(`tinyErpOrders/${tinyOrderId}`);
30
+ const documentRef = getFirestore().doc(`tinyErpOrders/${tinyOrderId}`);
30
31
  const documentSnapshot = await documentRef.get();
31
32
  if (documentSnapshot.exists
32
33
  && documentSnapshot.get('situacao') === situacao) {
@@ -68,10 +69,7 @@ export default async (apiDoc, queueEntry) => {
68
69
  });
69
70
  return Promise.all(promises)
70
71
  .then(([firstResult]) => {
71
- documentRef.set({
72
- situacao,
73
- updatedAt: firestore.Timestamp.fromDate(new Date()),
74
- }).catch(logger.error);
72
+ documentRef.set({ situacao }).catch(logger.error);
75
73
  return (firstResult && firstResult.response) || firstResult;
76
74
  });
77
75
  };
@@ -1 +1 @@
1
- {"version":3,"file":"import-order-from-tiny.js","sourceRoot":"","sources":["../../src/integration/import-order-from-tiny.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-order-from-tiny.js","sourceRoot":"","sources":["../../src/integration/import-order-from-tiny.ts"],"names":[],"mappings":"AACA,gDAAgD;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,MAAM,MAAM,+BAA+B,CAAC;AACnD,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAErD,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,EAAE;IAChC,IAAI,YAAY,CAAC;IACjB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,IACE,MAAM;eACH,CAAC,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,EACrF;YACA,YAAY,GAAG,MAAM,CAAC;SACvB;IACH,CAAC,CAAC,CAAC;IACH,OAAO,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC;AAC7C,CAAC,CAAC;AAEF,eAAe,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;IAC1C,MAAM,YAAY,GAAG,KAAK,EAAE,WAAW,EAAE,EAAE;QACzC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE;YACrD,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC;SACxB,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YAClD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;YAC/B,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,IAAI,WAAW,OAAO,QAAQ,EAAE,CAAC,CAAC;QAE1E,MAAM,WAAW,GAAG,YAAY,EAAE,CAAC,GAAG,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;QACvE,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC;QACjD,IACE,gBAAgB,CAAC,MAAM;eACpB,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ,EAChD;YACA,MAAM,CAAC,IAAI,CAAC,2BAA2B,WAAW,IAAI,WAAW,mBAAmB,CAAC,CAAC;YACtF,OAAO,IAAI,CAAC;SACb;QAED,IAAI,YAAY,GAAG,wEAAwE,CAAC;QAC5F,IAAI,WAAW,EAAE;YACf,YAAY,IAAI,WAAW,WAAW,EAAE,CAAC;SAC1C;aAAM;YACL,YAAY,IAAI,4BAA4B,WAAW,OAAO,CAAC;SAChE;QACD,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,YAAwB,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAW,CAAC;QAC9E,MAAM,QAAQ,GAAmB,EAAE,CAAC;QACpC,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE;YACpD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;SAC/D;QACD,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,IAAI,GAAwB;YAChC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,CAAC,WAAW,CAAC;SACrB,CAAC;QACF;YACE,CAAC,eAAe,EAAE,kBAAkB,CAAC;YACrC,CAAC,iBAAiB,EAAE,cAAc,CAAC;SACpC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE;YACrC,IACE,SAAS;gBACT,aAAa;mBACV,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,SAAS,CAAC,EAC3E;gBACA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,IAAI,WAAW,EAAE,EAAE,IAAW,CAAC,CAAC,CAAC;gBAC3E,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,eAAe,SAAS,cAAc,WAAW,EAAE,CAAC,CAAC;aAC9E;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;aACzB,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE;YACtB,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClD,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC;QAC9D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC;IAC1C,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QAC5E,OAAO,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KACnD;IACD,OAAO,QAAQ,CAAC,uBAAuB,EAAE;QACvC,MAAM,EAAE,eAAe;KACxB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACtB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YAC5C,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,EAAE;YACb,OAAO,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC1C;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -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":"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"}
@@ -9,9 +9,10 @@ import handleTinyWebhook from './tiny-webhook.js';
9
9
 
10
10
  const { httpsFunctionOptions } = config.get();
11
11
 
12
- export const tinyErpOnApiEvent = createAppEventsFunction('tinyErp', handleApiEvent);
13
-
14
- export const tinyErpWebhook = onRequest(httpsFunctionOptions, (req, res) => {
15
- handleTinyWebhook(req, res);
16
- });
12
+ export const tinyerp = {
13
+ onStoreEvent: createAppEventsFunction('tinyErp', handleApiEvent),
14
+ webhook: onRequest(httpsFunctionOptions, (req, res) => {
15
+ handleTinyWebhook(req, res);
16
+ }),
17
+ };
17
18
  // # sourceMappingURL=tiny-erp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tiny-erp.js","sourceRoot":"","sources":["../src/tiny-erp.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,kCAAkC,CAAC;AAC1C,gDAAgD;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,MAAM,MAAM,oCAAoC,CAAC;AACxD,OAAO,EACL,uBAAuB,GAExB,MAAM,4CAA4C,CAAC;AACpD,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,iBAAiB,MAAM,gBAAgB,CAAC;AAE/C,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;AAE9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CACtD,SAAS,EACT,cAAiC,CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACzE,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"tiny-erp.js","sourceRoot":"","sources":["../src/tiny-erp.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,kCAAkC,CAAC;AAC1C,gDAAgD;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,MAAM,MAAM,oCAAoC,CAAC;AACxD,OAAO,EACL,uBAAuB,GAExB,MAAM,4CAA4C,CAAC;AACpD,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,iBAAiB,MAAM,gBAAgB,CAAC;AAE/C,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;AAE9C,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,YAAY,EAAE,uBAAuB,CACnC,SAAS,EACT,cAAiC,CAClC;IAED,OAAO,EAAE,SAAS,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACpD,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC;CACH,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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"}
@@ -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.63",
5
5
  "description": "E-Com Plus Cloud Commerce app for Tiny ERP",
6
6
  "main": "lib/tiny-erp.js",
7
7
  "repository": {
@@ -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,5 +1,6 @@
1
1
  import type { Orders } from '@cloudcommerce/types';
2
- import { firestore } from 'firebase-admin';
2
+ // eslint-disable-next-line import/no-unresolved
3
+ import { getFirestore } from 'firebase-admin/firestore';
3
4
  import logger from 'firebase-functions/lib/logger';
4
5
  import api from '@cloudcommerce/api';
5
6
  import postTiny from './post-tiny-erp';
@@ -30,7 +31,7 @@ export default async (apiDoc, queueEntry) => {
30
31
  const orderNumber = pedido.numero_ecommerce;
31
32
  logger.info(`Import order n${orderNumber} ${tinyOrderId} => ${situacao}`);
32
33
 
33
- const documentRef = firestore().doc(`tinyErpOrders/${tinyOrderId}`);
34
+ const documentRef = getFirestore().doc(`tinyErpOrders/${tinyOrderId}`);
34
35
  const documentSnapshot = await documentRef.get();
35
36
  if (
36
37
  documentSnapshot.exists
@@ -78,10 +79,7 @@ export default async (apiDoc, queueEntry) => {
78
79
 
79
80
  return Promise.all(promises)
80
81
  .then(([firstResult]) => {
81
- documentRef.set({
82
- situacao,
83
- updatedAt: firestore.Timestamp.fromDate(new Date()),
84
- }).catch(logger.error);
82
+ documentRef.set({ situacao }).catch(logger.error);
85
83
  return (firstResult && firstResult.response) || firstResult;
86
84
  });
87
85
  };
@@ -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
  }
@@ -13,11 +13,13 @@ import handleTinyWebhook from './tiny-webhook';
13
13
 
14
14
  const { httpsFunctionOptions } = config.get();
15
15
 
16
- export const tinyErpOnApiEvent = createAppEventsFunction(
17
- 'tinyErp',
18
- handleApiEvent as ApiEventHandler,
19
- );
16
+ export const tinyerp = {
17
+ onStoreEvent: createAppEventsFunction(
18
+ 'tinyErp',
19
+ handleApiEvent as ApiEventHandler,
20
+ ),
20
21
 
21
- export const tinyErpWebhook = onRequest(httpsFunctionOptions, (req, res) => {
22
- handleTinyWebhook(req, res);
23
- });
22
+ webhook: onRequest(httpsFunctionOptions, (req, res) => {
23
+ handleTinyWebhook(req, res);
24
+ }),
25
+ };
@@ -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
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/cli",
3
3
  "type": "module",
4
- "version": "0.0.60",
4
+ "version": "0.0.63",
5
5
  "description": "E-Com Plus Cloud Commerce CLI tools",
6
6
  "bin": {
7
7
  "cloudcommerce": "./bin/run.mjs"
@@ -1,2 +1,2 @@
1
- import './firebase';
1
+ import './firebase.js';
2
2
  // # sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/events",
3
3
  "type": "module",
4
- "version": "0.0.60",
4
+ "version": "0.0.63",
5
5
  "description": "E-Com Plus Cloud Commerce app events",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable import/prefer-default-export */
2
- import './init';
2
+ import './init.js';
3
3
  import functions from 'firebase-functions';
4
4
  import config from './config.js';
5
5
  import checkStoreEvents from './handlers/check-store-events.js';
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/firebase",
3
3
  "type": "module",
4
- "version": "0.0.60",
4
+ "version": "0.0.63",
5
5
  "description": "E-Com Plus Cloud Commerce on Firebase",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/modules",
3
3
  "type": "module",
4
- "version": "0.0.60",
4
+ "version": "0.0.63",
5
5
  "description": "E-Com Plus Cloud Commerce modules API",
6
6
  "main": "lib/index.cjs",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/passport",
3
3
  "type": "module",
4
- "version": "0.0.60",
4
+ "version": "0.0.63",
5
5
  "description": "E-Com Plus Cloud Commerce customers authentication (passport) API",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/ssr",
3
3
  "type": "module",
4
- "version": "0.0.60",
4
+ "version": "0.0.63",
5
5
  "description": "E-Com Plus Cloud Commerce storefront SSR",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/storefront",
3
3
  "type": "module",
4
- "version": "0.0.60",
4
+ "version": "0.0.63",
5
5
  "description": "E-Com Plus Cloud Commerce storefront with Astro",
6
6
  "main": "src/index.js",
7
7
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/types",
3
3
  "type": "module",
4
- "version": "0.0.60",
4
+ "version": "0.0.63",
5
5
  "description": "E-Com Plus Cloud Commerce reusable type definitions",
6
6
  "main": "index.ts",
7
7
  "repository": {