removeFile and filter refactors

This commit is contained in:
Carlos Jimenez Ruiz 2021-03-29 15:18:49 +02:00
parent 8d8bdacd86
commit de2a17e840
2 changed files with 59 additions and 30 deletions

View File

@ -20,17 +20,37 @@ module.exports = Self => {
}
});
Self.removeFile = async(ctx, id) => {
const models = Self.app.models;
const dms = await models.Dms.findById(id);
const trashDmsType = await models.DmsType.findOne({
where: {code: 'trash'}
});
Self.removeFile = async(ctx, id, options) => {
let tx;
let myOptions = {};
const hasWriteRole = await models.DmsType.hasWriteRole(ctx, dms.dmsTypeFk);
if (!hasWriteRole)
throw new UserError(`You don't have enough privileges`);
if (typeof options == 'object')
Object.assign(myOptions, options);
return dms.updateAttribute('dmsTypeFk', trashDmsType.id);
if (!myOptions.transaction) {
tx = await Self.beginTransaction({});
myOptions.transaction = tx;
}
try {
const models = Self.app.models;
const dms = await models.Dms.findById(id, null, myOptions);
const trashDmsType = await models.DmsType.findOne({
where: {code: 'trash'}
}, myOptions);
const hasWriteRole = await models.DmsType.hasWriteRole(ctx, dms.dmsTypeFk, myOptions);
if (!hasWriteRole)
throw new UserError(`You don't have enough privileges`);
await dms.updateAttribute('dmsTypeFk', trashDmsType.id, myOptions);
if (tx) await tx.commit();
return dms;
} catch (e) {
if (tx) await tx.rollback();
throw e;
}
};
};

View File

@ -10,58 +10,67 @@ module.exports = Self => {
accepts: [
{
arg: 'filter',
type: 'Object',
type: 'object',
description: 'Filter defining where, order, offset, and limit - must be a JSON-encoded string',
http: {source: 'query'}
}, {
},
{
arg: 'tags',
type: ['Object'],
type: ['object'],
description: 'List of tags to filter with',
http: {source: 'query'}
}, {
},
{
arg: 'search',
type: 'String',
type: 'string',
description: `If it's and integer searchs by id, otherwise it searchs by client name`,
http: {source: 'query'}
}, {
},
{
arg: 'client',
type: 'String',
type: 'string',
description: 'The worker name',
http: {source: 'query'}
}, {
},
{
arg: 'id',
type: 'Integer',
type: 'integer',
description: 'The claim id',
http: {source: 'query'}
}, {
},
{
arg: 'clientFk',
type: 'Integer',
type: 'integer',
description: 'The client id',
http: {source: 'query'}
}, {
},
{
arg: 'claimStateFk',
type: 'Integer',
type: 'integer',
description: 'The claim state id',
http: {source: 'query'}
}, {
},
{
arg: 'salesPersonFk',
type: 'Integer',
type: 'integer',
description: 'The salesPerson id',
http: {source: 'query'}
}, {
},
{
arg: 'attenderFk',
type: 'Integer',
type: 'integer',
description: 'The attender worker id',
http: {source: 'query'}
}, {
},
{
arg: 'created',
type: 'Date',
type: 'date',
description: 'The to date filter',
http: {source: 'query'}
}
],
returns: {
type: ['Object'],
type: ['object'],
root: true
},
http: {