cloudcommerce 0.0.73 → 0.0.74

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 (102) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/package.json +8 -8
  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/package.json +1 -1
  9. package/packages/cli/config/firebase.json +47 -0
  10. package/packages/cli/package.json +1 -1
  11. package/packages/config/package.json +1 -1
  12. package/packages/events/package.json +1 -1
  13. package/packages/firebase/package.json +1 -1
  14. package/packages/modules/package.json +2 -1
  15. package/packages/modules/schemas/@checkout.cjs +28 -28
  16. package/packages/modules/schemas/apply_discount.cjs +2 -2
  17. package/packages/modules/schemas/calculate_shipping.cjs +4 -4
  18. package/packages/modules/schemas/create_transaction.cjs +30 -30
  19. package/packages/modules/schemas/list_payments.cjs +6 -6
  20. package/packages/modules/src/firebase/ajv.ts +2 -1
  21. package/packages/modules/src/firebase/handle-module.ts +5 -1
  22. package/packages/modules/src/firebase/serve-modules-api.ts +5 -3
  23. package/packages/passport/lib/firebase/handle-passport.js +96 -92
  24. package/packages/passport/lib/firebase/serve-passport-api.js +35 -34
  25. package/packages/passport/lib/firebase.js +5 -7
  26. package/packages/passport/lib/index.js +2 -1
  27. package/packages/passport/package.json +1 -1
  28. package/packages/ssr/lib/firebase/serve-storefront.js +33 -33
  29. package/packages/ssr/lib/firebase.js +2 -4
  30. package/packages/ssr/lib/index.js +1 -2
  31. package/packages/ssr/package.json +1 -1
  32. package/packages/storefront/astro.config.mjs +2 -0
  33. package/packages/storefront/dist/client/LoginModal.d6b935cf.js +1 -0
  34. package/packages/storefront/dist/client/assets/{_...c08e0a75.css → _...27b7eb4d.css} +1 -1
  35. package/packages/storefront/dist/client/assets/_...b3f65c5c.css +1 -0
  36. package/packages/storefront/dist/client/assets/fallback-index.90217cf0.css +1 -0
  37. package/packages/storefront/dist/client/assets/{fallback.9745a8aa.css → fallback.9cd2ed3f.css} +1 -1
  38. package/packages/storefront/dist/client/assets/{index.9745690c.css → index.c5a9ea80.css} +1 -1
  39. package/packages/storefront/dist/client/chunks/index.esm.69f70489.js +1726 -0
  40. package/packages/storefront/dist/client/chunks/index.esm2017.1194d1a1.js +457 -0
  41. package/packages/storefront/dist/client/chunks/runtime-core.esm-bundler.a7337834.js +1 -0
  42. package/packages/storefront/dist/client/client.80b904f3.js +1 -0
  43. package/packages/storefront/dist/client/hoisted.24787260.js +376 -0
  44. package/packages/storefront/dist/server/entry.mjs +342 -69
  45. package/packages/storefront/package.json +11 -9
  46. package/packages/storefront/src/assets/firebaseui.css +648 -0
  47. package/packages/storefront/src/lib/components/LoginModal.vue +42 -9
  48. package/packages/storefront/src/lib/layouts/Layout.astro +24 -0
  49. package/packages/types/package.json +1 -1
  50. package/packages/apps/tiny-erp/lib/event-to-tiny.js +0 -115
  51. package/packages/apps/tiny-erp/lib/event-to-tiny.js.map +0 -1
  52. package/packages/apps/tiny-erp/lib/index.js +0 -2
  53. package/packages/apps/tiny-erp/lib/index.js.map +0 -1
  54. package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js +0 -79
  55. package/packages/apps/tiny-erp/lib/integration/after-tiny-queue.js.map +0 -1
  56. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js +0 -84
  57. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js.map +0 -1
  58. package/packages/apps/tiny-erp/lib/integration/export-product-to-tiny.js +0 -58
  59. package/packages/apps/tiny-erp/lib/integration/export-product-to-tiny.js.map +0 -1
  60. package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js +0 -7
  61. package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js.map +0 -1
  62. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +0 -92
  63. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js.map +0 -1
  64. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +0 -158
  65. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js.map +0 -1
  66. package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js +0 -46
  67. package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js.map +0 -1
  68. package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js +0 -193
  69. package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js.map +0 -1
  70. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js +0 -199
  71. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js.map +0 -1
  72. package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js +0 -129
  73. package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js.map +0 -1
  74. package/packages/apps/tiny-erp/lib/integration/parsers/status-from-tiny.js +0 -34
  75. package/packages/apps/tiny-erp/lib/integration/parsers/status-from-tiny.js.map +0 -1
  76. package/packages/apps/tiny-erp/lib/integration/parsers/status-to-tiny.js +0 -39
  77. package/packages/apps/tiny-erp/lib/integration/parsers/status-to-tiny.js.map +0 -1
  78. package/packages/apps/tiny-erp/lib/integration/post-tiny-erp.js +0 -47
  79. package/packages/apps/tiny-erp/lib/integration/post-tiny-erp.js.map +0 -1
  80. package/packages/apps/tiny-erp/lib/tiny-erp.js +0 -18
  81. package/packages/apps/tiny-erp/lib/tiny-erp.js.map +0 -1
  82. package/packages/apps/tiny-erp/lib/tiny-webhook.js +0 -92
  83. package/packages/apps/tiny-erp/lib/tiny-webhook.js.map +0 -1
  84. package/packages/modules/lib/firebase/ajv.js +0 -33
  85. package/packages/modules/lib/firebase/ajv.js.map +0 -1
  86. package/packages/modules/lib/firebase/call-app-module.js +0 -135
  87. package/packages/modules/lib/firebase/call-app-module.js.map +0 -1
  88. package/packages/modules/lib/firebase/checkout.js +0 -1
  89. package/packages/modules/lib/firebase/checkout.js.map +0 -1
  90. package/packages/modules/lib/firebase/handle-module.js +0 -165
  91. package/packages/modules/lib/firebase/handle-module.js.map +0 -1
  92. package/packages/modules/lib/firebase/proxy-apps.js +0 -1
  93. package/packages/modules/lib/firebase/proxy-apps.js.map +0 -1
  94. package/packages/modules/lib/firebase/serve-modules-api.js +0 -57
  95. package/packages/modules/lib/firebase/serve-modules-api.js.map +0 -1
  96. package/packages/modules/lib/firebase.js +0 -13
  97. package/packages/modules/lib/firebase.js.map +0 -1
  98. package/packages/modules/lib/index.js +0 -25
  99. package/packages/modules/lib/index.js.map +0 -1
  100. package/packages/storefront/dist/client/assets/_...d4aa8aff.css +0 -1
  101. package/packages/storefront/dist/client/assets/fallback-index.d9230d24.css +0 -1
  102. package/packages/storefront/dist/client/client.6d48c590.js +0 -1
@@ -7,25 +7,58 @@
7
7
  <div class="counter-message">
8
8
  <slot />
9
9
  </div>
10
+ <div id="firebaseui-auth-container"></div>
10
11
  </template>
11
12
 
12
13
  <script lang="ts">
13
14
  import { ref } from 'vue';
14
15
  import config from '@cloudcommerce/config';
15
16
 
17
+ const setupFirebaseUi = async () => {
18
+ const { lang } = config.get();
19
+ import('../../assets/firebaseui.css');
20
+
21
+ await Promise.all([
22
+ import('firebase/compat/auth'),
23
+ new Promise((resolve, reject) => {
24
+ const script = document.createElement('script');
25
+ script.src = `https://www.gstatic.com/firebasejs/ui/6.0.1/firebase-ui-auth__${lang}.js`;
26
+ script.onload = resolve;
27
+ script.onerror = reject;
28
+ script.async = true;
29
+ document.body.appendChild(script);
30
+ }),
31
+ ]);
32
+ const { firebase, firebaseui }: { firebase: any, firebaseui: any } = window;
33
+ const ui = new firebaseui.auth.AuthUI(firebase.auth());
34
+ console.log(firebase.auth);
35
+ const uiConfig = {
36
+ signInSuccessUrl: '<url-to-redirect-to-on-success>',
37
+ signInOptions: [
38
+ // Leave the lines as is for the providers you want to offer your users.
39
+ // firebase.auth.GoogleAuthProvider.PROVIDER_ID,
40
+ // firebase.auth.FacebookAuthProvider.PROVIDER_ID,
41
+ // firebase.auth.TwitterAuthProvider.PROVIDER_ID,
42
+ // firebase.auth.GithubAuthProvider.PROVIDER_ID,
43
+ firebase.auth.EmailAuthProvider.PROVIDER_ID,
44
+ // firebase.auth.PhoneAuthProvider.PROVIDER_ID,
45
+ // firebaseui.auth.AnonymousAuthProvider.PROVIDER_ID,
46
+ ],
47
+ // tosUrl and privacyPolicyUrl accept either url string or a callback
48
+ // function.
49
+ // Terms of service url/callback.
50
+ tosUrl: '<your-tos-url>',
51
+ // Privacy policy url/callback.
52
+ privacyPolicyUrl: '<your-privacy-policy-url>',
53
+ };
54
+ ui.start('#firebaseui-auth-container', uiConfig);
55
+ };
56
+
16
57
  export default {
17
58
  setup() {
18
59
  if (!import.meta.env.SSR) {
19
- const { lang } = config.get();
20
- const script = document.createElement('script');
21
- script.setAttribute(
22
- 'src',
23
- `https://www.gstatic.com/firebasejs/ui/6.0.1/firebase-ui-auth__${lang}.js`,
24
- );
25
- script.setAttribute('async', '');
26
- window.document.head.appendChild(script);
60
+ setupFirebaseUi();
27
61
  }
28
-
29
62
  const count = ref(0);
30
63
  const add = () => {
31
64
  count.value += 1;
@@ -2,6 +2,7 @@
2
2
  import { getConfig } from '../ssr-context';
3
3
  import MetaHead from './meta/Head.astro';
4
4
  import MetaJson from './meta/Json.astro';
5
+ import LoginModal from '../components/LoginModal.vue';
5
6
 
6
7
  export interface Props {
7
8
  title: string;
@@ -18,8 +19,31 @@ const { title } = Astro.props as Props;
18
19
  <title>{title}</title>
19
20
  </head>
20
21
  <body>
22
+ <LoginModal client:idle />
21
23
  <slot />
22
24
  <MetaJson />
25
+ <slot name="firebase-init">
26
+ <script>
27
+ // Import Firebase in compat version for Auth UI
28
+ // https://github.com/firebase/firebaseui-web#starting-the-sign-in-flow
29
+ import firebase from "firebase/compat/app";
30
+ import { getAnalytics } from "firebase/analytics";
31
+ // @ts-ignore
32
+ const firebaseConfig = window.firebaseConfig || {
33
+ apiKey: "AIzaSyCrVzemDgpyp9i6ni7Yc5ZuEVfXYwl-4J0",
34
+ authDomain: "ecom2-002.firebaseapp.com",
35
+ projectId: "ecom2-002",
36
+ storageBucket: "ecom2-002.appspot.com",
37
+ messagingSenderId: "402807248219",
38
+ appId: "1:402807248219:web:cf7d57759751e74776367e",
39
+ measurementId: "G-SC592CE0GB"
40
+ };
41
+ // @ts-ignore
42
+ window.firebase = firebase;
43
+ const app = firebase.initializeApp(firebaseConfig);
44
+ const analytics = getAnalytics(app);
45
+ </script>
46
+ </slot>
23
47
  </body>
24
48
  </html>
25
49
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/types",
3
3
  "type": "module",
4
- "version": "0.0.73",
4
+ "version": "0.0.74",
5
5
  "description": "E-Com Plus Cloud Commerce reusable type definitions",
6
6
  "main": "index.ts",
7
7
  "repository": {
@@ -1,115 +0,0 @@
1
- import logger from 'firebase-functions/lib/logger';
2
- import exportProduct from './integration/export-product-to-tiny.js';
3
- import exportOrder from './integration/export-order-to-tiny.js';
4
- import importProduct from './integration/import-product-from-tiny.js';
5
- import importOrder from './integration/import-order-from-tiny.js';
6
- import afterQueue from './integration/after-tiny-queue.js';
7
-
8
- // Async integration handlers
9
- const integrationHandlers = {
10
- exportation: {
11
- product_ids: exportProduct,
12
- order_ids: exportOrder,
13
- },
14
- importation: {
15
- skus: importProduct,
16
- order_numbers: importOrder,
17
- },
18
- };
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)
27
- && appData.ignore_events.includes(evName)) {
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');
38
- }
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;
57
- }
58
- } else if (!appData.update_price) {
59
- return null;
60
- }
61
- integrationConfig = {
62
- _exportation: {
63
- product_ids: [resourceId],
64
- },
65
- };
66
- }
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}`);
72
- }
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'
87
- && nextId.length
88
- && handler) {
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
- }
104
- }
105
- }
106
- }
107
- }
108
- }
109
- }
110
- // Nothing to do
111
- return null;
112
- };
113
-
114
- export default handleApiEvent;
115
- // # sourceMappingURL=event-to-tiny.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-to-tiny.js","sourceRoot":"","sources":["../src/event-to-tiny.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from './tiny-erp.js';
2
- // # sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -1,79 +0,0 @@
1
- import logger from 'firebase-functions/lib/logger';
2
- import updateAppData from '@cloudcommerce/firebase/lib/helpers/update-app-data';
3
-
4
- export default async (queueEntry, appData, application, payload) => {
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);
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
- } else if (payload.isConfigError === true) {
42
- notes = payload.message;
43
- } else {
44
- notes = payload.stack;
45
- }
46
- }
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);
66
- }
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);
78
- };
79
- // # sourceMappingURL=after-tiny-queue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"after-tiny-queue.js","sourceRoot":"","sources":["../../src/integration/after-tiny-queue.ts"],"names":[],"mappings":"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"}
@@ -1,84 +0,0 @@
1
- import logger from 'firebase-functions/lib/logger';
2
- import api from '@cloudcommerce/api';
3
- import postTiny from './post-tiny-erp.js';
4
- import parseStatus from './parsers/status-to-tiny.js';
5
- import parseOrder from './parsers/order-to-tiny.js';
6
-
7
- export default async (apiDoc, queueEntry, appData, canCreateNew) => {
8
- const orderId = queueEntry.nextId;
9
- let order;
10
- if (orderId === apiDoc._id) {
11
- order = apiDoc;
12
- } else {
13
- try {
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;
42
- }
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;
53
- }
54
- }
55
- if (!originalTinyOrder) {
56
- if (!canCreateNew) {
57
- return null;
58
- }
59
- if (appData.approved_orders_only
60
- && (tinyStatus === 'aberto' || tinyStatus === 'cancelado')) {
61
- logger.info(`${orderId} skipped with status "${tinyStatus}"`);
62
- return null;
63
- }
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
- });
80
- }
81
- }
82
- return null;
83
- };
84
- // # sourceMappingURL=export-order-to-tiny.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"export-order-to-tiny.js","sourceRoot":"","sources":["../../src/integration/export-order-to-tiny.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- import api from '@cloudcommerce/api';
2
- import postTiny from './post-tiny-erp.js';
3
- import parseProduct from './parsers/product-to-tiny.js';
4
-
5
- export default async (apiDoc, queueEntry, appData, canCreateNew) => {
6
- const productId = queueEntry.nextId;
7
- let product;
8
- if (productId === apiDoc._id) {
9
- product = apiDoc;
10
- } else {
11
- try {
12
- product = (await api.get(`products/${productId}`)).data;
13
- } catch (err) {
14
- if (err.statusCode === 404) {
15
- const msg = `O produto ${productId} não existe (:${err.statusCode})`;
16
- const error = new Error(msg);
17
- error.isConfigError = true;
18
- return error;
19
- }
20
- throw err;
21
- }
22
- }
23
- let tinyData;
24
- try {
25
- tinyData = await postTiny('/produtos.pesquisa.php', {
26
- pesquisa: product.sku,
27
- });
28
- } catch (err) {
29
- if (err.response && err.response.status === 404) {
30
- tinyData = {};
31
- } else {
32
- throw err;
33
- }
34
- }
35
- const { produtos } = tinyData;
36
- let originalTinyProduct;
37
- if (Array.isArray(produtos)) {
38
- originalTinyProduct = produtos.find(({ produto }) => {
39
- return product.sku === String(produto.codigo);
40
- });
41
- if (originalTinyProduct) {
42
- originalTinyProduct = originalTinyProduct.produto;
43
- } else if (!canCreateNew) {
44
- return null;
45
- }
46
- }
47
- const tinyProduct = parseProduct(product, originalTinyProduct, appData);
48
- return tinyProduct
49
- ? postTiny(originalTinyProduct ? '/produto.alterar.php' : '/produto.incluir.php', {
50
- produto: {
51
- produtos: [{
52
- produto: tinyProduct,
53
- }],
54
- },
55
- })
56
- : null;
57
- };
58
- // # sourceMappingURL=export-product-to-tiny.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"export-product-to-tiny.js","sourceRoot":"","sources":["../../src/integration/export-product-to-tiny.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAErD,eAAe,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;IACjE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;IACpC,IAAI,OAAiB,CAAC;IACtB,IAAI,SAAS,KAAK,MAAM,CAAC,GAAG,EAAE;QAC5B,OAAO,GAAG,MAAM,CAAC;KAClB;SAAM;QACL,IAAI;YACF,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACzD;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;gBAC1B,MAAM,GAAG,GAAG,aAAa,SAAS,iBAAiB,GAAG,CAAC,UAAU,GAAG,CAAC;gBACrE,MAAM,KAAK,GAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC3B,OAAO,KAAK,CAAC;aACd;YACD,MAAM,GAAG,CAAC;SACX;KACF;IAED,IAAI,QAA4B,CAAC;IACjC,IAAI;QACF,QAAQ,GAAG,MAAM,QAAQ,CAAC,wBAAwB,EAAE;YAClD,QAAQ,EAAE,OAAO,CAAC,GAAG;SACtB,CAAC,CAAC;KACJ;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC/C,QAAQ,GAAG,EAAE,CAAC;SACf;aAAM;YACL,MAAM,GAAG,CAAC;SACX;KACF;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAC9B,IAAI,mBAAmB,CAAC;IACxB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YAClD,OAAO,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,IAAI,mBAAmB,EAAE;YACvB,mBAAmB,GAAG,mBAAmB,CAAC,OAAO,CAAC;SACnD;aAAM,IAAI,CAAC,YAAY,EAAE;YACxB,OAAO,IAAI,CAAC;SACb;KACF;IACD,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACxE,OAAO,WAAW;QAChB,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,EAAE;YAChF,OAAO,EAAE;gBACP,QAAQ,EAAE,CAAC;wBACT,OAAO,EAAE,WAAW;qBACrB,CAAC;aACH;SACF,CAAC;QACF,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- export default (d) => {
2
- /* eslint-disable prefer-template */
3
- return d.getDate().toString().padStart(2, '0') + '/'
4
- + (d.getMonth() + 1).toString().padStart(2, '0') + '/'
5
- + d.getFullYear();
6
- };
7
- // # sourceMappingURL=format-tiny-date.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format-tiny-date.js","sourceRoot":"","sources":["../../../src/integration/helpers/format-tiny-date.ts"],"names":[],"mappings":"AAAA,eAAe,CAAC,CAAO,EAAE,EAAE;IACzB,oCAAoC;IACpC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG;UAChD,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG;UACpD,CAAC,CAAC,WAAW,EAAE,CAAC;AACtB,CAAC,CAAC"}
@@ -1,92 +0,0 @@
1
- // eslint-disable-next-line import/no-unresolved
2
- import { getFirestore } from 'firebase-admin/firestore';
3
- import logger from 'firebase-functions/lib/logger';
4
- import api from '@cloudcommerce/api';
5
- import postTiny from './post-tiny-erp.js';
6
- import parseOrder from './parsers/order-from-tiny.js';
7
- import parseStatus from './parsers/status-from-tiny.js';
8
-
9
- const getLastStatus = (records) => {
10
- let statusRecord;
11
- records.forEach((record) => {
12
- if (record
13
- && (!statusRecord || !record.date_time || record.date_time >= statusRecord.date_time)) {
14
- statusRecord = record;
15
- }
16
- });
17
- return statusRecord && statusRecord.status;
18
- };
19
-
20
- export default async (apiDoc, queueEntry) => {
21
- const getTinyOrder = async (tinyOrderId) => {
22
- const { pedido } = await postTiny('/pedido.obter.php', {
23
- id: Number(tinyOrderId),
24
- });
25
- const situacao = typeof pedido.situacao === 'string'
26
- ? pedido.situacao.toLowerCase()
27
- : null;
28
- const orderNumber = pedido.numero_ecommerce;
29
- logger.info(`Import order n${orderNumber} ${tinyOrderId} => ${situacao}`);
30
- const documentRef = getFirestore().doc(`tinyErpOrders/${tinyOrderId}`);
31
- const documentSnapshot = await documentRef.get();
32
- if (documentSnapshot.exists
33
- && documentSnapshot.get('situacao') === situacao) {
34
- logger.info(`>> Ignoring Tiny order n${orderNumber} ${tinyOrderId} with same status`);
35
- return null;
36
- }
37
- let listEndpoint = 'orders?limit=1&fields=_id,payments_history,fulfillments,shipping_lines';
38
- if (orderNumber) {
39
- listEndpoint += `&number=${orderNumber}`;
40
- } else {
41
- listEndpoint += `&hidden_metafields.value=${tinyOrderId}_tiny`;
42
- }
43
- const { data: { result } } = await api.get(listEndpoint);
44
- if (!result.length) {
45
- return null;
46
- }
47
- const order = result[0];
48
- const partialOrder = await parseOrder(pedido, order.shipping_lines);
49
- const promises = [];
50
- if (partialOrder && Object.keys(partialOrder).length) {
51
- promises.push(api.patch(`orders/${order._id}`, partialOrder));
52
- }
53
- const { fulfillmentStatus, financialStatus } = parseStatus(situacao);
54
- const data = {
55
- date_time: new Date().toISOString(),
56
- flags: ['from-tiny'],
57
- };
58
- [
59
- [financialStatus, 'payments_history'],
60
- [fulfillmentStatus, 'fulfillments'],
61
- ].forEach(([newStatus, subresource]) => {
62
- if (newStatus
63
- // @ts-ignore
64
- && (!order[subresource] || getLastStatus(order[subresource]) !== newStatus)) {
65
- data.status = newStatus;
66
- promises.push(api.post(`orders/${order._id}/${subresource}`, data));
67
- logger.info(`${order._id} updated to ${newStatus} from Tiny ${tinyOrderId}`);
68
- }
69
- });
70
- return Promise.all(promises)
71
- .then(([firstResult]) => {
72
- documentRef.set({ situacao }).catch(logger.error);
73
- return (firstResult && firstResult.response) || firstResult;
74
- });
75
- };
76
- const tinyOrderNumber = queueEntry.nextId;
77
- if (typeof tinyOrderNumber === 'string' && tinyOrderNumber.startsWith('id:')) {
78
- return getTinyOrder(tinyOrderNumber.substring(3));
79
- }
80
- return postTiny('/pedidos.pesquisa.php', {
81
- numero: tinyOrderNumber,
82
- }).then(({ pedidos }) => {
83
- const tinyOrder = pedidos.find(({ pedido }) => {
84
- return Number(tinyOrderNumber) === Number(pedido.numero);
85
- });
86
- if (tinyOrder) {
87
- return getTinyOrder(tinyOrder.pedido.id);
88
- }
89
- return null;
90
- });
91
- };
92
- // # sourceMappingURL=import-order-from-tiny.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-order-from-tiny.js","sourceRoot":"","sources":["../../src/integration/import-order-from-tiny.ts"],"names":[],"mappings":"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"}