@devx-commerce/plugin-form-responses 0.0.2-beta.17 → 0.0.2-beta.19
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.
|
@@ -41,7 +41,7 @@ const generateSlots = (type, date, now) => {
|
|
|
41
41
|
};
|
|
42
42
|
const GET = async (req, res) => {
|
|
43
43
|
try {
|
|
44
|
-
const { date, type, store_id: storeId } = req.validatedQuery;
|
|
44
|
+
const { date, type, store_id: storeId, } = req.validatedQuery;
|
|
45
45
|
const store_id = storeId?.trim() || "";
|
|
46
46
|
if (!date || !type) {
|
|
47
47
|
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({ slots: [], booking: [] }, "Please provide both date and type"));
|
|
@@ -50,8 +50,13 @@ const GET = async (req, res) => {
|
|
|
50
50
|
let slots = generateSlots(type, date, now);
|
|
51
51
|
// 🔎 Get existing bookings for this date + type
|
|
52
52
|
const formService = req.scope.resolve(form_response_1.FORM_RESPONSE_MODULE);
|
|
53
|
-
|
|
54
|
-
const
|
|
53
|
+
// Calculate start and end of day in IST (UTC+5:30), then convert to UTC for querying
|
|
54
|
+
const istOffsetMinutes = 5.5 * 60;
|
|
55
|
+
const startOfDayIST = new Date(`${date}T00:00:00+05:30`);
|
|
56
|
+
const endOfDayIST = new Date(`${date}T23:59:59+05:30`);
|
|
57
|
+
// Convert to UTC ISO strings for querying
|
|
58
|
+
const startOfDay = new Date(startOfDayIST.getTime() - istOffsetMinutes * 60 * 1000);
|
|
59
|
+
const endOfDay = new Date(endOfDayIST.getTime() - istOffsetMinutes * 60 * 1000);
|
|
55
60
|
const existing = await formService.listFormResponses({
|
|
56
61
|
type: type === "virtual_call"
|
|
57
62
|
? "VIRTUAL_CALL"
|
|
@@ -64,27 +69,37 @@ const GET = async (req, res) => {
|
|
|
64
69
|
$gte: startOfDay.toISOString(),
|
|
65
70
|
$lte: endOfDay.toISOString(),
|
|
66
71
|
},
|
|
67
|
-
...(store_id != "" && { store_id: store_id })
|
|
72
|
+
...(store_id != "" && { store_id: store_id }),
|
|
68
73
|
});
|
|
69
74
|
if (store_id) {
|
|
70
|
-
const bookedTimes = existing.map((b) =>
|
|
75
|
+
const bookedTimes = existing.map((b) =>
|
|
76
|
+
// Ensure the time is interpreted in local time for the target timezone (Asia/Kolkata)
|
|
77
|
+
new Date(b.scheduled_date_time || "").toLocaleTimeString("en-US", {
|
|
71
78
|
hour: "2-digit",
|
|
72
79
|
minute: "2-digit",
|
|
80
|
+
hour12: false,
|
|
81
|
+
timeZone: "Asia/Kolkata",
|
|
73
82
|
}));
|
|
74
|
-
slots = slots.filter((slot) => !bookedTimes.includes(slot));
|
|
83
|
+
slots = slots.filter((slot) => !bookedTimes.includes(slot.split(" ")[0]));
|
|
84
|
+
// console.log(slots)
|
|
75
85
|
}
|
|
76
86
|
else {
|
|
77
87
|
const slotCount = {};
|
|
78
88
|
existing.forEach((b) => {
|
|
79
|
-
const slotTime = new Date(b.scheduled_date_time || "").toLocaleTimeString(
|
|
89
|
+
const slotTime = new Date(b.scheduled_date_time || "").toLocaleTimeString("en-IN", {
|
|
90
|
+
hour: "2-digit",
|
|
91
|
+
minute: "2-digit",
|
|
92
|
+
hour12: false,
|
|
93
|
+
timeZone: "Asia/Kolkata",
|
|
94
|
+
});
|
|
80
95
|
slotCount[slotTime] = (slotCount[slotTime] || 0) + 1;
|
|
81
96
|
});
|
|
82
97
|
slots = slots.filter((slot) => {
|
|
83
|
-
if (store_id === "
|
|
84
|
-
return (slotCount[slot] || 0) < 3;
|
|
98
|
+
if (store_id === "") {
|
|
99
|
+
return (slotCount[slot.split(" ")[0]] || 0) < 3;
|
|
85
100
|
}
|
|
86
101
|
else {
|
|
87
|
-
return !slotCount[slot];
|
|
102
|
+
return !slotCount[slot.split(" ")[0]];
|
|
88
103
|
}
|
|
89
104
|
});
|
|
90
105
|
}
|
|
@@ -95,4 +110,4 @@ const GET = async (req, res) => {
|
|
|
95
110
|
}
|
|
96
111
|
};
|
|
97
112
|
exports.GET = GET;
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Nsb3QtbGlzdGluZy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSw0REFHbUM7QUFDbkMsa0VBQXNFO0FBS3RFLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBYyxFQUFFLElBQVksRUFBRSxHQUFTLEVBQUUsRUFBRTtJQUNoRSxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7SUFDM0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFcEMsSUFBSSxJQUFJLEtBQUssYUFBYSxFQUFFLENBQUM7UUFDM0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsQ0FBQztRQUV6QyxPQUFPLEtBQUssSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxLQUFLLENBQUMsSUFBSSxDQUNSLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUNyRSxDQUFDO1lBQ0YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLElBQUksS0FBSyxjQUFjLEVBQUUsQ0FBQztRQUM1QixJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFDekMsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBRXpD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
|
|
@@ -43,7 +43,7 @@ exports.createFormResponseStep = (0, workflows_sdk_1.createStep)("create-form-re
|
|
|
43
43
|
(0, helper_1.formatDateToDDMMYYYY)(data?.scheduled_date_time || "") &&
|
|
44
44
|
res.type === data.type);
|
|
45
45
|
if (sameDate) {
|
|
46
|
-
throw new Error(`Your booking already exists for ${sameDate.scheduled_date_time}`);
|
|
46
|
+
throw new Error(`Your booking already exists for ${new Date(sameDate.scheduled_date_time).toLocaleString("en-IN", { timeZone: "Asia/Kolkata" })}`);
|
|
47
47
|
}
|
|
48
48
|
const whoId = existing.find((res) => res?.whoId)?.whoId || null;
|
|
49
49
|
const formResponse = await formService.createFormResponses({ ...data, store_id, whoId: whoId });
|
|
@@ -55,4 +55,4 @@ exports.createFormResponseStep = (0, workflows_sdk_1.createStep)("create-form-re
|
|
|
55
55
|
const formService = container.resolve(form_response_1.FORM_RESPONSE_MODULE);
|
|
56
56
|
await formService.deleteFormResponses([id]);
|
|
57
57
|
});
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZvcm0tcmVzcG9uc2Utc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvZm9ybS1yZXNwb25zZS9zdGVwcy9jcmVhdGUtZm9ybS1yZXNwb25zZS1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUM3RSxvQ0FBa0U7QUFDbEUsa0VBQXNFO0FBRXRFLGdEQUEyRDtBQUU5QyxRQUFBLHNCQUFzQixHQUFHLElBQUEsMEJBQVUsRUFDOUMsMkJBQTJCLEVBQzNCLEtBQUssRUFBRSxJQUE0QixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNwRCxNQUFNLFdBQVcsR0FDZixTQUFTLENBQUMsT0FBTyxDQUFDLG9DQUFvQixDQUFDLENBQUM7SUFDMUMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxvQ0FBb0M7SUFDcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsaUJBQWlCLENBQUM7UUFDbkQsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO0tBQ2xDLENBQUMsQ0FBQztJQUNILElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFN0UsSUFBSSxRQUFRLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLHdCQUFnQixDQUFDLFlBQVk7UUFDbEUsSUFBSSxDQUFDLElBQUksS0FBSyx3QkFBZ0IsQ0FBQyxXQUFXO1FBQzFDLElBQUksQ0FBQyxJQUFJLEtBQUssd0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25ELE1BQU0sWUFBWSxHQUFHLE1BQU0s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
|