• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ULL-ESIT-INF-DSI-2526 / grp02-medcore-api-groupd / 25636325421

10 May 2026 06:24PM UTC coverage: 91.921% (+0.6%) from 91.312%
25636325421

push

github

eduzu
feat: record delete and modify controllers

117 of 123 branches covered (95.12%)

Branch coverage included in aggregate %.

56 of 58 new or added lines in 3 files covered. (96.55%)

486 of 533 relevant lines covered (91.18%)

8.91 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

95.24
/src/controller/record/deleteRecord.controller.ts
1
import { Request, Response } from 'express';
2
import mongoose from 'mongoose';
3
import { Record } from '../../models/records/recordSchema.js';
4
import { Medication } from '../../models/medications/medicationSchema.js';
5

6
/**
7
 * Función auxiliar para restaurar el stock de los medicamentos
8
 * antes de eliminar el registro.
9
 */
10
async function restoreMedicationStock(medicationList: any[]) {
11
  for (const item of medicationList) {
1✔
12
    const med = await Medication.findById(item.medication);
1✔
13
    
14
    if (med) {
1✔
15
      med.stock += item.amount;
1✔
16
      await med.save();
1✔
17
    }
18
  }
19
}
20

21
/**
22
 * Controlador para borrar un registro médico.
23
 * Implementa la reversion de stock de medicamentos.
24
 */
25
export async function deleteRecord(req: Request, res: Response) {
26
try {
4✔
27
    const { id } = req.params;
4✔
28
    if (!mongoose.isValidObjectId(id)) {
4✔
29
      return res.status(400).json({ error: 'ID de registro no válido' });
1✔
30
    }
31

32
    const record = await Record.findById(id); 
3✔
33

34
    if (!record) {
3✔
35
      return res.status(404).json({ error: 'Registro médico no encontrado' });
1✔
36
    }
37

38
    if (record.medicationList && record.medicationList.length > 0) {
2✔
39
      await restoreMedicationStock(record.medicationList);
1✔
40
    }
41

42
    await Record.findByIdAndDelete(id);
2✔
43

44
    return res.status(200).json({ message: 'Registro eliminado correctamente...' });
2✔
45
  } catch (error: any) {
NEW
46
    return res.status(500).json({ error: error.message });
×
47
  }
48
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc