salix/modules/ticket/back/models/ticket-service.js

29 lines
1.1 KiB
JavaScript
Raw Normal View History

2019-04-23 09:25:49 +00:00
const UserError = require('vn-loopback/util/user-error');
2019-07-22 11:14:00 +00:00
const LoopBackContext = require('loopback-context');
2019-04-23 09:25:49 +00:00
module.exports = Self => {
Self.observe('before save', async ctx => {
2019-07-22 11:14:00 +00:00
const loopBackContext = LoopBackContext.getCurrentContext();
const httpCtx = {req: loopBackContext.active};
const models = Self.app.models;
let changes = ctx.currentInstance || ctx.instance;
if (changes) {
let ticketId = changes.ticketFk;
let isEditable = await models.Ticket.isEditable(httpCtx, ticketId);
if (!isEditable)
throw new UserError(`The current ticket can't be modified`);
2019-04-23 09:25:49 +00:00
}
});
Self.observe('before delete', async ctx => {
2019-07-22 11:14:00 +00:00
const loopBackContext = LoopBackContext.getCurrentContext();
const httpCtx = {req: loopBackContext.active};
const models = Self.app.models;
const service = await models.TicketService.findById(ctx.where.id);
const isEditable = await models.Ticket.isEditable(httpCtx, service.ticketFk);
if (!isEditable)
throw new UserError(`The current ticket can't be modified`);
});
2019-04-23 09:25:49 +00:00
};