Scaffold backend gateway and integration docs

This commit is contained in:
Rijad Zuzo
2026-02-14 20:10:16 +01:00
commit 577c4b33b7
166 changed files with 13382 additions and 0 deletions
@@ -0,0 +1,55 @@
import 'dart:convert';
import 'dart:typed_data';
import 'package:dio/dio.dart';
/// Sequential fake adapter for deterministic Dio unit tests.
typedef AdapterHandler =
Future<ResponseBody> Function(
RequestOptions options,
Stream<Uint8List>? requestStream,
Future<void>? cancelFuture,
);
class QueueHttpClientAdapter implements HttpClientAdapter {
QueueHttpClientAdapter(List<AdapterHandler> handlers)
: _handlers = List<AdapterHandler>.from(handlers);
final List<AdapterHandler> _handlers;
int fetchCount = 0;
@override
void close({bool force = false}) {}
@override
Future<ResponseBody> fetch(
RequestOptions options,
Stream<Uint8List>? requestStream,
Future<void>? cancelFuture,
) async {
if (fetchCount >= _handlers.length) {
throw StateError(
'No queued response for ${options.method} ${options.path} at call $fetchCount',
);
}
final AdapterHandler handler = _handlers[fetchCount];
fetchCount += 1;
return handler(options, requestStream, cancelFuture);
}
}
ResponseBody jsonResponse(
int statusCode,
Map<String, dynamic> body, {
Map<String, List<String>> headers = const <String, List<String>>{},
}) {
return ResponseBody.fromString(
jsonEncode(body),
statusCode,
headers: <String, List<String>>{
Headers.contentTypeHeader: <String>[Headers.jsonContentType],
...headers,
},
);
}