refactor(nestjs): import module

This commit is contained in:
Ahmed Bouhuolia
2025-04-09 10:39:08 +02:00
parent e8f1fedf35
commit d851e5b646
18 changed files with 192 additions and 133 deletions

View File

@@ -1,34 +1,36 @@
import * as moment from 'moment';
import bluebird from 'bluebird';
import { deleteImportFile } from './_utils';
import { Injectable } from '@nestjs/common';
import { Import } from './models/Import';
import { Inject, Injectable } from '@nestjs/common';
import { ImportModel } from './models/Import';
@Injectable()
export class ImportDeleteExpiredFiles {
constructor(
@Inject(ImportModel.name)
private readonly importModel: typeof ImportModel,
) {}
/**
* Delete expired files.
*/
async deleteExpiredFiles() {
const yesterday = moment().subtract(1, 'hour').format('YYYY-MM-DD HH:mm');
const expiredImports = await Import.query().where(
'createdAt',
'<',
yesterday
);
const expiredImports = await this.importModel
.query()
.where('createdAt', '<', yesterday);
await bluebird.map(
expiredImports,
async (expiredImport) => {
await deleteImportFile(expiredImport.filename);
},
{ concurrency: 10 }
{ concurrency: 10 },
);
const expiredImportsIds = expiredImports.map(
(expiredImport) => expiredImport.id
(expiredImport) => expiredImport.id,
);
if (expiredImportsIds.length > 0) {
await Import.query().whereIn('id', expiredImportsIds).delete();
await this.importModel.query().whereIn('id', expiredImportsIds).delete();
}
}
}