cloudcommerce 0.1.0 → 0.1.1
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.
- package/CHANGELOG.md +12 -0
- package/ecomplus-stores/monocard/.vscode/settings.json +5 -1
- package/ecomplus-stores/monocard/functions/core/package.json +1 -1
- package/ecomplus-stores/monocard/functions/events/package.json +2 -2
- package/ecomplus-stores/monocard/functions/modules/package.json +2 -2
- package/ecomplus-stores/monocard/functions/passport/package.json +2 -2
- package/ecomplus-stores/monocard/functions/ssr/package.json +15 -11
- package/ecomplus-stores/monocard/functions/ssr/src/pages/_vue.ts +3 -0
- package/ecomplus-stores/monocard/package.json +1 -1
- package/ecomplus-stores/tia-sonia/.firebaserc +5 -0
- package/ecomplus-stores/tia-sonia/.vscode/settings.json +5 -1
- package/ecomplus-stores/tia-sonia/functions/config.json +2 -2
- package/ecomplus-stores/tia-sonia/functions/core/package.json +1 -1
- package/ecomplus-stores/tia-sonia/functions/events/package.json +2 -2
- package/ecomplus-stores/tia-sonia/functions/modules/package.json +2 -2
- package/ecomplus-stores/tia-sonia/functions/passport/package.json +2 -2
- package/ecomplus-stores/tia-sonia/functions/ssr/package.json +15 -7
- package/ecomplus-stores/tia-sonia/functions/ssr/src/pages/_vue.ts +3 -0
- package/ecomplus-stores/tia-sonia/functions/ssr/src/scripts/InlineScripts.astro +6 -7
- package/ecomplus-stores/tia-sonia/package.json +1 -1
- package/package.json +1 -1
- package/packages/api/package.json +1 -1
- package/packages/apps/correios/package.json +1 -1
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/emails/package.json +1 -1
- package/packages/apps/frenet/package.json +1 -1
- package/packages/apps/galaxpay/package.json +1 -1
- package/packages/apps/infinitepay/package.json +1 -1
- package/packages/apps/jadlog/package.json +1 -1
- package/packages/apps/loyalty-points/CHANGELOG.md +1 -0
- package/packages/apps/loyalty-points/README.md +1 -0
- package/packages/apps/loyalty-points/events.js +1 -0
- package/packages/apps/loyalty-points/lib/functions-lib/get-program-id.d.ts +5 -0
- package/packages/apps/loyalty-points/lib/functions-lib/get-program-id.js +20 -0
- package/packages/apps/loyalty-points/lib/functions-lib/get-program-id.js.map +1 -0
- package/packages/apps/loyalty-points/lib/functions-lib/handle-loyalty-points-event.d.ts +3 -0
- package/packages/apps/loyalty-points/lib/functions-lib/handle-loyalty-points-event.js +172 -0
- package/packages/apps/loyalty-points/lib/functions-lib/handle-loyalty-points-event.js.map +1 -0
- package/packages/apps/loyalty-points/lib/index.d.ts +1 -0
- package/packages/apps/loyalty-points/lib/index.js +2 -0
- package/packages/apps/loyalty-points/lib/index.js.map +1 -0
- package/packages/apps/loyalty-points/lib/loyalty-create-transaction.d.ts +76 -0
- package/packages/apps/loyalty-points/lib/loyalty-create-transaction.js +210 -0
- package/packages/apps/loyalty-points/lib/loyalty-create-transaction.js.map +1 -0
- package/packages/apps/loyalty-points/lib/loyalty-list-payments.d.ts +3 -0
- package/packages/apps/loyalty-points/lib/loyalty-list-payments.js +44 -0
- package/packages/apps/loyalty-points/lib/loyalty-list-payments.js.map +1 -0
- package/packages/apps/loyalty-points/lib/loyalty-points-events.d.ts +4 -0
- package/packages/apps/loyalty-points/lib/loyalty-points-events.js +28 -0
- package/packages/apps/loyalty-points/lib/loyalty-points-events.js.map +1 -0
- package/packages/apps/loyalty-points/lib/loyalty-points.d.ts +77 -0
- package/packages/apps/loyalty-points/lib/loyalty-points.js +12 -0
- package/packages/apps/loyalty-points/lib/loyalty-points.js.map +1 -0
- package/packages/apps/loyalty-points/package.json +32 -0
- package/packages/apps/loyalty-points/src/functions-lib/get-program-id.ts +23 -0
- package/packages/apps/loyalty-points/src/functions-lib/handle-loyalty-points-event.ts +207 -0
- package/packages/apps/loyalty-points/src/index.ts +1 -0
- package/packages/apps/loyalty-points/src/loyalty-create-transaction.ts +241 -0
- package/packages/apps/loyalty-points/src/loyalty-list-payments.ts +55 -0
- package/packages/apps/loyalty-points/src/loyalty-points-events.ts +41 -0
- package/packages/apps/loyalty-points/src/loyalty-points.ts +12 -0
- package/packages/apps/loyalty-points/tsconfig.json +6 -0
- package/packages/apps/mercadopago/package.json +1 -1
- package/packages/apps/pagarme/package.json +1 -1
- package/packages/apps/pix/package.json +1 -1
- package/packages/apps/tiny-erp/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/config/package.json +1 -1
- package/packages/emails/package.json +1 -1
- package/packages/events/lib/firebase.js +2 -0
- package/packages/events/lib/firebase.js.map +1 -1
- package/packages/events/package.json +2 -1
- package/packages/events/src/firebase.ts +2 -0
- package/packages/firebase/lib/config.d.ts +4 -0
- package/packages/firebase/lib/config.js +8 -0
- package/packages/firebase/lib/config.js.map +1 -1
- package/packages/firebase/package.json +1 -1
- package/packages/firebase/src/config.ts +9 -0
- package/packages/i18n/package.json +1 -1
- package/packages/modules/lib/firebase/call-app-module.js +12 -0
- package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
- package/packages/modules/package.json +2 -1
- package/packages/modules/src/firebase/call-app-module.ts +12 -0
- package/packages/passport/package.json +1 -1
- package/packages/ssr/package.json +1 -1
- package/packages/storefront/dist/client/HeaderButtons.8acf8a3b.js +1 -0
- package/packages/storefront/dist/client/Prices.9099fe99.js +1 -0
- package/packages/storefront/dist/client/{ProductCard.f477b7a1.js → ProductCard.7b68cc35.js} +1 -1
- package/packages/storefront/dist/client/assets/{_...slug_.15766f41.css → _...slug_.f19a16ca.css} +1 -1
- package/packages/storefront/dist/client/assets/server.55b8d73d.css +1 -0
- package/packages/storefront/dist/client/chunks/{HeaderButtons.27ab2180.js → HeaderButtons.cbbb059d.js} +1 -1
- package/packages/storefront/dist/client/chunks/{LoginForm.36774236.js → LoginForm.ac2f1b1f.js} +1 -1
- package/packages/storefront/dist/client/chunks/{Prices.vue_vue_type_script_setup_true_lang.522e4ac4.js → Prices.vue_vue_type_script_setup_true_lang.c37148c1.js} +1 -1
- package/packages/storefront/dist/client/chunks/{_plugin-vue_export-helper.979dc9e3.js → _plugin-vue_export-helper.5ccc5d75.js} +1 -1
- package/packages/storefront/dist/client/chunks/{runtime-core.esm-bundler.6c012e5d.js → runtime-core.esm-bundler.d5646b29.js} +1 -1
- package/packages/storefront/dist/client/client.9783ef49.js +1 -0
- package/packages/storefront/dist/client/sw.js +1 -1
- package/packages/storefront/dist/server/entry.mjs +1544 -28
- package/packages/storefront/package.json +1 -1
- package/packages/storefront/src/lib/pages/_vue.ts +1 -1
- package/packages/types/package.json +1 -1
- package/packages/storefront/dist/client/HeaderButtons.f1c92fd8.js +0 -1
- package/packages/storefront/dist/client/Prices.795d082c.js +0 -1
- package/packages/storefront/dist/client/assets/server.4d9646d8.css +0 -1
- package/packages/storefront/dist/client/client.8b4e336b.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
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.1.1](https://github.com/ecomplus/cloud-commerce/compare/v0.1.0...v0.1.1) (2022-12-22)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **loyalty-points:** Setup loyalty points payment app from https://github.com/ecomplus/app-loyalty-points ([#92](https://github.com/ecomplus/cloud-commerce/issues/92)) ([f796092](https://github.com/ecomplus/cloud-commerce/commit/f796092efb52a22a10fb1f30e579fbc8b667097b))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **storefront:** Import `VTooltip` TS src (to be compiled) to prevent ESM error ([22a84f5](https://github.com/ecomplus/cloud-commerce/commit/22a84f5bbd8d548e505dfe52a7d2d9d0207fa9ba))
|
|
16
|
+
|
|
5
17
|
## [0.1.0](https://github.com/ecomplus/cloud-commerce/compare/v0.0.133...v0.1.0) (2022-12-21)
|
|
6
18
|
|
|
7
19
|
|
|
@@ -17,18 +17,22 @@
|
|
|
17
17
|
},
|
|
18
18
|
"main": "index.js",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@astrojs/image": "^0.
|
|
21
|
-
"@astrojs/node": "^
|
|
22
|
-
"@cloudcommerce/api": "^0.0
|
|
23
|
-
"@cloudcommerce/firebase": "^0.0
|
|
24
|
-
"@cloudcommerce/ssr": "^0.0
|
|
20
|
+
"@astrojs/image": "^0.12.1",
|
|
21
|
+
"@astrojs/node": "^4.0.0",
|
|
22
|
+
"@cloudcommerce/api": "^0.1.0",
|
|
23
|
+
"@cloudcommerce/firebase": "^0.1.0",
|
|
24
|
+
"@cloudcommerce/ssr": "^0.1.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@cloudcommerce/i18n": "^0.0
|
|
28
|
-
"@cloudcommerce/storefront": "^0.0
|
|
29
|
-
"@
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
27
|
+
"@cloudcommerce/i18n": "^0.1.0",
|
|
28
|
+
"@cloudcommerce/storefront": "^0.1.0",
|
|
29
|
+
"@cloudcommerce/types": "^0.1.0"
|
|
30
|
+
},
|
|
31
|
+
"pnpm": {
|
|
32
|
+
"peerDependencyRules": {
|
|
33
|
+
"ignoreMissing": [
|
|
34
|
+
"astro"
|
|
35
|
+
]
|
|
36
|
+
}
|
|
33
37
|
}
|
|
34
38
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
}
|
|
2
|
+
"storeId": 1024
|
|
3
|
+
}
|
|
@@ -17,14 +17,22 @@
|
|
|
17
17
|
},
|
|
18
18
|
"main": "index.js",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@astrojs/image": "^0.
|
|
21
|
-
"@astrojs/node": "^
|
|
22
|
-
"@cloudcommerce/api": "^0.0
|
|
23
|
-
"@cloudcommerce/firebase": "^0.0
|
|
24
|
-
"@cloudcommerce/ssr": "^0.0
|
|
20
|
+
"@astrojs/image": "^0.12.1",
|
|
21
|
+
"@astrojs/node": "^4.0.0",
|
|
22
|
+
"@cloudcommerce/api": "^0.1.0",
|
|
23
|
+
"@cloudcommerce/firebase": "^0.1.0",
|
|
24
|
+
"@cloudcommerce/ssr": "^0.1.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@cloudcommerce/i18n": "^0.0
|
|
28
|
-
"@cloudcommerce/storefront": "^0.0
|
|
27
|
+
"@cloudcommerce/i18n": "^0.1.0",
|
|
28
|
+
"@cloudcommerce/storefront": "^0.1.0",
|
|
29
|
+
"@cloudcommerce/types": "^0.1.0"
|
|
30
|
+
},
|
|
31
|
+
"pnpm": {
|
|
32
|
+
"peerDependencyRules": {
|
|
33
|
+
"ignoreMissing": [
|
|
34
|
+
"astro"
|
|
35
|
+
]
|
|
36
|
+
}
|
|
29
37
|
}
|
|
30
38
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
<script is:inline>
|
|
2
2
|
window.firebaseConfig = {
|
|
3
|
-
apiKey:
|
|
4
|
-
authDomain:
|
|
5
|
-
projectId:
|
|
6
|
-
storageBucket:
|
|
7
|
-
messagingSenderId:
|
|
8
|
-
appId:
|
|
9
|
-
measurementId: 'G-SC592CE0GB',
|
|
3
|
+
apiKey: "AIzaSyDZ5QPJaLZM1bxEJyGbyK1weoBZ1TiLgFc",
|
|
4
|
+
authDomain: "ecom2-tiasonia.firebaseapp.com",
|
|
5
|
+
projectId: "ecom2-tiasonia",
|
|
6
|
+
storageBucket: "ecom2-tiasonia.appspot.com",
|
|
7
|
+
messagingSenderId: "895718193792",
|
|
8
|
+
appId: "1:895718193792:web:1d4fd74466248202994465"
|
|
10
9
|
};
|
|
11
10
|
</script>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloudcommerce",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.1",
|
|
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>",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Please refer to GitHub [repository releases](https://github.com/ecomplus/cloud-commerce/releases) or monorepo unified [CHANGELOG.md](https://github.com/ecomplus/cloud-commerce/blob/main/CHANGELOG.md).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# `@cloudcommerce/app-loyalty-points`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib/loyalty-points-events';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export default (programRule, index) => {
|
|
2
|
+
let programId = `lpt__${index}`;
|
|
3
|
+
if (programRule.program_id) {
|
|
4
|
+
programId = programRule.program_id;
|
|
5
|
+
} else if (programRule.name && typeof programRule.name === 'string') {
|
|
6
|
+
programId = (`p0_${programRule.name.toLowerCase()}`)
|
|
7
|
+
.replace(/\n\s/g, '_')
|
|
8
|
+
.replace(/__/g, '_')
|
|
9
|
+
.replace(/áàãâ/g, 'a')
|
|
10
|
+
.replace(/éê/g, 'e')
|
|
11
|
+
.replace(/óõô/g, 'o')
|
|
12
|
+
.replace(/í/g, 'e')
|
|
13
|
+
.replace(/ú/g, 'u')
|
|
14
|
+
.replace(/ç/g, 'c')
|
|
15
|
+
.replace(/[^a-z0-9_]/g, '')
|
|
16
|
+
.substring(0, 30);
|
|
17
|
+
}
|
|
18
|
+
return programId;
|
|
19
|
+
};
|
|
20
|
+
// # sourceMappingURL=get-program-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-program-id.js","sourceRoot":"","sources":["../../src/functions-lib/get-program-id.ts"],"names":[],"mappings":"AAAA,eAAe,CACb,WAAkD,EAClD,KAAa,EACb,EAAE;IACF,IAAI,SAAS,GAAG,QAAQ,KAAK,EAAE,CAAC;IAChC,IAAI,WAAW,CAAC,UAAU,EAAE;QAC1B,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC;KACpC;SAAM,IAAI,WAAW,CAAC,IAAI,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;QACnE,SAAS,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;aACjD,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aAClB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;aAC1B,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KACrB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import api from '@cloudcommerce/api';
|
|
2
|
+
import { getFirestore } from 'firebase-admin/firestore';
|
|
3
|
+
import logger from 'firebase-functions/logger';
|
|
4
|
+
import getProgramId from './get-program-id.js';
|
|
5
|
+
|
|
6
|
+
const ECHO_SUCCESS = 'SUCCESS';
|
|
7
|
+
const ECHO_SKIP = 'SKIP';
|
|
8
|
+
const responsePubSub = (response) => {
|
|
9
|
+
logger.log('(App: Loyalty Points): ', response);
|
|
10
|
+
return null;
|
|
11
|
+
};
|
|
12
|
+
const haveEarnedPoints = (pointsList, orderId) => {
|
|
13
|
+
if (pointsList) {
|
|
14
|
+
let hasEarned = false;
|
|
15
|
+
for (let i = 0; i < pointsList.length; i++) {
|
|
16
|
+
const point = pointsList[i];
|
|
17
|
+
if (point.order_id === orderId) {
|
|
18
|
+
hasEarned = true;
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return hasEarned;
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
};
|
|
26
|
+
const findPointIndex = (pointsList, pointEntry) => {
|
|
27
|
+
if (pointsList) {
|
|
28
|
+
for (let i = 0; i < pointsList.length; i++) {
|
|
29
|
+
const point = pointsList[i];
|
|
30
|
+
if (point.name === pointEntry.name) {
|
|
31
|
+
return i;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
};
|
|
37
|
+
const handleLoyaltyPointsEvent = async (order, programRules) => {
|
|
38
|
+
const orderId = order._id;
|
|
39
|
+
const currentStatus = order.financial_status && order.financial_status.current;
|
|
40
|
+
let isPaid = false;
|
|
41
|
+
let isCancelled = false;
|
|
42
|
+
switch (currentStatus) {
|
|
43
|
+
case 'paid':
|
|
44
|
+
isPaid = true;
|
|
45
|
+
break;
|
|
46
|
+
case 'unauthorized':
|
|
47
|
+
case 'partially_refunded':
|
|
48
|
+
case 'refunded':
|
|
49
|
+
case 'voided':
|
|
50
|
+
isCancelled = true;
|
|
51
|
+
break;
|
|
52
|
+
case 'partially_paid':
|
|
53
|
+
if (order.transactions) {
|
|
54
|
+
order.transactions.forEach((transaction) => {
|
|
55
|
+
if (transaction.payment_method.code !== 'loyalty_points' && transaction.status) {
|
|
56
|
+
switch (transaction.status.current) {
|
|
57
|
+
case 'unauthorized':
|
|
58
|
+
case 'refunded':
|
|
59
|
+
case 'voided':
|
|
60
|
+
isCancelled = true;
|
|
61
|
+
break;
|
|
62
|
+
default:
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
break;
|
|
69
|
+
default:
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
if (isPaid || isCancelled) {
|
|
74
|
+
// get app configured options
|
|
75
|
+
const { amount, buyers } = order;
|
|
76
|
+
const customerId = buyers && buyers[0] && buyers[0]._id;
|
|
77
|
+
if (customerId) {
|
|
78
|
+
const pointsList = (await api.get(`customers/${customerId}/loyalty_points_entries`)).data;
|
|
79
|
+
if (pointsList) {
|
|
80
|
+
const hasEarnedPoints = haveEarnedPoints(pointsList, orderId);
|
|
81
|
+
if (isPaid && !hasEarnedPoints) {
|
|
82
|
+
for (let i = 0; i < programRules.length; i++) {
|
|
83
|
+
const rule = programRules[i];
|
|
84
|
+
if (amount.subtotal) {
|
|
85
|
+
if (!rule.min_subtotal_to_earn || rule.min_subtotal_to_earn <= amount.subtotal) {
|
|
86
|
+
const pointsValue = ((rule.earn_percentage || 1) / 100)
|
|
87
|
+
* (amount.subtotal - (amount.discount || 0));
|
|
88
|
+
let validThru;
|
|
89
|
+
if (rule.expiration_days > 0) {
|
|
90
|
+
const d = new Date();
|
|
91
|
+
d.setDate(d.getDate() + rule.expiration_days);
|
|
92
|
+
validThru = d.toISOString();
|
|
93
|
+
}
|
|
94
|
+
const data = {
|
|
95
|
+
name: rule.name,
|
|
96
|
+
program_id: getProgramId(rule, i),
|
|
97
|
+
earned_points: pointsValue,
|
|
98
|
+
active_points: pointsValue,
|
|
99
|
+
ratio: rule.ratio || 1,
|
|
100
|
+
valid_thru: validThru,
|
|
101
|
+
order_id: orderId,
|
|
102
|
+
}; // TODO: set the correct type
|
|
103
|
+
// eslint-disable-next-line no-await-in-loop
|
|
104
|
+
await api.post(`customers/${customerId}/loyalty_points_entries`, data);
|
|
105
|
+
return responsePubSub(ECHO_SUCCESS);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (isCancelled && hasEarnedPoints) {
|
|
111
|
+
for (let i = 0; i < pointsList.length; i++) {
|
|
112
|
+
if (pointsList[i].order_id === orderId) {
|
|
113
|
+
// eslint-disable-next-line no-await-in-loop
|
|
114
|
+
await api.delete(`customers/${customerId}/loyalty_points_entries/${i}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return responsePubSub(ECHO_SUCCESS);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (isCancelled) {
|
|
121
|
+
const documentRef = getFirestore().doc(`billedPoints/${orderId}`);
|
|
122
|
+
const documentSnapshot = await documentRef.get();
|
|
123
|
+
if (documentSnapshot.exists) {
|
|
124
|
+
const usedPointsEntries = documentSnapshot.get('usedPointsEntries');
|
|
125
|
+
documentRef.delete();
|
|
126
|
+
if (Array.isArray(usedPointsEntries)) {
|
|
127
|
+
for (let i = 0; i < usedPointsEntries.length; i++) {
|
|
128
|
+
const pointsEntry = usedPointsEntries[i];
|
|
129
|
+
const pointsToRefund = pointsEntry.original_active_points
|
|
130
|
+
- pointsEntry.active_points;
|
|
131
|
+
if (pointsToRefund > 0) {
|
|
132
|
+
const pointIndex = findPointIndex(pointsList, pointsEntry);
|
|
133
|
+
if (pointIndex && pointsList) {
|
|
134
|
+
const activePoints = pointsList[pointIndex].active_points;
|
|
135
|
+
const body = {
|
|
136
|
+
active_points: activePoints + pointsToRefund,
|
|
137
|
+
};
|
|
138
|
+
// eslint-disable-next-line no-await-in-loop
|
|
139
|
+
await api.patch(`customers/${customerId}/loyalty_points_entries/${pointIndex}`, body);
|
|
140
|
+
return responsePubSub(ECHO_SUCCESS);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const transaction = order.transactions
|
|
145
|
+
&& order.transactions.find((transactionFound) => {
|
|
146
|
+
return transactionFound.payment_method.code === 'loyalty_points';
|
|
147
|
+
});
|
|
148
|
+
if (transaction) {
|
|
149
|
+
const bodyPaymentHistory = {
|
|
150
|
+
transaction_id: transaction._id,
|
|
151
|
+
date_time: new Date().toISOString(),
|
|
152
|
+
status: currentStatus?.startsWith('partially') ? 'refunded' : currentStatus,
|
|
153
|
+
customer_notified: true,
|
|
154
|
+
}; // TODO: incompatible type=> amount and status
|
|
155
|
+
await api.post(`orders/${orderId}/payments_history`, bodyPaymentHistory);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return responsePubSub('');
|
|
162
|
+
}
|
|
163
|
+
// not paid nor cancelled
|
|
164
|
+
return responsePubSub(ECHO_SKIP);
|
|
165
|
+
} catch (err) {
|
|
166
|
+
logger.error('(App Loyalty Points) Error =>', err);
|
|
167
|
+
throw err;
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
export default handleLoyaltyPointsEvent;
|
|
172
|
+
// # sourceMappingURL=handle-loyalty-points-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-loyalty-points-event.js","sourceRoot":"","sources":["../../src/functions-lib/handle-loyalty-points-event.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './loyalty-points';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|