File: /var/www/javago_test/src/controllers/order/order.controller.js
import * as OrderService from "../../services/order/order.services.js";
import { messages } from "../../config/response.messages.js";
import * as Helper from "../../helper/index.js";
import moment from "moment";
//save group coffee run data
export async function saveGroupCoffeeRun(req, res) {
try {
let check = await OrderService.checkSameGroupCafeRunEndTime(req.body);
if (check) {
console.log("check", check);
return res.status(203).send({
status: 203,
message: messages.group_cafe_run_already_added,
});
}
await OrderService.saveGroupCoffeeRun(req.body, req.userData);
return res.status(201).send({
status: 201,
message: messages.group_coffee_run_saved_success,
});
} catch (error) {
Helper.writeErrorLog(req, error);
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error,
});
}
}
//get group coffee run data
export async function getGroupCoffeeRun(req, res) {
try {
let result = await OrderService.getGroupCoffeeRun(req.query);
return res.status(200).send({
status: 200,
message: messages.data_found,
result: result,
});
} catch (error) {
Helper.writeErrorLog(req, error);
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error,
});
}
}
// place order
export async function placeOrder(req, res) {
try {
let result = await OrderService.placeOrder(req.body);
return res.status(result.status).send({
status: result.status,
message: result.message,
result: result.result,
});
} catch (error) {
Helper.writeErrorLog(req, error);
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error,
});
}
}
// save order
export async function saveOrder(req, res) {
try {
req.body.loggedInUser = req.userData.id;
let result = await OrderService.saveOrder(req.body);
return res.status(201).send({
status: 201,
message: messages.order_save_success,
result: result,
});
} catch (error) {
Helper.writeErrorLog(req, error);
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error,
});
}
}
// get order list
export async function getOrder(req, res) {
try {
let result = await OrderService.getOrder(req.userData.id, req.query);
return res.status(200).send({
status: 200,
message: messages.data_found,
result: result,
});
} catch (error) {
Helper.writeErrorLog(req, error);
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error,
});
}
}
// get Individual order list
export async function getIndividualOrder(req, res) {
try {
let result = await OrderService.getIndividualOrder(req.user_id, req.query.order_id, req.query.cafe_id)
return res.status(200).send({
status: 200,
message: messages.data_found,
result: result
})
} catch (error) {
Helper.writeErrorLog(req, error)
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error
})
}
}
// change order status
export async function changeOrderStatus(req, res) {
try {
let result = await OrderService.changeOrderStatus(req.params.id, req.body);
if (req.body.flag == 2) {
let totalUniversalOrders = await OrderService.getUniversalOrders(req.user_id);
let totalUniversalStamps = await OrderService.getUniversalStamp();
if (totalUniversalOrders) {
if (totalUniversalOrders >= totalUniversalStamps.stamp_no) {
await OrderService.updateUniversalCoupon(req.user_id, req.params.id, totalUniversalStamps.stamp_no, totalUniversalStamps.stamp_expires_in)
}
}
let totalOrder = await OrderService.getAllCafeOrders(req.user_id, result.data.cafe_id);
let totalStamp = await OrderService.getStampsByCafe(result.data.cafe_id);
if (totalStamp) {
if (totalOrder >= totalStamp.stamp_no) {
await OrderService.updateCouponByCafeId(req.user_id, req.params.id, result.data.cafe_id, totalStamp.stamp_no, totalStamp.stamp_expires_in)
}
}
return res.status(result.status).send({
status: result.status,
message: result.message,
});
} else {
return res.status(result.status).send({
status: result.status,
message: result.message,
});
}
} catch (error) {
console.log("error", error);
Helper.writeErrorLog(req, error);
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error,
});
}
}
// Loyalty List
export async function loyaltyList(req, res) {
try {
let result = await OrderService.loyaltyList(req.user_id, req.query);
return res.status(200).send({
status: 200,
message: messages.loyalty_detail,
data: result,
});
} catch (error) {
console.log(error);
Helper.writeErrorLog(req, error);
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error,
});
}
}
// Universal Card List API
export async function universalCardList(req, res) {
try {
let result = await OrderService.universalCardList(req.user_id);
let getUniversalStamp = await OrderService.getUniversalStamp()
return res.status(200).send({
status: 200,
message: messages.loyalty_detail,
data: {
count: result,
universal: {
stamp_no: getUniversalStamp.stamp_no,
offer_text: getUniversalStamp.offer_text
}
},
});
} catch (error) {
Helper.writeErrorLog(req, error);
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error,
});
}
}
// check redeem code
export async function checkRedeemCode(req, res) {
try {
let responseArray = []
req.query.userId = req.userData.id
let nonUniversalStampsDetails = await OrderService.getStampsByCafe(req.query.cafe_id);
let totalOrder = await OrderService.getAllCafeOrders(req.user_id, req.query.cafe_id);
let universalStampsDetails = await OrderService.getUniversalStamp();
let totalUniversalOrders = await OrderService.getUniversalOrders(req.user_id);
let lastExpireDate = await OrderService.getLastExpireDateUniversal(req.user_id);
let cafeExpireDate = await OrderService.getLastExpireCafeDate(req.user_id, req.query.cafe_id)
let currentDate = moment().format('YYYY-MM-DD')
universalStampsDetails.dataValues.is_expired = 0;
nonUniversalStampsDetails.dataValues.is_expired = 0;
if (lastExpireDate) {
if (currentDate > moment.unix(lastExpireDate.universal_coupon_expired_time).format("YYYY-MM-DD")) {
universalStampsDetails.dataValues.is_expired = 1;
}
}
if (cafeExpireDate) {
if (currentDate > moment.unix(cafeExpireDate.cafe_coupon_expired_time).format("YYYY-MM-DD")) {
nonUniversalStampsDetails.dataValues.is_expired = 1;
}
}
if (totalOrder >= nonUniversalStampsDetails.stamp_no) {
responseArray.push(nonUniversalStampsDetails)
}
if (totalUniversalOrders >= universalStampsDetails.stamp_no) {
responseArray.push(universalStampsDetails)
}
return res.status(200).send({
status: 200,
message: messages.data_found,
data: responseArray
});
} catch (error) {
Helper.writeErrorLog(req, error);
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error,
});
}
}
// apply coupon
export async function applyCoupon(req, res) {
try {
req.query.userId = req.userData.id
let result = await OrderService.applyRedeemCode(req.query.id);
return res.status(200).send({
status: 200,
message: messages.data_found,
data: result,
});
} catch (error) {
Helper.writeErrorLog(req, error);
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error,
});
}
}
// order list by group
export async function orderListByGroup(req, res) {
try {
req.query.userId = req.userData.id
let result = await OrderService.orderListByGroup(req.query);
return res.status(200).send({
status: 200,
message: messages.data_found,
data: result,
});
} catch (error) {
Helper.writeErrorLog(req, error);
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error,
});
}
}