salix/services/production/common/methods/ticket-state/change-state.js

57 lines
1.5 KiB
JavaScript

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);
});
}
}