refs #6531 feat:showLastTickets #2045

Merged
sergiodt merged 3 commits from 6531-showTickets into test 2024-02-19 10:00:33 +00:00
4 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,3 @@
-- Place your SQL code here
INSERT INTO salix.ACL (model, property, accessType, permission, principalType, principalId)
VALUES( 'Ticket', 'myLastModified', '*', 'ALLOW', 'ROLE', 'production');

View File

@ -0,0 +1,25 @@
module.exports = Self => {
Self.remoteMethodCtx('myLastModified', {
description: 'Get list of last tickets which user has modified',
accessType: 'READ',
returns: {
type: 'object',
root: true
},
http: {
path: `/myLastModified`,
verb: 'GET'
}
});
Self.myLastModified = async ctx => {
const userId = ctx.req.accessToken.userId;
const query =
`SELECT ticketFk, MAX(created) created
FROM ticketTracking tt
WHERE tt.userFk = ?
GROUP BY ticketFk
LIMIT 5;`;
return await Self.rawSql(query, [userId]);
};
};

View File

@ -0,0 +1,10 @@
const {models} = require('vn-loopback/server/server');
describe('myLastModified()', () => {
it('return list of last tickets which user has modified', async() => {
let ctx = {req: {accessToken: {userId: 100}}};
let response = await models.Ticket.myLastModified(ctx);
expect(response.length).toBeGreaterThan(0);
});
});

View File

@ -45,4 +45,5 @@ module.exports = function(Self) {
require('../methods/ticket/invoiceTickets')(Self); require('../methods/ticket/invoiceTickets')(Self);
require('../methods/ticket/invoiceTicketsAndPdf')(Self); require('../methods/ticket/invoiceTicketsAndPdf')(Self);
require('../methods/ticket/docuwareDownload')(Self); require('../methods/ticket/docuwareDownload')(Self);
require('../methods/ticket/myLastModified')(Self);
}; };