[ERP-46] Exposer le référentiel CategoryType en lecture seule #18

Merged
malio merged 3 commits from feature/ERP-46-exposer-category-type-lecture-seule into develop 2026-05-28 09:45:07 +00:00
Owner

Contexte

Ticket Lesstime #46 — position 0.4 (M0 Catalog, quick win).

Expose CategoryType en lecture seule pour alimenter le <MalioSelect> du formulaire Category côté front. Pas d'écriture exposée au M0 (table vide à la livraison).

Mode stacked PR

Cible (base branch) : feature/ERP-45-implementer-provider-processor-category (PAS develop).
Quand MR ERP-45 sera mergée sur develop, repointer la cible de cette MR vers develop.

Changement

Le gros du travail (#[ApiResource(operations: [GetCollection, Get])], security is_granted('catalog.categories.view'), groupes de sérialisation) a été livré dans le ticket ERP-44. Cette MR ajoute uniquement ce qui manquait à la spec § 4.6 :

  • order: ['label' => 'ASC'] sur l'opération GetCollection → tri alphabétique stable pour le select front.

Critères d'acceptation (spec § 4.6)

  • GET /api/category_types retourne tous les CategoryType triés par label ASC
  • GET /api/category_types/{id} retourne le détail
  • POST / PATCH / DELETE → 404 (opérations non déclarées)
  • Security is_granted('catalog.categories.view') sur les 2 opérations
  • make php-cs-fixer-allow-risky passe (0 fix)

Vérifications

```
$ php bin/console debug:router | grep category_type
api/category_types{._format}_get_collection GET /api/category_types.{_format}
api/category_types/{id}{._format}_get GET /api/category_types/{id}.{_format}
```

→ Exactement 2 routes générées, aucune POST/PATCH/DELETE.

  • `make php-cs-fixer-allow-risky` ✓ (0 fix)
  • `make test` ✓ (248/248)
## Contexte Ticket Lesstime #46 — position 0.4 (M0 Catalog, quick win). Expose `CategoryType` en lecture seule pour alimenter le `<MalioSelect>` du formulaire `Category` côté front. Pas d'écriture exposée au M0 (table vide à la livraison). ## Mode stacked PR ⚠ **Cible (base branch) : `feature/ERP-45-implementer-provider-processor-category`** (PAS develop). Quand MR ERP-45 sera mergée sur develop, repointer la cible de cette MR vers develop. ## Changement Le gros du travail (`#[ApiResource(operations: [GetCollection, Get])]`, security `is_granted('catalog.categories.view')`, groupes de sérialisation) a été livré dans le ticket ERP-44. Cette MR ajoute uniquement ce qui manquait à la spec § 4.6 : - `order: ['label' => 'ASC']` sur l'opération `GetCollection` → tri alphabétique stable pour le select front. ## Critères d'acceptation (spec § 4.6) - [x] `GET /api/category_types` retourne tous les `CategoryType` triés par `label ASC` - [x] `GET /api/category_types/{id}` retourne le détail - [x] POST / PATCH / DELETE → 404 (opérations non déclarées) - [x] Security `is_granted('catalog.categories.view')` sur les 2 opérations - [x] `make php-cs-fixer-allow-risky` passe (0 fix) ## Vérifications \`\`\` $ php bin/console debug:router | grep category_type _api_/category_types{._format}_get_collection GET /api/category_types.{_format} _api_/category_types/{id}{._format}_get GET /api/category_types/{id}.{_format} \`\`\` → Exactement 2 routes générées, aucune POST/PATCH/DELETE. - \`make php-cs-fixer-allow-risky\` ✓ (0 fix) - \`make test\` ✓ (248/248)
malio changed target branch from feature/ERP-45-implementer-provider-processor-category to develop 2026-05-28 09:44:46 +00:00
matthieu added 3 commits 2026-05-28 09:44:59 +00:00
- remplace build:dist (nuxt generate + prerender inutile en SPA) par nuxt build
- cache node_modules sur hash du lockfile, npm ci uniquement en cache miss
- regenere les types Nuxt (postinstall) en cache hit
- cache des artefacts .nuxt / Vite avec restore-keys pour eviter le build a froid
Les logs montrent que chaque operation actions/cache attend ~4m30 avant
ETIMEDOUT sur le serveur de cache du runner Gitea (51.91.78.99:39531) :
- cache: npm de setup-node = tout le 'Setup Node 22' (271s)
- cache node_modules et cache .nuxt : timeouts additionnels
- cache Composer cote backend : meme risque

Node 22 est deja dans le tool-cache (install instantane), npm ci a froid
~30s, build ~20s : le caching n'apportait rien ici. A re-activer si le
serveur de cache du runner est repare.
feat(catalog) : expose CategoryType as read-only ApiResource with default label ASC sort
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m14s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m10s
767bd4497a
matthieu force-pushed feature/ERP-46-exposer-category-type-lecture-seule from bc4e47d5ad to 767bd4497a 2026-05-28 09:44:59 +00:00 Compare
malio merged commit adda62c1e1 into develop 2026-05-28 09:45:07 +00:00
malio deleted branch feature/ERP-46-exposer-category-type-lecture-seule 2026-05-28 09:45:08 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MALIO-DEV/Starseed#18