API Véhicules

Endpoints de gestion des véhicules. Voir Collections vehicles, vehicle_models et vehicle_search_histories pour le schéma complet.

Tous les endpoints requièrent une authentification (authMiddleware + requireMembership).

GET /api/vehicles/lookup

Recherche un véhicule ou un modèle de véhicule selon l’identifiant fourni. Le résultat est mis en cache en base — une deuxième recherche avec le même identifiant retourne le document stocké sans appel externe.

Les lookups par plate et vin retournent un objet Vehicle (véhicule physique complet) et enregistrent une entrée dans l’historique de recherche du tenant.
Les lookups par k_type et type_mine retournent un objet VehicleModel (entrée catalogue TecDoc partagée) et n’enregistrent pas d’historique.

Paramètres de requête

Paramètre Type Requis Description

plate

string

(1)

Immatriculation (min. 5 caractères). Appelle l’API Auto-Ways. Retourne un Vehicle.

vin

string

(1)

Numéro VIN (exactement 17 caractères). Appelle l’API Auto-Ways. Retourne un Vehicle.

k_type

string

(1)

Identifiant K-Type TecDoc (entier). Appelle l’API TecDoc. Retourne un VehicleModel.

type_mine

string

(1)

Type Mine (identifiant carte grise). Appelle l’API TecDoc via getVehicleIdsByKeyNumberPlates3. Retourne un VehicleModel.

Exactement un des quatre paramètres doit être fourni. Priorité : plate > vin > type_mine > k_type.

Réponses

  • 200 — objet Vehicle (lookup plate/VIN) ou VehicleModel (lookup k_type/type_mine)

  • 404 — véhicule introuvable

  • 422 — aucun paramètre fourni, ou format invalide

  • 502 — erreur lors de l’appel à l’API externe (Auto-Ways ou TecDoc)

GET /api/vehicles/:id

Retourne un véhicule physique par son identifiant MongoDB. Le champ vehicle_model est populé avec le modèle TecDoc associé si présent.

Paramètres de route

Paramètre

Type

Description

id

string

ObjectId MongoDB du véhicule

Réponses

  • 200 — objet Vehicle avec vehicle_model populé

  • 404 — véhicule introuvable

GET /api/vehicles/history

Liste l’historique de recherche paginé du tenant courant, trié par date décroissante. Seules les recherches par immatriculation et VIN sont enregistrées. Le champ vehicle est populé avec plate, vin, brand, car_model, k_type. Le champ queried_by est populé avec first_name, last_name, email.

Paramètres de requête

Paramètre

Type

Description

page

number

Page demandée (défaut : 1)

limit

number

Résultats par page (défaut : 20)

Réponses

{
  items: VehicleSearchHistory[];
  pagination: {
    page: number;
    limit: number;
    total: number;
    pages: number;
  };
}
  • 200 — liste paginée

GET /api/vehicles/manufacturers

Retourne la liste de tous les constructeurs disponibles dans le catalogue TecDoc (véhicules particuliers, marché France). Endpoint pass-through — aucun stockage en base.

Réponses

Array<{
  manuId: number;
  mfrName: string;
}>
  • 200 — liste des constructeurs

  • 502 — erreur TecDoc

GET /api/vehicles/manufacturers/:manuId/models

Retourne les séries de modèles d’un constructeur TecDoc.

Paramètres de route

Paramètre

Type

Description

manuId

entier

Identifiant constructeur TecDoc

Réponses

Array<{
  modId: number;
  modSeries: string;
  yearOfConstrFrom?: number;
  yearOfConstrTo?: number;
}>
  • 200 — liste des séries

  • 422 — manuId non entier

  • 502 — erreur TecDoc

GET /api/vehicles/manufacturers/:manuId/models/:modId/variants

Retourne les variantes (versions) d’une série de modèles TecDoc.

Paramètres de route

Paramètre

Type

Description

manuId

entier

Identifiant constructeur TecDoc

modId

entier

Identifiant série TecDoc

Réponses

Array<{
  carTypeId: number;
  manuId: number;
  modId: number;
  description: string;
  yearOfConstrFrom?: number;
  yearOfConstrTo?: number;
  powerKwFrom?: number;
  powerKwTo?: number;
  cylinderCapacity?: number;
  engineType?: string;
}>
  • 200 — liste des variantes

  • 422 — manuId ou modId non entier

  • 502 — erreur TecDoc