HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
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
    })
  }
}