module.exports = function(TicketState) { TicketState.remoteMethodCtx('changeState', { description: 'Change state of tickets', accepts: [ { arg: 'tickets', type: 'array', required: true, description: 'Array of tickets', http: {source: 'path'} }, { arg: 'state', type: 'number', required: true, description: 'New state', http: {source: 'path'} }, ], returns: { arg: 'response', type: 'boolean' }, http: { verb: 'put', path: '/:tickets/:state/changeState' } }); TicketState.changeState = function(ctx, tickets, state, cb) { TicketState.connectToService(ctx, "client"); TicketState.app.models.Employee.findOne({where: {userFk: ctx.req.accessToken.userId}}, function(err, emp){ if(!err) changeState(emp.id, tickets, state, cb); else cb(err, null); }); TicketState.disconnectFromService("client"); }; var changeState = function(emp, tickets, state, cb){ var inserts = []; tickets.forEach(function(t) { inserts.push({ticketFk: t, stateFk: state, employeeFk: emp}); }, this); TicketState.create(inserts, function(err, res){ if(!err) cb(null, res); }); } }