@cloudcommerce/app-melhor-envio 0.14.0 → 0.15.0

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,4 +1,4 @@
1
1
 
2
- > @cloudcommerce/app-melhor-envio@0.12.1 build /home/leo/code/ecomplus/cloud-commerce/packages/apps/melhor-envio
2
+ > @cloudcommerce/app-melhor-envio@0.14.1 build /home/leo/code/ecomplus/cloud-commerce/packages/apps/melhor-envio
3
3
  > bash ../../../scripts/build-lib.sh
4
4
 
@@ -24,37 +24,41 @@ const handleApiEvent = async ({
24
24
  try {
25
25
  const trackingCode = await db.searchLabel(resourceId);
26
26
  if (!trackingCode) {
27
- const accessToken = appData.access_token;
28
- const { sandbox } = appData;
29
- if (!accessToken) {
30
- ECHO_SKIP('>> Melhor Envio token not found');
31
- return null;
27
+ if (!process.env.MELHORENVIO_TOKEN) {
28
+ const melhorEnvioToken = appData.access_token;
29
+ if (typeof melhorEnvioToken === 'string' && melhorEnvioToken) {
30
+ process.env.MELHORENVIO_TOKEN = melhorEnvioToken;
31
+ } else {
32
+ logger.warn('Missing Melhor Envio token');
33
+ return null;
34
+ }
32
35
  }
36
+ const { sandbox } = appData;
33
37
  const order = apiDoc;
34
38
  if (!appData.enabled_label_purchase || !orderIsValid(order, appData)) {
35
39
  ECHO_SKIP();
36
40
  return null;
37
41
  }
38
- const merchantData = await meClient(accessToken, sandbox).get('/')
42
+ const merchantData = await meClient(process.env.MELHORENVIO_TOKEN, sandbox).get('/')
39
43
  .then(({ data }) => data);
40
44
  const label = newLabel(order, appData, merchantData);
41
45
  // logger.log(`>> Comprando etiquetas #${storeId} ${order._id}`);
42
- const { data } = await meClient(accessToken, sandbox).post('/cart', label);
46
+ const { data } = await meClient(process.env.MELHORENVIO_TOKEN, sandbox).post('/cart', label);
43
47
  if (data) {
44
48
  logger.log(`>> Etiqueta inserida no carrinho com sucesso #${data.id}`);
45
49
  if (appData.enabled_label_checkout) {
46
- await meClient(accessToken, sandbox).post('/shipment/checkout', { orders: [data.id] });
50
+ await meClient(process.env.MELHORENVIO_TOKEN, sandbox).post('/shipment/checkout', { orders: [data.id] });
47
51
  }
48
52
  // logger.log(`>> Carrinho finalizado com sucesso #${data.id}`);
49
53
  await db.saveLabel(data.id, data.status, resourceId);
50
54
  // logger.log(`>> Etiquetas salvas no db para futuros rastreio #${storeId} ${resourceId}`);
51
55
  // updates hidden_metafields with the generated tag id
52
- const bodyHiddenMetaField = {
56
+ // TODO: set type for partial body in post method
57
+ await api.post(`orders/${resourceId}/hidden_metafields`, {
53
58
  namespace: 'app-melhor-envio',
54
59
  field: metafieldName,
55
60
  value: data.id,
56
- }; // TODO: type amount
57
- await api.post(`orders/${resourceId}/hidden_metafields`, bodyHiddenMetaField);
61
+ });
58
62
  if (typeof data.tracking === 'string' && data.tracking.length) {
59
63
  let shippingLine = order.shipping_lines?.find(({ app: application }) => application
60
64
  && application.service_code && application.service_code.startsWith('ME'));
@@ -82,12 +86,12 @@ const handleApiEvent = async ({
82
86
  const { data } = err.response;
83
87
  if (data) {
84
88
  // update order hidden_metafields
85
- const bodyHiddenMetaField = {
89
+ // TODO: set type for partial body in post method
90
+ await api.post(`orders/${resourceId}/hidden_metafields`, {
86
91
  namespace: 'app-melhor-envio',
87
92
  field: 'melhor_envio_label_error',
88
93
  value: JSON.stringify(data).substring(0, 255),
89
- };
90
- await api.post(`orders/${resourceId}/hidden_metafields`, bodyHiddenMetaField);
94
+ });
91
95
  if (data.error
92
96
  === 'Os documentos (CPFs) dos participantes do frete não podem ser iguais'
93
97
  || data.error.startsWith('Seu saldo de R$ ')) {
@@ -1 +1 @@
1
- {"version":3,"file":"events-to-melhor-envio.js","sourceRoot":"","sources":["../../src/functions-lib/events-to-melhor-envio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events-to-melhor-envio.js","sourceRoot":"","sources":["../../src/functions-lib/events-to-melhor-envio.ts"],"names":[],"mappings":"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"}
@@ -10,17 +10,23 @@ export default async ({ params, application }) => {
10
10
  ...application.hidden_data,
11
11
  };
12
12
 
13
- if (!appData.access_token) {
14
- // no Melhor Envio access_token
15
- return {
16
- status: 409,
17
- error: 'CALCULATE_SHIPPING_DISABLED',
18
- message: 'Melhor Envio Token is unset on app hidden data',
19
- };
13
+ if (!process.env.MELHORENVIO_TOKEN) {
14
+ const melhorEnvioToken = appData.access_token;
15
+ if (typeof melhorEnvioToken === 'string' && melhorEnvioToken) {
16
+ process.env.MELHORENVIO_TOKEN = melhorEnvioToken;
17
+ } else {
18
+ logger.warn('Missing Melhor Envio token');
19
+ return {
20
+ status: 409,
21
+ error: 'CALCULATE_SHIPPING_DISABLED',
22
+ message: 'Melhor Envio Token is unset',
23
+ };
24
+ }
20
25
  }
26
+
21
27
  if (
22
28
  appData.skip_no_weight_item
23
- && params.items && params.items.find(({ weight }) => weight && !weight.value)
29
+ && params.items && params.items.find(({ weight }) => weight && !weight.value)
24
30
  ) {
25
31
  return {
26
32
  status: 409,
@@ -76,12 +82,11 @@ export default async ({ params, application }) => {
76
82
 
77
83
  if (params.items) {
78
84
  const intZipCode = parseInt(params.to.zip.replace(/\D/g, ''), 10);
79
- const token = appData.access_token;
80
85
  const { sandbox } = appData;
81
86
 
82
87
  if (!appData.merchant_address) {
83
88
  // get merchant_address
84
- const { data } = await meClient(token, sandbox).get('/');
89
+ const { data } = await meClient(process.env.MELHORENVIO_TOKEN, sandbox).get('/');
85
90
  const merchantAddress = data.address;
86
91
 
87
92
  // update config.merchant_address
@@ -112,7 +117,8 @@ export default async ({ params, application }) => {
112
117
 
113
118
  // calculate the shipment
114
119
  try {
115
- const data = await meClient(token, sandbox).post('/shipment/calculate', schema);
120
+ const data = await meClient(process.env.MELHORENVIO_TOKEN, sandbox)
121
+ .post('/shipment/calculate', schema);
116
122
 
117
123
  let errorMsg;
118
124
  data.forEach((service) => {
@@ -167,7 +173,7 @@ export default async ({ params, application }) => {
167
173
  };
168
174
 
169
175
  const servicePkg = (service.packages && service.packages[0])
170
- || (service.volumes && service.volumes[0]);
176
+ || (service.volumes && service.volumes[0]);
171
177
 
172
178
  if (servicePkg) {
173
179
  shippingLine.package = {};
@@ -273,15 +279,15 @@ export default async ({ params, application }) => {
273
279
  }
274
280
 
275
281
  return (!Array.isArray(response.shipping_services) || !response.shipping_services.length)
276
- && errorMsg ? {
282
+ && errorMsg
283
+ ? {
277
284
  status: 400,
278
285
  error: 'CALCULATE_ERR_MSG',
279
286
  message: errorMsg,
280
287
  }
281
- // success response with available shipping services
288
+ // success response with available shipping services
282
289
  : response;
283
290
  } catch (err) {
284
- //
285
291
  let message = 'Unexpected Error Try Later';
286
292
  if (err.response && err.isAxiosError) {
287
293
  const { data, status, config } = err.response;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-melhor-envio",
3
3
  "type": "module",
4
- "version": "0.14.0",
4
+ "version": "0.15.0",
5
5
  "description": "E-Com Plus Cloud Commerce app to integrate Melhor Envio",
6
6
  "main": "lib/index.js",
7
7
  "exports": {
@@ -21,14 +21,14 @@
21
21
  "homepage": "https://github.com/ecomplus/cloud-commerce/tree/main/packages/apps/melhor-envio#readme",
22
22
  "dependencies": {
23
23
  "axios": "^1.4.0",
24
- "firebase-admin": "^11.8.0",
25
- "firebase-functions": "^4.4.0",
26
- "@cloudcommerce/api": "0.14.0",
27
- "@cloudcommerce/firebase": "0.14.0"
24
+ "firebase-admin": "^11.9.0",
25
+ "firebase-functions": "^4.4.1",
26
+ "@cloudcommerce/api": "0.15.0",
27
+ "@cloudcommerce/firebase": "0.15.0"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@firebase/app-types": "^0.9.0",
31
- "@cloudcommerce/types": "0.14.0"
31
+ "@cloudcommerce/types": "0.15.0"
32
32
  },
33
33
  "scripts": {
34
34
  "build": "bash ../../../scripts/build-lib.sh"
@@ -1,4 +1,4 @@
1
- import type { Orders } from '@cloudcommerce/types';
1
+ import type { Orders, ResourceId, ResourceAndId } from '@cloudcommerce/api/types';
2
2
  import logger from 'firebase-functions/logger';
3
3
  import api from '@cloudcommerce/api';
4
4
  import meClient from '../../lib-mjs/functions/client-melhor-envio.mjs';
@@ -17,7 +17,7 @@ const handleApiEvent = async ({
17
17
  apiDoc,
18
18
  app,
19
19
  }) => {
20
- const resourceId = apiEvent.resource_id;
20
+ const resourceId = apiEvent.resource_id as ResourceId;
21
21
  logger.info('>> ', resourceId, ' - Action: ', apiEvent.action);
22
22
  const key = `${evName}_${resourceId}`;
23
23
  const appData = { ...app.data, ...app.hidden_data };
@@ -33,28 +33,33 @@ const handleApiEvent = async ({
33
33
  try {
34
34
  const trackingCode = await db.searchLabel(resourceId);
35
35
  if (!trackingCode) {
36
- const accessToken = appData.access_token;
37
- const { sandbox } = appData;
38
- if (!accessToken) {
39
- ECHO_SKIP('>> Melhor Envio token not found');
40
- return null;
36
+ if (!process.env.MELHORENVIO_TOKEN) {
37
+ const melhorEnvioToken = appData.access_token;
38
+ if (typeof melhorEnvioToken === 'string' && melhorEnvioToken) {
39
+ process.env.MELHORENVIO_TOKEN = melhorEnvioToken;
40
+ } else {
41
+ logger.warn('Missing Melhor Envio token');
42
+ return null;
43
+ }
41
44
  }
42
45
 
46
+ const { sandbox } = appData;
47
+
43
48
  const order = apiDoc as Orders;
44
49
  if (!appData.enabled_label_purchase || !orderIsValid(order, appData)) {
45
50
  ECHO_SKIP();
46
51
  return null;
47
52
  }
48
- const merchantData = await meClient(accessToken, sandbox).get('/')
53
+ const merchantData = await meClient(process.env.MELHORENVIO_TOKEN, sandbox).get('/')
49
54
  .then(({ data }) => data);
50
55
 
51
56
  const label = newLabel(order, appData, merchantData);
52
57
  // logger.log(`>> Comprando etiquetas #${storeId} ${order._id}`);
53
- const { data } = await meClient(accessToken, sandbox).post('/cart', label);
58
+ const { data } = await meClient(process.env.MELHORENVIO_TOKEN, sandbox).post('/cart', label);
54
59
  if (data) {
55
60
  logger.log(`>> Etiqueta inserida no carrinho com sucesso #${data.id}`);
56
61
  if (appData.enabled_label_checkout) {
57
- await meClient(accessToken, sandbox).post('/shipment/checkout', { orders: [data.id] });
62
+ await meClient(process.env.MELHORENVIO_TOKEN, sandbox).post('/shipment/checkout', { orders: [data.id] });
58
63
  }
59
64
 
60
65
  // logger.log(`>> Carrinho finalizado com sucesso #${data.id}`);
@@ -62,12 +67,16 @@ const handleApiEvent = async ({
62
67
 
63
68
  // logger.log(`>> Etiquetas salvas no db para futuros rastreio #${storeId} ${resourceId}`);
64
69
  // updates hidden_metafields with the generated tag id
65
- const bodyHiddenMetaField = {
66
- namespace: 'app-melhor-envio',
67
- field: metafieldName,
68
- value: data.id,
69
- } as any; // TODO: type amount
70
- await api.post(`orders/${resourceId}/hidden_metafields`, bodyHiddenMetaField);
70
+
71
+ // TODO: set type for partial body in post method
72
+ await api.post(
73
+ `orders/${resourceId}/hidden_metafields` as `${ResourceAndId}/string`,
74
+ {
75
+ namespace: 'app-melhor-envio',
76
+ field: metafieldName,
77
+ value: data.id,
78
+ },
79
+ );
71
80
 
72
81
  if (typeof data.tracking === 'string' && data.tracking.length) {
73
82
  let shippingLine = order.shipping_lines?.find(({ app: application }) => application
@@ -103,13 +112,16 @@ const handleApiEvent = async ({
103
112
 
104
113
  if (data) {
105
114
  // update order hidden_metafields
106
- const bodyHiddenMetaField = {
107
- namespace: 'app-melhor-envio',
108
- field: 'melhor_envio_label_error',
109
- value: JSON.stringify(data).substring(0, 255),
110
- } as any;
111
115
 
112
- await api.post(`orders/${resourceId}/hidden_metafields`, bodyHiddenMetaField);
116
+ // TODO: set type for partial body in post method
117
+ await api.post(
118
+ `orders/${resourceId}/hidden_metafields` as `${ResourceAndId}/string`,
119
+ {
120
+ namespace: 'app-melhor-envio',
121
+ field: 'melhor_envio_label_error',
122
+ value: JSON.stringify(data).substring(0, 255),
123
+ },
124
+ );
113
125
 
114
126
  if (
115
127
  data.error