File: /var/www/api.javaapp.co.uk_old/src/controllers/cafe/cafe.controller.js
import * as cafeService from "../../services/cafe/cafe.services.js"
import { messages } from "../../config/response.messages.js"
import * as Helper from "../../helper/index.js"
import moment from "moment/moment.js";
import { getPreSignedUrl } from "../../helper/presigned.url.js";
// cafe list according to filter
/**
* 0 - All
* 1 - Favorite cafe list
* 2 - Vegan cafe list
* 3 - Bubble Tea cafe list
* 4 - Dessert cafe list
* 5 - sandwich cafe list
*/
export async function cafeListing(req, res) {
try {
let cafeList = [];
let featuredCafeList = [];
req.body.user_id = req.user_id;
if (req.body.filter_flag == 0) {
cafeList = await cafeService.getAllCafeList(req.body);
featuredCafeList = await cafeService.getAllCafeList(req.body);
} else if (req.body.filter_flag == 1) {
cafeList = await cafeService.getFavoritesCafeList(req.body);
featuredCafeList = {};
} else {
cafeList = await cafeService.getAllCafeList(req.body);
featuredCafeList = {};
}
return res.status(200).send({
status: 200,
message: messages.cafe_found,
data: {
all_cafe: cafeList,
featured_list: featuredCafeList
},
})
} catch (error) {
Helper.writeErrorLog(req, error)
console.log("error", error);
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error
})
}
}
export async function searchCafe(req, res) {
try {
req.body.user_id = req.user_id;
req.body.filter_flag = 0;
let cafeList = await cafeService.getAllCafeList(req.body);
return res.status(200).send({
status: 200,
message: messages.cafe_found,
data: cafeList
})
} catch (error) {
Helper.writeErrorLog(req, error)
console.log("error", error);
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error
})
}
}
export async function searchCafeByName(req, res) {
try {
req.body.user_id = req.user_id;
let cafeList = await cafeService.getCafeByName(req.body);
return res.status(200).send({
status: 200,
message: messages.cafe_found,
data: cafeList
})
} catch (error) {
Helper.writeErrorLog(req, error)
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error
})
}
}
export async function favoriteCafe(req, res) {
try {
let updateData = {
is_favorite: req.body.is_favorite,
updated_at: moment().unix()
}
let is_favorite = await cafeService.findFavoriteCafeById(req.body.cafe_id, req.user_id);
if (is_favorite.length > 0) {
if (req.body.is_favorite == 1) {
await cafeService.favoriteCafeUpdate(req.user_id, req.body.cafe_id, updateData);
} else {
await cafeService.deleteFavoriteCafe(req.user_id, req.body.cafe_id);
}
} else {
await cafeService.favoriteCafeAdd({
user_id: req.user_id,
cafe_id: req.body.cafe_id,
is_favorite: req.body.is_favorite,
created_at: moment().unix()
});
}
return res.status(202).send({
status: 202,
message: messages.user_found,
data: updateData
})
} catch (error) {
Helper.writeErrorLog(req, error)
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error
})
}
}
export async function requestCafe(req, res) {
try {
let is_cafe = await cafeService.findRequestCafe(req.body);
if (!is_cafe) {
await cafeService.requestCafe(req.body);
}
return res.status(202).send({
status: 202,
message: messages.request_created,
})
} catch (error) {
Helper.writeErrorLog(req, error)
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error.message
})
}
}
export async function cafeFilterList(req, res) {
try {
let filterData = await cafeService.cafeFilterList(req.query);
// for (const data of filterData.docs) {
// data.image = await getPreSignedUrl(data.image)
// }
return res.status(200).send({
status: 200,
message: messages.data_found,
data: filterData
})
} catch (error) {
Helper.writeErrorLog(req, error)
return res.status(500).send({
status: 500,
message: messages.something_went_wrong,
error: error
})
}
}
// get cafe category list
export async function getCafeItemCatgory(req, res) {
try {
let result = await cafeService.getCafeItemCatgory(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.message
})
}
}
// get cafe item list with pagination by category
export async function getCafeItemList(req, res) {
try {
let result = await cafeService.getCafeItemList(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
})
}
}
// cafe details
export async function getCafeDetails(req, res) {
try {
let result = await cafeService.getCafeDetails(req.body.cafe_id, req.userData)
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
})
}
}
// cafe item details
export async function getCafeItemDetails(req, res) {
try {
let result = await cafeService.getCafeItemDetails(parseInt(req.body.item_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
})
}
}
// cafe suggested item list
export async function cafeItemSuggestedList(req, res) {
try {
let result = await cafeService.cafeItemSuggestedList(req.body)
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
})
}
}