/var/www/qr4y.com/server/delivery/api/controllers
NameSizeModeActions
account/-0755rm
auth/-0755rm
country_code/-0755rm
delivery_server/-0755rm
iap/-0755rm
order/-0755rm
qr/-0755rm
system/-0755rm
branch.controller.js298690644editdlrm
branchApp.controller.js46860644editdlrm
branchReview.controller.js63210644editdlrm
company.controller.js251110644editdlrm
companyReview.controller.js63680644editdlrm
companyTypes.controller.js31340644editdlrm
delivery.controller.js28270644editdlrm
deliveryTypes.controller.js23820644editdlrm
driver.controller.js45800644editdlrm
gallery.controller.js79290644editdlrm
language.controller.js27090644editdlrm
orderCancelCause.controller.js34420644editdlrm
payTypes.controller.js23140644editdlrm
permission.controller.js25900644editdlrm
plan.controller.js36180644editdlrm
planConfig.controller.js34530644editdlrm
product.controller.js134020644editdlrm
productFilters.controller.js33010644editdlrm
productGroups.controller.js65380644editdlrm
productReview.controller.js61640644editdlrm
productTypeFilters.controller.js29640644editdlrm
productTypeFiltersValues.controller.js31490644editdlrm
productTypes.controller.js26900644editdlrm
role.controller.js39820644editdlrm
room.controller.js34430644editdlrm
table.controller.js154540644editdlrm
user.controller.js255020644editdlrm
userCart.controller.js58270644editdlrm
waiter.controller.js61670644editdlrm
Edit: /var/www/qr4y.com/server/delivery/api/controllers/productGroups.controller.js (6538B)
const logger = require('../../logger')({ service: 'ProductGroupsController' }) const checkPermission = require('../utils/checkPermission.util') const { NotFound, BadRequest } = require('../responseModels/errors') const { isSet, isEmpty, minLength, isPhone, isEmail } = require('../utils/validator.util') module.exports = function ({ db }) { this.List = async (req, res, next) => { logger.child({ path: req.path, request: req.query }).info() try { const { companyId, page, limit } = req.query let where = {} if (companyId) { where['companyId'] = companyId } let offset = page > 0 ? (page - 1) * (limit || 10) : 0 const productGroup = await db.productGroup.findAll({ where, offset, limit: parseInt(limit) || 10 }) if (!productGroup || productGroup.length == 0) { throw new NotFound({ lang: req.user?.languageCode }) } return res.status(200).json(productGroup) } catch (err) { next(err) } } this.Details = async (req, res, next) => { logger.child({ path: req.path, request: req.params }).info() try { checkPermission(req, 'product_groups_list') const { id } = req.params const productGroup = await db.productGroup.findOne({ include: [ { model: db.product, as: 'products' }, { model: db.productGroupImage, required: false }, ], where: { id: id } }) if (!productGroup) { logger.child({ path: req.path, request: req.params }).info(error(404).message) return res.status(404).json({ status: 'error', errors: [error(404)] }) } return res.status(200).json(productGroup) } catch (err) { logger.child({ error: err.stack }).error(err.message) return res.status(500).json({ status: 'error', errors: [err.message] }) } } this.Create = async (req, res, next) => { logger.child({ path: req.path, request: req.body }).info() try { checkPermission(req, 'product_groups_edit') const { name, description, image, filters, companyId, menuAppImage, menuAppView, position } = req.body const productGroup = await db.productGroup.create({ name, description, image, filters, companyId, menuAppImage, menuAppView, position }) return res.status(200).json({ status: 'success', id: productGroup.id }) } catch (err) { logger.child({ error: err.stack }).error(err.message) return res.status(500).json({ status: 'error', errors: [err.message] }) } } this.Edit = async (req, res, next) => { logger.child({ path: req.path, request: req.body }).info() try { checkPermission(req, 'product_groups_edit') const { id, name, description, image, filters, menuAppImage, menuAppView, position } = req.body let productGroup = await db.productGroup.findOne({ where: { id: id } }) if (!productGroup) { logger.child({ path: req.path, request: req.body }).info(error(404).message) return res.status(404).json({ status: 'error', errors: [error(404)] }) } productGroup.name = name productGroup.position = position productGroup.description = description productGroup.image = image productGroup.filters = filters productGroup.menuAppImage = menuAppImage ?? '' productGroup.menuAppView = menuAppView ?? 'horizontal' await productGroup.save() return res.status(200).json(productGroup) } catch (err) { logger.child({ error: err.stack }).error(err.message) return res.status(500).json({ status: 'error', errors: [err.message] }) } } this.Delete = async (req, res, next) => { logger.child({ path: req.path, request: req.body }).info() try { checkPermission(req, 'product_groups_edit') const { id } = req.body const productGroup = await db.productGroup.findOne({ where: { id: id } }) if (!productGroup) { logger.child({ path: req.path, request: req.body }).info(error(404).message) return res.status(404).json({ status: 'error', errors: [error(404)] }) } await db.productGroup.destroy({ where: { id: id } }) return res.status(200).json({ status: 'success', id: productGroup.id }) } catch (err) { logger.child({ error: err.stack }).error(err.message) return res.status(500).json({ status: 'error', errors: [err.message] }) } } this.AddImage = async (req, res, next) => { logger.child({ path: req.path, request: req.body }).info() try { let t1 = performance.now() checkPermission(req, 'product_groups_edit') const { productGroupId, productGroupImage } = req.body if (!isSet(productGroupId) || isEmpty(productGroupId)) { throw new BadRequest({ lang: req.user?.languageCode }) } if (!isSet(productGroupImage) || isEmpty(productGroupImage)) { throw new BadRequest({ lang: req.user?.languageCode }) } const productGroup = await db.productGroup.findOne({ where: { id: productGroupId } }) if (!productGroup) { throw new NotFound({ lang: req.user?.languageCode }) } let image = JSON.parse(productGroupImage) image.productGroupId = productGroup.id const result = await db.productGroupImage.create(image) const time = performance.now() - t1 return res.status(200).json({ status: 'success', id: result.id }) } catch (err) { next(err) } } this.RemoveImage = async (req, res, next) => { logger.child({ path: req.path, request: req.body }).info() try { let t1 = performance.now() checkPermission(req, 'product_groups_edit') const { imageId } = req.body if (!isSet(imageId) || isEmpty(imageId)) { throw new BadRequest({ lang: req.user?.languageCode }) } await db.productGroupImage.destroy({ where: { id: imageId } }) const time = performance.now() - t1 return res.status(200).json({ status: 'success', id: imageId }) } catch (err) { next(err) } } this.SetDefaultImage = async (req, res, next) => { logger.child({ path: req.path, request: req.body }).info() try { let t1 = performance.now() checkPermission(req, 'product_groups_edit') const { imageId } = req.body if (!isSet(imageId) || isEmpty(imageId)) { throw new BadRequest({ lang: req.user?.languageCode }) } let product_group_image = await db.productGroupImage.findOne({ where: { id: imageId } }) await db.productGroupImage.update( { isDefault: false }, { where: { productGroupId: product_group_image.productGroupId } } ) product_group_image.isDefault = true product_group_image.save() const time = performance.now() - t1 return res.status(200).json({ status: 'success', id: imageId }) } catch (err) { next(err) } } }