feat(api-detail): navigation entre versions + bouton nouvelle version
- GET /api/apis/:id/versions — retourne toutes les versions du même API (même name + convention), triées par version DESC - Sélecteur DSFR sur la page détail quand plusieurs versions existent ; changement de version navigue vers /catalog/:newId en rechargeant le composant via abonnement à paramMap (fix réutilisation instance Angular) - Bouton "Nouvelle version" → /upload?from=:id avec pré-remplissage du formulaire (convention, name, provider, contacts, version patch+1) - Seeder : 2 versions démo supplémentaires de "Référentiel Produits" (v3.0.3, v3.0.2) pour tester le sélecteur - Fix import ApiStatus manquant dans apis.service.ts Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { Injectable, inject } from '@angular/core';
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
import { Observable } from 'rxjs';
|
||||
import { ApiEntry, ApiListResponse, ApiListQuery } from '@datacat/shared';
|
||||
import { ApiEntry, ApiEntryListItem, ApiListResponse, ApiListQuery } from '@datacat/shared';
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class ApiService {
|
||||
@@ -45,6 +45,10 @@ export class ApiService {
|
||||
return this.http.delete<void>(`${this.baseUrl}/${id}`);
|
||||
}
|
||||
|
||||
getVersions(id: string): Observable<ApiEntryListItem[]> {
|
||||
return this.http.get<ApiEntryListItem[]>(`${this.baseUrl}/${id}/versions`);
|
||||
}
|
||||
|
||||
regenerate(id: string): Observable<ApiEntry> {
|
||||
return this.http.post<ApiEntry>(`${this.baseUrl}/${id}/regenerate`, {});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user