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