dart user service, dependency injection with riverpod
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user