WIP still, tuning up auth and room wildcard with middleware

This commit is contained in:
Nate Anderson
2025-02-02 19:49:11 -07:00
parent 37e168e46b
commit 544d3b45ba
18 changed files with 369 additions and 94 deletions
+57
View File
@@ -0,0 +1,57 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint, implicit_dynamic_list_literal
import 'dart:io';
import 'package:dart_frog/dart_frog.dart';
import '../main.dart' as entrypoint;
import '../routes/index.dart' as index;
import '../routes/create_room.dart' as create_room;
import '../routes/room/[roomCode]/join.dart' as room_$room_code_join;
import '../routes/auth/index.dart' as auth_index;
import '../routes/_middleware.dart' as middleware;
import '../routes/room/[roomCode]/_middleware.dart' as room_$room_code_middleware;
void main() async {
final address = InternetAddress.tryParse('') ?? InternetAddress.anyIPv6;
final port = int.tryParse(Platform.environment['PORT'] ?? '8080') ?? 8080;
hotReload(() => createServer(address, port));
}
Future<HttpServer> createServer(InternetAddress address, int port) {
final handler = Cascade().add(buildRootHandler()).handler;
return entrypoint.run(handler, address, port);
}
Handler buildRootHandler() {
final pipeline = const Pipeline().addMiddleware(middleware.middleware);
final router = Router()
..mount('/auth', (context) => buildAuthHandler()(context))
..mount('/room/<roomCode>', (context,roomCode,) => buildRoom$roomCodeHandler(roomCode,)(context))
..mount('/', (context) => buildHandler()(context));
return pipeline.addHandler(router);
}
Handler buildAuthHandler() {
final pipeline = const Pipeline();
final router = Router()
..all('/', (context) => auth_index.onRequest(context,));
return pipeline.addHandler(router);
}
Handler buildRoom$roomCodeHandler(String roomCode,) {
final pipeline = const Pipeline().addMiddleware(room_$room_code_middleware.middleware);
final router = Router()
..all('/join', (context) => room_$room_code_join.onRequest(context,roomCode,));
return pipeline.addHandler(router);
}
Handler buildHandler() {
final pipeline = const Pipeline();
final router = Router()
..all('/', (context) => index.onRequest(context,))..all('/create_room', (context) => create_room.onRequest(context,));
return pipeline.addHandler(router);
}