/var/www/qr4y.gr/server/delivery/api/controllers
Edit: /var/www/qr4y.gr/server/delivery/api/controllers/payTypes.controller.js (2278B)
const logger = require('../../logger')({ service: 'PayTypesController' })
const checkPermission = require('../utils/checkPermission.util')
const { NotFound, BadRequest } = require('../responseModels/errors')
module.exports = function ({ db }) {
this.List = async (req, res, next) => {
logger.child({ path: req.path, request: req.query }).info()
try {
const pay_types = await db.payType.findAll()
if (!pay_types || pay_types.length == 0) {
throw new NotFound({ lang: req.user?.languageCode })
}
return res.status(200).json(pay_types)
} catch (err) {
next(err)
}
}
this.Details = async (req, res, next) => {
logger.child({ path: req.path, request: req.params }).info()
try {
const { uid } = req.params
const payType = await db.payType.findOne({
// include: { model: db.permission, through: { attributes: [] } },
where: { uid: uid }
})
if (!payType) {
throw new NotFound({ lang: req.user?.languageCode })
}
return res.status(200).json(payType)
} catch (err) {
next(err)
}
}
this.Create = async (req, res, next) => {
logger.child({ path: req.path, request: req.body }).info()
try {
const { name, key } = req.body
const payType = await db.payType.create({ name, key })
return res.status(200).json({
status: 'success',
uid: payType.uid
})
} catch (err) {
next(err)
}
}
this.Edit = async (req, res, next) => {
logger.child({ path: req.path, request: req.body }).info()
try {
const { uid, name, key } = req.body
let payType = await db.payType.findOne({
where: { uid: uid }
})
if (!payType) {
throw new NotFound({ lang: req.user?.languageCode })
}
payType.name = name
payType.key = key
await payType.save()
return res.status(200).json(payType)
} catch (err) {
next(err)
}
}
this.Delete = async (req, res, next) => {
logger.child({ path: req.path, request: req.body }).info()
try {
const { uid } = req.body
const payType = await db.payType.findOne({ where: { uid: uid } })
if (!payType) {
throw new NotFound({ lang: req.user?.languageCode })
}
await db.payType.destroy({ where: { uid: uid } })
return res.status(200).json({ status: 'success', uid: payType.uid })
} catch (err) {
next(err)
}
}
}