la otra mitad del commit anterior

This commit is contained in:
2026-04-08 20:07:32 -04:00
parent 883dee0588
commit 7f5a895c12

View File

@@ -11,6 +11,16 @@ import { CreateTrainingDto } from './dto/create-training.dto';
import { TrainingStatisticsFilterDto } from './dto/training-statistics-filter.dto';
import { UpdateTrainingDto } from './dto/update-training.dto';
// TRUE: para mostrar los logs de errores en la api
// Actualmente estás solo en crear registro. Despues lo implemento en los demas
const debug = false;
type User = {
role: string;
id: number;
};
@Injectable()
export class TrainingService {
constructor(
@@ -18,7 +28,8 @@ export class TrainingService {
private readonly minioService: MinioService,
) { }
async findAll(paginationDto?: PaginationDto) {
async findAll(paginationDto?: PaginationDto, user?: User) {
const {
page = 1,
limit = 10,
@@ -34,6 +45,10 @@ export class TrainingService {
searchCondition = or(ilike(trainingSurveys.ospName, `%${search}%`));
}
if (user?.role == 'coordinators') {
searchCondition = eq(trainingSurveys.createdBy, user.id)
}
const orderBy =
sortOrder === 'asc'
? sql`${trainingSurveys[sortBy as keyof typeof trainingSurveys]} asc`
@@ -257,14 +272,16 @@ export class TrainingService {
}
}
// ========== Guardar registro ========== //
async create(
createTrainingDto: CreateTrainingDto,
files: Express.Multer.File[],
userId: number,
) {
try {
// 1. Guardar fotos
const photoPaths = await this.saveFiles(files);
// const photoPaths = [];
// 2. Extraer solo visitDate para formatearlo.
// Ya NO extraemos state, municipality, etc. porque no vienen en el DTO.
@@ -281,7 +298,7 @@ export class TrainingService {
visitDate: new Date(visitDate),
// Borra las tildes y cambia el texto a mayusculas
productiveActivityOther: productiveActivityOther.toUpperCase().normalize("NFD").replace(/[\u0300-\u036f]/g, ""),
productiveActivityOther: productiveActivityOther ? productiveActivityOther.toUpperCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "") : '',
// 3. Asignar fotos de forma segura
photo1: photoPaths[0] ?? null,
@@ -299,8 +316,13 @@ export class TrainingService {
.returning();
return newRecord;
} catch (e) {
if (debug) console.log(e);
return null // null para que de error
}
}
// ========== Actualizar registro ========== //
async update(
id: number,
updateTrainingDto: UpdateTrainingDto,
@@ -376,6 +398,7 @@ export class TrainingService {
return updatedRecord;
}
// ========== Eliminar registro ========== //
async remove(id: number) {
const record = await this.findOne(id);