Skip to content

feat: portage ancienne API + enveloppe data systématique sur les réponses#14

Open
lucas-luchack wants to merge 6 commits into
mainfrom
feat/apply-old-api-changes
Open

feat: portage ancienne API + enveloppe data systématique sur les réponses#14
lucas-luchack wants to merge 6 commits into
mainfrom
feat/apply-old-api-changes

Conversation

@lucas-luchack

@lucas-luchack lucas-luchack commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Contexte

Cette PR porte les fonctionnalités de l'ancienne API vers Adonis et standardise le format des réponses (enveloppe data) sur l'ensemble des endpoints.

Changements

1. Portage des fonctionnalités « ancienne API »

  • Events : CRUD complet + endpoints de disponibilité (GET/POST events/:id/response) et GET events/:id/roster. Validators associés (app/validators/event.ts).
  • Stocks : GET stocks (résumé par good), GET stocks/:id/batches (lots avec quantité restante calculée FEFO), POST stocks/:id/batches/:batchId/discard. Logique métier isolée dans app/services/stock_service.ts (calcul du remaining dérivé des mouvements OUT, pas de valeur stockée).
  • Products : endpoints summary (coût + dernier prix) et :id/ingredients (recette avec stock et prix fournisseur).
  • Migrations : points sur members, duration sur events, rank/instruction sur le pivot product_goods (+ exposition via pivotColumns sur les modèles Good/Product).
  • Request logger : nouveau middleware request_logger_middleware.ts.
  • Routing : regroupement sous /v1 protégé par middleware.auth(), préfixes v1/auth et v1/account.
  • Transformers : MemberTransformer (avec role/points), ajustements UserTransformer.

2. Standardisation de l'enveloppe data

Auparavant l'enveloppe { data: ... } n'était appliquée que ponctuellement (et jamais sur les tableaux, BaseSerializer ne wrappant pas les arrays). Désormais toute réponse ayant du contenu est enveloppée :

  • providers/api_provider.ts : le serialize exporté normalise l'entrée (toPlain : modèle Lucid → .serialize(), tableau → map récursif) puis ajoute la branche manquante « tableau → { data: [...] } ».
  • 13 contrôleurs homogénéisés (categories, furnitures, permissions, suppliers, stock_batches, stock_movements, fast_passes, logs, goods, members, roles, restocks, products) : chaque réponse passe par serialize(...). events simplifié.
  • Cas primitifs (access_token.store, events.get/setResponse) : { data: <valeur> } explicite (les primitives ne sont pas enveloppées par le serializer).
  • case_converter_middleware : gère aussi BaseModel et DateTime (→ ISO) avant conversion snake_case.
  • API.md : documentation du contrat de réponse.

⚠️ Breaking change : les endpoints de liste renvoient maintenant { data: [...] } au lieu de [...]. Le front doit lire response.data.

Tests

  • Fonctionnels ajoutés/adaptés : auth_guard, event_availability, stock_summary (assertions mises à jour pour le nouveau contrat { data }).
  • tsc --noEmit passe.
  • Mécanisme d'enveloppe validé en isolation (objet / tableau / tableau vide / objet imbriqué).

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

Version Preview

Current version v0.5.0
Next version v0.6.0
Bump type minor

To override the bump type, add a label: major, minor, or patch
Or use conventional commits: feat: → minor, fix: → patch, BREAKING CHANGE → major

@lucas-luchack lucas-luchack enabled auto-merge July 9, 2026 11:08
@lucas-luchack lucas-luchack disabled auto-merge July 9, 2026 11:08
@lucas-luchack lucas-luchack enabled auto-merge July 9, 2026 11:08
@lucas-luchack lucas-luchack self-assigned this Jul 9, 2026
@lucas-luchack lucas-luchack force-pushed the feat/apply-old-api-changes branch from 0aa9783 to 7892205 Compare July 9, 2026 11:14
@gitguardian

gitguardian Bot commented Jul 11, 2026

Copy link
Copy Markdown

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
28946910 Triggered Generic Password 94206de .github/workflows/ci.yml View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant