57 lines
1.5 KiB
JavaScript
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);
|
|
});
|
|
}
|
|
|
|
|
|
} |