Files
Holzleitner-Lieferservice-App/packages/holzleitner_api/doc/DeliveriesApi.md
Dennis Nemec 8cf4045e44 Phase A: generierter Dart-Client + DI-Foundation für Rust-Backend
OpenAPI-Generator-Setup:
- tool/generate_api_client.sh: Direkter Aufruf der openapi-generator-cli.jar
  (Java-CLI statt Dart-build_runner-Integration — vermeidet die
  analyzer-/source_gen-Version-Hölle mit json_serializable)
- tool/fetch_openapi_generator.sh: lädt die JAR (29 MB) nach (gitignored)
- openapi/holzleitner.json: Snapshot der Backend-Spec für reproduzierbare
  Generation
- packages/holzleitner_api/: generiertes Dart-Sub-Package (built_value +
  dio), per path-dep im Haupt-pubspec eingehängt

Netzwerk-Layer (lib/data/network/):
- BackendConfig: API- und Keycloak-Endpoints für Local-Dev (localhost
  wegen Keycloak-iss-Claim).
- AuthTokenProvider-Schnittstelle.
- DevPasswordGrantTokenProvider: Phase-A-Provider via Keycloak
  password-grant, Token-Caching mit Expiry-Check (Phase B ersetzt das
  durch flutter_appauth PKCE).
- HolzleitnerAuthInterceptor: dynamischer Bearer-Inject pro Request.
- HolzleitnerApiFactory: baut die generierte HolzleitnerApi-Klasse
  mit unserem Interceptor statt der vier Default-Auth-Interceptors.
- network_locator.registerNetworking(): get_it-Setup, in main() vor
  runApp() aufgerufen.

Clean-Arch-Scaffolding (lib/data/, lib/domain/):
- Verzeichnisstruktur für Phase C+D angelegt (mapper/, repository/,
  entity/, repository/) — befüllt sich in den Folge-Phasen.

Smoke-Test:
- tool/smoke_test_api.dart ruft /health (ungeschützt) und /me/cars
  (mit Bearer) via generiertem Client — grün gegen lokales Backend.
2026-05-14 22:44:51 +02:00

8.6 KiB

holzleitner_api.api.DeliveriesApi

Load the API package

import 'package:holzleitner_api/api.dart';

All URIs are relative to http://localhost

Method HTTP request Description
assignCar PUT /deliveries/{delivery_id}/assigned-car Setzt das `assigned_car_id` einer Lieferung. `carId: null` löst die Zuordnung wieder. Der Use Case stellt sicher, dass das Fahrzeug zum angemeldeten Account gehört.
cancel POST /deliveries/{delivery_id}/cancel Setzt die Lieferung auf `canceled` — endgültig. Erlaubt aus `active` und `held`.
complete POST /deliveries/{delivery_id}/complete Schließt die Lieferung ab — `state = completed`. Nur aus `active`.
createNote POST /deliveries/{delivery_id}/notes Legt eine neue Notiz an einer Lieferung an. Mindestens eines von `text` und `imageAttachment` muss inhaltlich gefüllt sein (Leerstrings werden serverseitig getrimmt und als leer behandelt).
hold POST /deliveries/{delivery_id}/hold Setzt die Lieferung auf `held`. Nur aus `active` zulässig.
resume POST /deliveries/{delivery_id}/resume Setzt die Lieferung zurück auf `active`. Nur aus `held` zulässig.

assignCar

DeliveryResponse assignCar(deliveryId, assignCarRequest)

Setzt das assigned_car_id einer Lieferung. carId: null löst die Zuordnung wieder. Der Use Case stellt sicher, dass das Fahrzeug zum angemeldeten Account gehört.

Example

import 'package:holzleitner_api/api.dart';

final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | 
final AssignCarRequest assignCarRequest = ; // AssignCarRequest | 

try {
    final response = api.assignCar(deliveryId, assignCarRequest);
    print(response);
} catch on DioException (e) {
    print('Exception when calling DeliveriesApi->assignCar: $e\n');
}

Parameters

Name Type Description Notes
deliveryId String
assignCarRequest AssignCarRequest

Return type

DeliveryResponse

Authorization

bearer_auth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

cancel

DeliveryResponse cancel(deliveryId, cancelDeliveryRequest)

Setzt die Lieferung auf canceled — endgültig. Erlaubt aus active und held.

Example

import 'package:holzleitner_api/api.dart';

final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | 
final CancelDeliveryRequest cancelDeliveryRequest = ; // CancelDeliveryRequest | 

try {
    final response = api.cancel(deliveryId, cancelDeliveryRequest);
    print(response);
} catch on DioException (e) {
    print('Exception when calling DeliveriesApi->cancel: $e\n');
}

Parameters

Name Type Description Notes
deliveryId String
cancelDeliveryRequest CancelDeliveryRequest

Return type

DeliveryResponse

Authorization

bearer_auth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

complete

DeliveryResponse complete(deliveryId)

Schließt die Lieferung ab — state = completed. Nur aus active.

Example

import 'package:holzleitner_api/api.dart';

final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | 

try {
    final response = api.complete(deliveryId);
    print(response);
} catch on DioException (e) {
    print('Exception when calling DeliveriesApi->complete: $e\n');
}

Parameters

Name Type Description Notes
deliveryId String

Return type

DeliveryResponse

Authorization

bearer_auth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

createNote

DeliveryNoteResponse createNote(deliveryId, createDeliveryNoteRequest)

Legt eine neue Notiz an einer Lieferung an. Mindestens eines von text und imageAttachment muss inhaltlich gefüllt sein (Leerstrings werden serverseitig getrimmt und als leer behandelt).

Example

import 'package:holzleitner_api/api.dart';

final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | 
final CreateDeliveryNoteRequest createDeliveryNoteRequest = ; // CreateDeliveryNoteRequest | 

try {
    final response = api.createNote(deliveryId, createDeliveryNoteRequest);
    print(response);
} catch on DioException (e) {
    print('Exception when calling DeliveriesApi->createNote: $e\n');
}

Parameters

Name Type Description Notes
deliveryId String
createDeliveryNoteRequest CreateDeliveryNoteRequest

Return type

DeliveryNoteResponse

Authorization

bearer_auth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

hold

DeliveryResponse hold(deliveryId, holdDeliveryRequest)

Setzt die Lieferung auf held. Nur aus active zulässig.

Example

import 'package:holzleitner_api/api.dart';

final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | 
final HoldDeliveryRequest holdDeliveryRequest = ; // HoldDeliveryRequest | 

try {
    final response = api.hold(deliveryId, holdDeliveryRequest);
    print(response);
} catch on DioException (e) {
    print('Exception when calling DeliveriesApi->hold: $e\n');
}

Parameters

Name Type Description Notes
deliveryId String
holdDeliveryRequest HoldDeliveryRequest

Return type

DeliveryResponse

Authorization

bearer_auth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

resume

DeliveryResponse resume(deliveryId)

Setzt die Lieferung zurück auf active. Nur aus held zulässig.

Example

import 'package:holzleitner_api/api.dart';

final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | 

try {
    final response = api.resume(deliveryId);
    print(response);
} catch on DioException (e) {
    print('Exception when calling DeliveriesApi->resume: $e\n');
}

Parameters

Name Type Description Notes
deliveryId String

Return type

DeliveryResponse

Authorization

bearer_auth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]