const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { Self.validatesPresenceOf('typeFk', { message: 'Sample type cannot be blank' }); Self.observe('before save', async function(ctx) { let models = Self.app.models; let data = ctx.instance; let sample = await models.Sample.findById(data.typeFk); if (sample.hasCompany && !data.companyFk) throw new UserError('Choose a company'); let filter = {where: {userFk: ctx.options.accessToken.userId}}; let worker = await Self.app.models.Worker.findOne(filter); data.workerFk = worker.id; }); };