const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { Self.observe('before save', async ctx => { const models = Self.app.models; let changes = ctx.currentInstance || ctx.instance; if (changes) { let ticketId = changes.ticketFk; let isLocked = await models.Ticket.isLocked(ticketId); if (isLocked) throw new UserError(`The current ticket can't be modified`); if (changes.ticketServiceTypeFk) { const ticketServiceType = await models.TicketServiceType.findById(changes.ticketServiceTypeFk); changes.description = ticketServiceType.name; } } }); Self.observe('before delete', async ctx => { const models = Self.app.models; const service = await models.TicketService.findById(ctx.where.id); const isLocked = await models.Ticket.isLocked(service.ticketFk); if (isLocked) throw new UserError(`The current ticket can't be modified`); }); };