@devx-commerce/plugin-form-responses 0.0.2-beta.20 → 0.0.2-beta.22
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,6 +41,7 @@ const generateSlots = (type, date, now) => {
|
|
|
41
41
|
};
|
|
42
42
|
const GET = async (req, res) => {
|
|
43
43
|
try {
|
|
44
|
+
const query = req.scope.resolve("query");
|
|
44
45
|
const { date, type, store_id: storeId, } = req.validatedQuery;
|
|
45
46
|
const store_id = storeId?.trim() || "";
|
|
46
47
|
if (!date || !type) {
|
|
@@ -57,6 +58,13 @@ const GET = async (req, res) => {
|
|
|
57
58
|
// Convert to UTC ISO strings for querying
|
|
58
59
|
const startOfDay = new Date(startOfDayIST.getTime() - istOffsetMinutes * 60 * 1000);
|
|
59
60
|
const endOfDay = new Date(endOfDayIST.getTime() - istOffsetMinutes * 60 * 1000);
|
|
61
|
+
const { data: outlet_data } = await query.graph({
|
|
62
|
+
entity: "outlet",
|
|
63
|
+
fields: ["*"],
|
|
64
|
+
filters: {
|
|
65
|
+
is_active: true,
|
|
66
|
+
},
|
|
67
|
+
});
|
|
60
68
|
const existing = await formService.listFormResponses({
|
|
61
69
|
type: type === "virtual_call"
|
|
62
70
|
? "VIRTUAL_CALL"
|
|
@@ -95,7 +103,7 @@ const GET = async (req, res) => {
|
|
|
95
103
|
});
|
|
96
104
|
slots = slots.filter((slot) => {
|
|
97
105
|
if (store_id === "") {
|
|
98
|
-
return (slotCount[slot] || 0) <
|
|
106
|
+
return (slotCount[slot] || 0) < ((outlet_data || [])?.length - 1 || 1);
|
|
99
107
|
}
|
|
100
108
|
else {
|
|
101
109
|
return !slotCount[slot];
|
|
@@ -109,4 +117,4 @@ const GET = async (req, res) => {
|
|
|
109
117
|
}
|
|
110
118
|
};
|
|
111
119
|
exports.GET = GET;
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Nsb3QtbGlzdGluZy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSw0REFHbUM7QUFDbkMsa0VBQXNFO0FBS3RFLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBYyxFQUFFLElBQVksRUFBRSxHQUFTLEVBQUUsRUFBRTtJQUNoRSxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7SUFDM0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFcEMsSUFBSSxJQUFJLEtBQUssYUFBYSxFQUFFLENBQUM7UUFDM0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsQ0FBQztRQUV6QyxPQUFPLEtBQUssSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxLQUFLLENBQUMsSUFBSSxDQUNSLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUNyRSxDQUFDO1lBQ0YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLElBQUksS0FBSyxjQUFjLEVBQUUsQ0FBQztRQUM1QixJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFDekMsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBRXpD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
|
|
@@ -13,46 +13,51 @@ exports.createFormResponseStep = (0, workflows_sdk_1.createStep)("create-form-re
|
|
|
13
13
|
mobile_number: data.mobile_number,
|
|
14
14
|
});
|
|
15
15
|
let store_id = data.store_id && data.store_id !== data.city ? data.store_id : "";
|
|
16
|
-
if (store_id === "" &&
|
|
17
|
-
data.type === types_1.FormResponseType.
|
|
18
|
-
|
|
16
|
+
if (store_id === "" &&
|
|
17
|
+
(data.type === types_1.FormResponseType.VIRTUAL_CALL ||
|
|
18
|
+
data.type === types_1.FormResponseType.STORE_VISIT ||
|
|
19
|
+
data.type === types_1.FormResponseType.BOOK_YOUR_TRIAL)) {
|
|
19
20
|
const virtual_data = await formService.listFormResponses({
|
|
20
21
|
type: data.type,
|
|
21
22
|
scheduled_date_time: data.scheduled_date_time,
|
|
22
23
|
});
|
|
23
24
|
const { data: outlet_data } = await query.graph({
|
|
24
25
|
entity: "outlet",
|
|
25
|
-
fields: ["*"],
|
|
26
|
+
fields: ["*", "booking_form_priority"],
|
|
26
27
|
filters: {
|
|
27
28
|
is_active: true,
|
|
28
29
|
},
|
|
29
30
|
});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
if (virtual_data.length === 1) {
|
|
34
|
-
store_id = outlet_data.find((store) => store.city.toLowerCase().includes("mumbai"))?.id;
|
|
35
|
-
}
|
|
36
|
-
if (virtual_data.length === 2) {
|
|
37
|
-
store_id = outlet_data.find((store) => store.city.toLowerCase().includes("indore"))?.id;
|
|
38
|
-
}
|
|
31
|
+
const sortedOutlets = [...outlet_data].sort((a, b) => Number(a.booking_form_priority) - Number(b.booking_form_priority));
|
|
32
|
+
store_id = sortedOutlets[virtual_data.length].id;
|
|
33
|
+
console.log("outlet_data", { sortedOutlets, store_id });
|
|
39
34
|
}
|
|
40
35
|
if (existing.length > 0) {
|
|
41
36
|
// check if any record has the same date + same type
|
|
42
37
|
const sameDate = existing.find((res) => (0, helper_1.formatDateToDDMMYYYY)(res.scheduled_date_time || "") ===
|
|
43
38
|
(0, helper_1.formatDateToDDMMYYYY)(data?.scheduled_date_time || "") &&
|
|
44
39
|
res.type === data.type);
|
|
40
|
+
const message = sameDate && data.type !== types_1.FormResponseType.QUICK_POPUP_BANNER
|
|
41
|
+
? `Your booking already exists for ${new Date(sameDate?.scheduled_date_time).toLocaleString("en-IN", { timeZone: "Asia/Kolkata" })}`
|
|
42
|
+
: `Your response is already submitted! Our team will get back to you soon`;
|
|
45
43
|
if (sameDate) {
|
|
46
|
-
throw new Error(
|
|
44
|
+
throw new Error(message);
|
|
47
45
|
}
|
|
48
46
|
const whoId = existing.find((res) => res?.whoId)?.whoId || null;
|
|
49
|
-
const formResponse = await formService.createFormResponses({
|
|
47
|
+
const formResponse = await formService.createFormResponses({
|
|
48
|
+
...data,
|
|
49
|
+
store_id,
|
|
50
|
+
whoId: whoId,
|
|
51
|
+
});
|
|
50
52
|
return new workflows_sdk_1.StepResponse({ ...formResponse, __operation: whoId ? "booking" : "create" }, formResponse.id);
|
|
51
53
|
}
|
|
52
|
-
const formResponse = await formService.createFormResponses({
|
|
54
|
+
const formResponse = await formService.createFormResponses({
|
|
55
|
+
...data,
|
|
56
|
+
store_id,
|
|
57
|
+
});
|
|
53
58
|
return new workflows_sdk_1.StepResponse({ ...formResponse, __operation: "create" }, formResponse.id);
|
|
54
59
|
}, async (id, { container }) => {
|
|
55
60
|
const formService = container.resolve(form_response_1.FORM_RESPONSE_MODULE);
|
|
56
61
|
await formService.deleteFormResponses([id]);
|
|
57
62
|
});
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZvcm0tcmVzcG9uc2Utc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvZm9ybS1yZXNwb25zZS9zdGVwcy9jcmVhdGUtZm9ybS1yZXNwb25zZS1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUM3RSxvQ0FBb0U7QUFDcEUsa0VBQXNFO0FBRXRFLGdEQUEyRDtBQUU5QyxRQUFBLHNCQUFzQixHQUFHLElBQUEsMEJBQVUsRUFDOUMsMkJBQTJCLEVBQzNCLEtBQUssRUFBRSxJQUE0QixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNwRCxNQUFNLFdBQVcsR0FDZixTQUFTLENBQUMsT0FBTyxDQUFDLG9DQUFvQixDQUFDLENBQUM7SUFDMUMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxvQ0FBb0M7SUFDcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsaUJBQWlCLENBQUM7UUFDbkQsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO0tBQ2xDLENBQUMsQ0FBQztJQUNILElBQUksUUFBUSxHQUNWLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFcEUsSUFDRSxRQUFRLEtBQUssRUFBRTtRQUNmLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyx3QkFBZ0IsQ0FBQyxZQUFZO1lBQzFDLElBQUksQ0FBQyxJQUFJLEtBQUssd0JBQWdCLENBQUMsV0FBVztZQUMxQyxJQUFJLENBQUMsSUFBSSxLQUFLLHdCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUNqRCxDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxXQUFXLENBQUMs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
|