refactor: delete file
gitea/salix/pipeline/head This commit looks good Details

This commit is contained in:
Vicent Llopis 2022-04-29 08:23:35 +02:00
parent 579ff3aa4a
commit c10e4c04b6
1 changed files with 0 additions and 63 deletions

View File

@ -1,63 +0,0 @@
const fs = require('fs-extra');
const path = require('path');
module.exports = Self => {
Self.remoteMethodCtx('deleteOldFiles', {
description: 'Delete files that are 6 months old from dms',
accessType: 'WRITE',
returns: {
type: 'object',
root: true
},
http: {
path: `/deleteOldFiles`,
verb: 'POST'
}
});
Self.deleteOldFiles = async(ctx, options) => {
const tx = await Self.beginTransaction({});
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);
if (!myOptions.transaction)
myOptions.transaction = tx;
try {
const models = Self.app.models;
const sixMonthsAgo = new Date();
sixMonthsAgo.setMonth(sixMonthsAgo.getMonth() - 6);
const claimDmsType = await models.DmsType.findOne({where: {code: 'claim'}}, myOptions);
const oldDms = await models.Dms.find({
where: {
and: [{
created: {lt: sixMonthsAgo}}, {
dmsTypeFk: claimDmsType.id
}]
}
});
for (let dms of oldDms) {
const ClaimContainer = models.ClaimContainer;
const pathHash = await ClaimContainer.getHash(dms.id);
const claimContainer = await ClaimContainer.container(pathHash);
const dstFile = path.join(claimContainer.client.root, pathHash, dms.file);
await fs.unlink(dstFile);
await models.ClaimDms.removeFile(ctx, dms.id);
}
if (tx) await tx.commit();
return oldDms;
} catch (e) {
if (tx) await tx.rollback();
if (fs.existsSync(srcFile))
await fs.unlink(srcFile);
throw e;
}
};
};