Supprimer le véhicule de livraison

Ce document explique comment supprimer un véhicule de livraison. Il suppose que vous avez configuré Fleet Engine. Consultez Configurer Fleet Engine.

Principes de base de la suppression des véhicules de livraison

Votre système peut utiliser Fleet Engine pour supprimer un véhicule de livraison dans les cas suivants:

  • Pour effectuer des opérations de nettoyage lors des tests des API Fleet Engine.
  • Pour supprimer immédiatement un véhicule de livraison qui n'est plus nécessaire.

Pour supprimer un véhicule de livraison, envoyez une requête à l'aide de gRPC ou de REST.

  • Méthode DeleteDeliveryVehicle(): gRPC ou REST
  • Message DeleteDeliveryVehicleRequest: gRPC uniquement

Utilisez les identifiants appropriés pour le compte de service de votre projet, comme décrit dans la section Fleet Engine: rôles de compte de service.

Exemple: delete delivery vehicle

JavaREST

L'exemple suivant montre comment utiliser la bibliothèque Java gRPC pour supprimer un véhicule de livraison.

  static final String PROJECT_ID = "my-rideshare-co-gcp-project";
  static final String VEHICLE_ID = "vehicle-8241890";

  String deliveryVehicleName = "providers/" + PROJECT_ID + "/deliveryVehicles/" + VEHICLE_ID;

  DeliveryServiceBlockingStub deliveryService = DeliveryServiceGrpc.newBlockingStub(channel);

  // Delete Vehicle request
  DeleteDeliveryVehicleRequest deleteDeliveryVehicleRequest =
      DeleteDeliveryVehicleRequest.newBuilder().setName(deliveryVehicleName).build();

  try {
    deliveryService.deleteDeliveryVehicle(deleteDeliveryVehicleRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case NOT_FOUND:            // The delivery vehicle doesn't exist.
         break;
       case FAILED_PRECONDITION:  // There are tasks(s) that reference delivery vehicle.
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }

L'exemple suivant montre comment supprimer un véhicule de livraison de Fleet Engine à l'aide de REST en appelant DeleteDeliveryVehicle.

  # DELETE https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles/<vehicleId>
  # Set JWT, PROJECT_ID, and VEHICLE_ID in the local environment
  curl -X DELETE -H "Authorization: Bearer ${JWT}" \
    "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryvehicles/${VEHICLE_ID}"

Si l'opération de suppression aboutit, l'API renvoie une réponse vide.

Gérer les erreurs

Lorsque vous supprimez un véhicule de livraison, vous pouvez rencontrer une erreur FAILED_PRECONDITION. Dans ce cas, une ou plusieurs tâches font référence au véhicule de livraison. Pour supprimer le contenu:

  1. Appelez ListTasks pour trouver la ou les tâches qui font référence au véhicule de livraison.
  2. Appelez DeleteTask pour supprimer chacune des tâches trouvées.

Étape suivante