dart user service, dependency injection with riverpod

This commit is contained in:
2025-01-01 12:05:39 +00:00
parent cf3c34fb2f
commit bdd4042cef
22 changed files with 502 additions and 115 deletions
@@ -0,0 +1,25 @@
import 'package:backend_dart/application/user_service/user_service_provider.dart';
import 'package:riverpod/riverpod.dart';
import 'package:shelf/shelf.dart';
import 'package:shelf_router/shelf_router.dart';
Router getRouter(ProviderContainer container) {
final router = Router();
// Welcome and health routes
router.get('/', (Request request) {
return Response.ok('Welcome to ActaTempus!');
});
router.get('/health', (Request request) {
return Response.ok('Server is running');
});
// UserService instanzieren
final userService = container.read(userServiceProvider);
// UserService-Router an Haupt-Router binden
router.mount('/users/', userService.router.call);
return router;
}
+24 -9
View File
@@ -1,21 +1,36 @@
import 'dart:io';
import 'package:riverpod/riverpod.dart';
import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart' as shelf_io;
import 'package:backend_dart/infrastructure/config/config.dart';
import 'router.dart';
class Server {
final Config config;
Server(this.config);
Future<void> start() async {
final server =
await HttpServer.bind(InternetAddress.anyIPv4, int.parse(config.port));
print('Listening on port ${config.port}');
Future<HttpServer> start() async {
final container = ProviderContainer();
// Load the router from the router file
final router = getRouter(container);
await for (HttpRequest request in server) {
request.response
..write('Welcome to ActaTempus!')
..close();
}
// Define the pipeline and attach the router
final handler = Pipeline()
.addMiddleware(logRequests()) // Logs all incoming requests
.addHandler(router.call);
// Start the server
final server = await shelf_io.serve(
handler,
InternetAddress.anyIPv4,
int.parse(config.port),
);
print('Server listening on port ${server.port}');
return server;
}
}