'use strict'; async function get (ctx) { try { const models = ctx.fs.dc.models; const { type } = ctx.request.body; const { name } = ctx.query; let findOption = { where: { type } } if (name) { findOption.where.name = { $like: `%${name}%` } } const vehicleRes = await models.Statistic.findAll(findOption) ctx.status = 200; ctx.body = vehicleRes } catch (error) { ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.status = 400; ctx.body = { message: typeof error == 'string' ? error : undefined } } } async function edit (ctx) { try { const models = ctx.fs.dc.models; const { id, name, count, type } = ctx.request.body; if (!id) { await models.Statistic.create({ name, count, type: type }) } else { await models.Statistic.update({ name, count, type: type }, { where: { id: id } }) } ctx.status = 204 } catch (error) { ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.status = 400; ctx.body = { message: typeof error == 'string' ? error : undefined } } } async function del (ctx) { try { const models = ctx.fs.dc.models; const { id } = ctx.params; await models.Statistic.destroy({ where: { id: id } }) ctx.status = 204 } catch (error) { ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.status = 400; ctx.body = { message: typeof error == 'string' ? error : undefined } } } async function specificGet (ctx) { try { const models = ctx.fs.dc.models; const { type } = ctx.query; const { nameOfBusinessOwner } = ctx.query; let findOption = { where: { type } } if (nameOfBusinessOwner) { findOption.where.nameOfBusinessOwner = { $like: `%${nameOfBusinessOwner}%` } } const vehicleRes = await models.MunicipalVehicle.findAll(findOption) ctx.status = 200; ctx.body = vehicleRes } catch (error) { ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.status = 400; ctx.body = { message: typeof error == 'string' ? error : undefined } } } async function specificEdit (ctx) { try { const models = ctx.fs.dc.models; const data = ctx.request.body; if (!data.vehicleId) { const vehicleRes = await models.MunicipalVehicle.create(data) } else { const vehicleRes = await models.MunicipalVehicle.update(data, { where: { id: data.vehicleId } }) } ctx.status = 204 } catch (error) { ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.status = 400; ctx.body = { message: typeof error == 'string' ? error : undefined } } } async function specificDel (ctx) { try { const models = ctx.fs.dc.models; const { vehicleId } = ctx.params; const vehicleRes = await models.MunicipalVehicle.destroy({ where: { id: vehicleId } }) ctx.status = 204 } catch (error) { ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.status = 400; ctx.body = { message: typeof error == 'string' ? error : undefined } } } async function businessGet (ctx) { try { const models = ctx.fs.dc.models; const { nameOfBusinessOwner } = ctx.query; let findOption = { where:{ } } if (nameOfBusinessOwner) { findOption.where.nameOfBusinessOwner = { $like: `%${nameOfBusinessOwner}%` } } const businessRes = await models.MunicipalBusiness.findAll(findOption) ctx.status = 200; ctx.body = businessRes } catch (error) { ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.status = 400; ctx.body = { message: typeof error == 'string' ? error : undefined } } } async function businessEdit (ctx) { try { const models = ctx.fs.dc.models; const data = ctx.request.body; if (!data.businessId) { await models.MunicipalBusiness.create(data) } else { await models.MunicipalBusiness.update(data, { where: { id: data.businessId } }) } ctx.status = 204 } catch (error) { ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.status = 400; ctx.body = { message: typeof error == 'string' ? error : undefined } } } async function businessDel (ctx) { try { const models = ctx.fs.dc.models; const { businessId } = ctx.params; await models.Vehicle.MunicipalBusiness({ where: { id: businessId } }) ctx.status = 204 } catch (error) { ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.status = 400; ctx.body = { message: typeof error == 'string' ? error : undefined } } } module.exports = { get, edit, del, specificGet, specificEdit, specificDel, businessGet, businessEdit, businessDel };