82 lines
1.8 KiB
JavaScript
82 lines
1.8 KiB
JavaScript
'use strict';
|
|
|
|
const Partner = require('../model/partner'),
|
|
{ AppParamError } = require('../helpers/app_error'),
|
|
{ Errors } = require('../helpers/constants'),
|
|
assert = require('assert');
|
|
|
|
// Create a new partner
|
|
async function createPartner_post(req, res) {
|
|
const input = req.body;
|
|
|
|
assert(input && input.name, AppParamError.create());
|
|
|
|
const partner = new Partner({
|
|
name: input.name,
|
|
description: input.description || '',
|
|
});
|
|
|
|
const newPartner = await partner.save();
|
|
res.json(newPartner);
|
|
}
|
|
|
|
// Get all partners
|
|
async function getPartners_get(req, res) {
|
|
const partners = await Partner.find().lean();
|
|
res.json(partners);
|
|
}
|
|
|
|
// Get a specific partner by ID
|
|
async function getPartnerById_get(req, res) {
|
|
const partnerId = req.params?.id;
|
|
|
|
assert(partnerId, AppParamError.create());
|
|
|
|
const partner = await Partner.findById(partnerId).lean();
|
|
if (!partner) AppParamError.throw(Errors.NOT_FOUND);
|
|
|
|
res.json(partner);
|
|
}
|
|
|
|
// Update a partner
|
|
async function updatePartner_put(req, res) {
|
|
const partnerId = req.params?.id;
|
|
const input = req.body;
|
|
|
|
assert(partnerId, AppParamError.create());
|
|
|
|
const partner = await Partner.findByIdAndUpdate(
|
|
partnerId,
|
|
{
|
|
name: input.name,
|
|
code: input.code,
|
|
description: input.description,
|
|
active: input.active,
|
|
},
|
|
{ new: true, runValidators: true }
|
|
);
|
|
|
|
if (!partner) AppParamError.throw(Errors.NOT_FOUND);
|
|
|
|
res.json(partner);
|
|
}
|
|
|
|
// Delete a partner
|
|
async function deletePartner(req, res) {
|
|
const partnerId = req.params.id;
|
|
|
|
assert(partnerId, AppParamError.create());
|
|
|
|
const partner = await Partner.findByIdAndDelete(partnerId);
|
|
if (!partner) AppParamError.throw(Errors.NOT_FOUND);
|
|
|
|
res.json({ ok: true });
|
|
}
|
|
|
|
module.exports = {
|
|
createPartner_post,
|
|
getPartners_get,
|
|
getPartnerById_get,
|
|
updatePartner_put,
|
|
deletePartner,
|
|
}; |