Files
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

138 lines
4.2 KiB
Markdown

# holzleitner_api.api.ToursApi
## Load the API package
```dart
import 'package:holzleitner_api/api.dart';
```
All URIs are relative to *http://localhost*
Method | HTTP request | Description
------------- | ------------- | -------------
[**getTour**](ToursApi.md#gettour) | **GET** /tours/{tour_id} | Lädt eine Tour mit allen Lieferungen, Positionen und referenzierten Stammdaten — die App nutzt das als einzigen großen Read.
[**listMyToursToday**](ToursApi.md#listmytourstoday) | **GET** /me/tours/today | Listet heutige Touren des angemeldeten Fahrers (Filter aus dem JWT).
[**setDeliveryOrder**](ToursApi.md#setdeliveryorder) | **PUT** /tours/{tour_id}/delivery-order | Schreibt die Sortier-Reihenfolge aller Lieferungen einer Tour neu. Der Client schickt die **vollständige** neue Reihenfolge; fehlende oder fremde Lieferungs-Ids werden mit `400 validation` abgelehnt.
# **getTour**
> TourDetails getTour(tourId)
Lädt eine Tour mit allen Lieferungen, Positionen und referenzierten Stammdaten — die App nutzt das als einzigen großen Read.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getToursApi();
final String tourId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | Eindeutige Tour-Id (UUID)
try {
final response = api.getTour(tourId);
print(response);
} catch on DioException (e) {
print('Exception when calling ToursApi->getTour: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**tourId** | **String**| Eindeutige Tour-Id (UUID) |
### Return type
[**TourDetails**](TourDetails.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **listMyToursToday**
> TourSummaryList listMyToursToday()
Listet heutige Touren des angemeldeten Fahrers (Filter aus dem JWT).
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getToursApi();
try {
final response = api.listMyToursToday();
print(response);
} catch on DioException (e) {
print('Exception when calling ToursApi->listMyToursToday: $e\n');
}
```
### Parameters
This endpoint does not need any parameter.
### Return type
[**TourSummaryList**](TourSummaryList.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **setDeliveryOrder**
> SetDeliveryOrderResponse setDeliveryOrder(tourId, setDeliveryOrderRequest)
Schreibt die Sortier-Reihenfolge aller Lieferungen einer Tour neu. Der Client schickt die **vollständige** neue Reihenfolge; fehlende oder fremde Lieferungs-Ids werden mit `400 validation` abgelehnt.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getToursApi();
final String tourId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final SetDeliveryOrderRequest setDeliveryOrderRequest = ; // SetDeliveryOrderRequest |
try {
final response = api.setDeliveryOrder(tourId, setDeliveryOrderRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling ToursApi->setDeliveryOrder: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**tourId** | **String**| |
**setDeliveryOrderRequest** | [**SetDeliveryOrderRequest**](SetDeliveryOrderRequest.md)| |
### Return type
[**SetDeliveryOrderResponse**](SetDeliveryOrderResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)