gestion_table_tournante_libre/src/application/erreurs.js

37 lines
1.2 KiB
JavaScript
Raw Normal View History

// © 2026 TechnoLibre (http://www.technolibre.ca)
// License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
// Le refus d'une commande (§ 8.2, § 14.6), que lèvent les registres de
// commandes et leurs contrôles : un code, et des détails qui portent le
// remède, details.remede, null quand aucun geste ne lève le refus.
/**
* Le refus d'une commande : son code, et des détails que l'appelant lit pour
* agir, remede compris. Le message, code et détails en JSON, sert aux traces ;
* le texte affiché vient de la table des libellés (§ 14.6).
*/
export class ErreurCommande extends Error {
/**
* @param {string} code
* @param {Object} [details]
*/
constructor(code, details = {}) {
super(`${code} ${JSON.stringify(details)}`);
this.code = code;
this.details = details;
}
}
ErreurCommande.prototype.name = 'ErreurCommande';
/**
* Le refus de code donné : ses détails, puis le remède, null sans lui.
*
* @param {string} code
* @param {Object} [details]
* @param {Object|null} [remede]
* @returns {ErreurCommande}
*/
export function refus(code, details = {}, remede = null) {
return new ErreurCommande(code, { ...details, remede });
}