@devx-commerce/plugin-form-responses 0.0.2-beta.12 → 0.0.2-beta.13
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.
|
@@ -49,10 +49,8 @@ const GET = async (req, res) => {
|
|
|
49
49
|
let slots = generateSlots(type, date, now);
|
|
50
50
|
// 🔎 Get existing bookings for this date + type
|
|
51
51
|
const formService = req.scope.resolve(form_response_1.FORM_RESPONSE_MODULE);
|
|
52
|
-
const startOfDay = new Date(date);
|
|
53
|
-
|
|
54
|
-
const endOfDay = new Date(date);
|
|
55
|
-
endOfDay.setHours(23, 59, 59, 999);
|
|
52
|
+
const startOfDay = new Date(`${date}T00:00:00Z`); // start of UTC day
|
|
53
|
+
const endOfDay = new Date(`${date}T23:59:59Z`);
|
|
56
54
|
const existing = await formService.listFormResponses({
|
|
57
55
|
type: type === "virtual_call"
|
|
58
56
|
? "VIRTUAL_CALL"
|
|
@@ -65,14 +63,21 @@ const GET = async (req, res) => {
|
|
|
65
63
|
$gte: startOfDay.toISOString(),
|
|
66
64
|
$lte: endOfDay.toISOString(),
|
|
67
65
|
},
|
|
68
|
-
store_id: store_id
|
|
66
|
+
...(store_id != " " && { store_id: store_id })
|
|
67
|
+
});
|
|
68
|
+
const slotCount = {};
|
|
69
|
+
existing.forEach((b) => {
|
|
70
|
+
const slotTime = new Date(b.scheduled_date_time || "").toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
|
|
71
|
+
slotCount[slotTime] = (slotCount[slotTime] || 0) + 1;
|
|
72
|
+
});
|
|
73
|
+
slots = slots.filter((slot) => {
|
|
74
|
+
if (store_id === " ") {
|
|
75
|
+
return (slotCount[slot] || 0) < 3;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
return !slotCount[slot];
|
|
79
|
+
}
|
|
69
80
|
});
|
|
70
|
-
// ⛔ Remove already booked slots
|
|
71
|
-
const bookedTimes = existing.map((b) => new Date(b.scheduled_date_time || "").toLocaleTimeString([], {
|
|
72
|
-
hour: "2-digit",
|
|
73
|
-
minute: "2-digit",
|
|
74
|
-
}));
|
|
75
|
-
slots = slots.filter((slot) => !bookedTimes.includes(slot));
|
|
76
81
|
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({ date, type, slots }, "Fetched appointment slots"));
|
|
77
82
|
}
|
|
78
83
|
catch (e) {
|
|
@@ -80,4 +85,4 @@ const GET = async (req, res) => {
|
|
|
80
85
|
}
|
|
81
86
|
};
|
|
82
87
|
exports.GET = GET;
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Nsb3QtbGlzdGluZy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSw0REFHbUM7QUFDbkMsa0VBQXNFO0FBS3RFLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBYyxFQUFFLElBQVksRUFBRSxHQUFTLEVBQUUsRUFBRTtJQUNoRSxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7SUFDM0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFcEMsSUFBSSxJQUFJLEtBQUssYUFBYSxFQUFFLENBQUM7UUFDM0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsQ0FBQztRQUV6QyxPQUFPLEtBQUssSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxLQUFLLENBQUMsSUFBSSxDQUNSLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUNyRSxDQUFDO1lBQ0YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLElBQUksS0FBSyxjQUFjLEVBQUUsQ0FBQztRQUM1QixJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFDekMsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBRXpD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
|
|
@@ -6,25 +6,49 @@ const form_response_1 = require("../../../modules/form-response");
|
|
|
6
6
|
const helper_1 = require("../../../lib/helper");
|
|
7
7
|
exports.createFormResponseStep = (0, workflows_sdk_1.createStep)("create-form-response-step", async (data, { container }) => {
|
|
8
8
|
const formService = container.resolve(form_response_1.FORM_RESPONSE_MODULE);
|
|
9
|
+
const query = container.resolve("query");
|
|
9
10
|
// find all records with same mobile
|
|
10
11
|
const existing = await formService.listFormResponses({
|
|
11
12
|
mobile_number: data.mobile_number,
|
|
12
13
|
});
|
|
14
|
+
let store_id = data.store_id || "";
|
|
15
|
+
if (store_id === "") {
|
|
16
|
+
const virtual_data = await formService.listFormResponses({
|
|
17
|
+
type: data.type,
|
|
18
|
+
scheduled_date_time: data.scheduled_date_time,
|
|
19
|
+
});
|
|
20
|
+
const { data: outlet_data } = await query.graph({
|
|
21
|
+
entity: "outlet",
|
|
22
|
+
fields: ["*"],
|
|
23
|
+
filters: {
|
|
24
|
+
is_active: true,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
if (virtual_data.length === 0) {
|
|
28
|
+
store_id = outlet_data.find((store) => store.city.toLowerCase().includes("ahmedabad"))?.id;
|
|
29
|
+
}
|
|
30
|
+
if (virtual_data.length === 1) {
|
|
31
|
+
store_id = outlet_data.find((store) => store.city.toLowerCase().includes("mumbai"))?.id;
|
|
32
|
+
}
|
|
33
|
+
if (virtual_data.length === 2) {
|
|
34
|
+
store_id = outlet_data.find((store) => store.city.toLowerCase().includes("indore"))?.id;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
13
37
|
if (existing.length > 0) {
|
|
14
38
|
// check if any record has the same date + same type
|
|
15
39
|
const sameDate = existing.find((res) => (0, helper_1.formatDateToDDMMYYYY)(res.scheduled_date_time || "") ===
|
|
16
40
|
(0, helper_1.formatDateToDDMMYYYY)(data.scheduled_date_time || "") &&
|
|
17
41
|
res.type === data.type);
|
|
18
42
|
if (sameDate) {
|
|
19
|
-
throw new Error(
|
|
43
|
+
throw new Error(`Your booking already exists for ${sameDate.scheduled_date_time}`);
|
|
20
44
|
}
|
|
21
|
-
const formResponse = await formService.createFormResponses(data);
|
|
45
|
+
const formResponse = await formService.createFormResponses({ ...data, store_id });
|
|
22
46
|
return new workflows_sdk_1.StepResponse({ ...formResponse, __operation: "booking" }, formResponse.id);
|
|
23
47
|
}
|
|
24
|
-
const formResponse = await formService.createFormResponses(data);
|
|
48
|
+
const formResponse = await formService.createFormResponses({ ...data, store_id });
|
|
25
49
|
return new workflows_sdk_1.StepResponse({ ...formResponse, __operation: "create" }, formResponse.id);
|
|
26
50
|
}, async (id, { container }) => {
|
|
27
51
|
const formService = container.resolve(form_response_1.FORM_RESPONSE_MODULE);
|
|
28
52
|
await formService.deleteFormResponses([id]);
|
|
29
53
|
});
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZvcm0tcmVzcG9uc2Utc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvZm9ybS1yZXNwb25zZS9zdGVwcy9jcmVhdGUtZm9ybS1yZXNwb25zZS1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUU3RSxrRUFBc0U7QUFFdEUsZ0RBQTJEO0FBRTlDLFFBQUEsc0JBQXNCLEdBQUcsSUFBQSwwQkFBVSxFQUM5QywyQkFBMkIsRUFDM0IsS0FBSyxFQUFFLElBQTRCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3BELE1BQU0sV0FBVyxHQUNmLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0NBQW9CLENBQUMsQ0FBQztJQUMxQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLG9DQUFvQztJQUNwQyxNQUFNLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztRQUNuRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7S0FDbEMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7SUFDL0IsSUFBSSxRQUFRLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDcEIsTUFBTSxZQUFZLEdBQUcsTUFBTSxXQUFXLENBQUMsaUJBQWlCLENBQUM7WUFDdkQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtTQUM5QyxDQUFDLENBQUM7UUFDSCxNQUFNLEVBQUMsSUFBSSxFQUFDLFdBQVcsRUFBQyxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMzQyxNQUFNLEVBQUUsUUFBUTtZQUNoQixNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDYixPQUFPLEVBQUU7Z0JBQ1As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
|