File size: 972 Bytes
0dc7194
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
 * Helpers para respuestas HTTP estandarizadas y manejo de errores.
 *
 * Funciones de respuesta exitosa:
 *   - ok(res, data, meta)      → 200 con { ok: true, data } y meta opcional.
 *   - created(res, data)       → 201 con { ok: true, data }.
 *   - noContent(res)           → 204 sin body.
 *
 * Clase HttpError:
 *   - Extiende Error nativo.
 *   - Campos: status (HTTP), code (string identificador), message, details (opcional).
 *   - Usada por middlewares y servicios para propagar errores controlados.
 */

export const ok = (res, data, meta) =>
  res.status(200).json(meta ? { ok: true, data, meta } : { ok: true, data });

export const created = (res, data) => res.status(201).json({ ok: true, data });

export const noContent = (res) => res.status(204).end();

export class HttpError extends Error {
  constructor(status, code, message, details) {
    super(message);
    this.status = status;
    this.code = code;
    this.details = details;
  }
}