Skip to content

Commit 36af4ee

Browse files
committed
(job): REC-202 Job para eliminar recetas con estado "eliminada"
1 parent c8c4e0c commit 36af4ee

2 files changed

Lines changed: 34 additions & 0 deletions

File tree

jobs/eliminarRecetas.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { eliminarRecetas } from './../modules/recetas/recetasController';
2+
3+
async function run(done) {
4+
await eliminarRecetas(done);
5+
}
6+
7+
export = run;

modules/recetas/recetasController.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -776,3 +776,30 @@ export async function actualizarEstadosRecetas(done) {
776776
done();
777777
}
778778

779+
/**
780+
* Elimina recetas con estado "eliminada" y con fecha de cambio de estado mayor a 6 meses.
781+
* @param done
782+
*/
783+
export async function eliminarRecetas(done) {
784+
let totalRecetasAEliminar = 0;
785+
let totalRecetasEliminadas = 0;
786+
let query = {};
787+
try {
788+
const fechaEliminacion: any = await RecetasParametros.findOne({ key: 'fechaEliminacion' });
789+
const days = (fechaEliminacion && fechaEliminacion.value) ? Number(fechaEliminacion.value) : 180;
790+
const fechaLimite = moment().subtract(days, 'days').toDate();
791+
query = {
792+
'estadoActual.tipo': 'eliminada',
793+
'estadoActual.createdAt': { $lte: fechaLimite }
794+
};
795+
totalRecetasAEliminar = await Receta.countDocuments(query);
796+
const result = await Receta.deleteMany(query);
797+
totalRecetasEliminadas = result.deletedCount || 0;
798+
await jobsLog.info('eliminarRecetas', { totalRecetasAEliminar, totalRecetasEliminadas, query });
799+
} catch (err) {
800+
await jobsLog.error('eliminarRecetas', { totalRecetasEliminadas, totalRecetasAEliminar, query }, err);
801+
return (done(err));
802+
}
803+
done();
804+
}
805+

0 commit comments

Comments
 (0)