110 lines
1.9 KiB
TypeScript
110 lines
1.9 KiB
TypeScript
import auditLogModel from "./auditLog.model";
|
|
import { IAuditLog } from "./auditLog.interface";
|
|
|
|
export class AuditLogService {
|
|
|
|
|
|
//Registrar una acción
|
|
async create(
|
|
data:IAuditLog
|
|
){
|
|
const auditLog = new auditLogModel(data);
|
|
|
|
return await auditLog.save();
|
|
}
|
|
|
|
//Obtener todos los registros
|
|
|
|
async getAll(){
|
|
|
|
return await auditLogModel
|
|
.find()
|
|
.populate("userId")
|
|
.sort({
|
|
createdAt: -1
|
|
});
|
|
}
|
|
|
|
async getById(
|
|
id:string
|
|
){
|
|
return await auditLogModel
|
|
.findById(id)
|
|
.populate("userId");
|
|
}
|
|
|
|
async getByUser(
|
|
userId:string
|
|
){
|
|
return await auditLogModel
|
|
.find({
|
|
userId
|
|
})
|
|
.sort({
|
|
createdAt: -1
|
|
})
|
|
}
|
|
|
|
async getByModule(
|
|
module:IAuditLog["module"]
|
|
){
|
|
return await auditLogModel
|
|
.find({
|
|
module
|
|
})
|
|
.populate("userId")
|
|
.sort({
|
|
createdAt: -1
|
|
});
|
|
}
|
|
|
|
async getByAction(
|
|
action:IAuditLog["action"]
|
|
){
|
|
return await auditLogModel
|
|
.find({
|
|
action
|
|
})
|
|
.populate("userId")
|
|
.sort({
|
|
createdAt: -1
|
|
})
|
|
}
|
|
|
|
async getByStatus(
|
|
status:IAuditLog["status"]
|
|
){
|
|
return await auditLogModel
|
|
.find({
|
|
status
|
|
})
|
|
.populate("userId")
|
|
.sort({
|
|
createdAt: -1
|
|
})
|
|
}
|
|
|
|
async getByDateRange(
|
|
startDate:Date,
|
|
endDate:Date
|
|
){
|
|
|
|
return await auditLogModel
|
|
.find({
|
|
createdAt:{
|
|
$gte:startDate,
|
|
$lte:endDate
|
|
}
|
|
})
|
|
.populate("userId")
|
|
.sort({
|
|
createdAt: -1
|
|
})
|
|
}
|
|
|
|
async delete(
|
|
id:string
|
|
){
|
|
return await auditLogModel.findById(id);
|
|
}
|
|
} |