init
This commit is contained in:
commit
a99248b284
25 files changed
+1876
No files matched your search
@@ -0,0 +1,59 @@
|
||||
import 'package:chat_server/config/config.dart';
|
||||
import 'package:chat_server/models.dart';
|
||||
import 'package:chat_server/objectbox.g.dart';
|
||||
import 'package:chat_server/src/auth/auth_middleware.dart';
|
||||
import 'package:chat_server/src/handlers/auth_handlers.dart';
|
||||
import 'package:chat_server/src/handlers/channel_handlers.dart';
|
||||
import 'package:chat_server/src/handlers/debug_handlers.dart';
|
||||
import 'package:chat_server/src/handlers/message_handlers.dart';
|
||||
import 'package:chat_server/src/handlers/user_handlers.dart';
|
||||
import 'package:hotreloader/hotreloader.dart';
|
||||
import 'package:relic/relic.dart';
|
||||
|
||||
// Global ObjectBox boxes
|
||||
final Store store = openStore();
|
||||
final Box<ChatUser> userBox = store.box<ChatUser>();
|
||||
final Box<ChatChannel> channelBox = store.box<ChatChannel>();
|
||||
final Box<ChatMessage> messageBox = store.box<ChatMessage>();
|
||||
|
||||
RelicApp? _currentApp;
|
||||
|
||||
Future<void> startServer() async {
|
||||
await _currentApp?.close();
|
||||
|
||||
_currentApp = RelicApp()
|
||||
// Public routes
|
||||
..post('/login', loginHandler)
|
||||
..post('/register', registerHandler)
|
||||
// Debug routes
|
||||
..get('/debug/users', debugUsersHandler)
|
||||
..get('/debug/messages', debugMessagesHandler)
|
||||
..get('/debug/clear', debugClearHandler)
|
||||
// Protected routes
|
||||
..use('/api', jwtMiddleware)
|
||||
// Channels
|
||||
..get('/api/channels', getChannelsHandler)
|
||||
..post('/api/channels', createChannelHandler)
|
||||
// Messages
|
||||
..get('/api/messages', getMessagesHandler)
|
||||
..post('/api/messages', sendMessageHandler)
|
||||
// Users
|
||||
..get('/api/users', getUsersHandler)
|
||||
// Logging & fallback
|
||||
..use('/', logRequests())
|
||||
..fallback = respondWith((_) => Response.notFound());
|
||||
|
||||
print('🚀 Server starting on http://localhost:${Config.port}');
|
||||
await _currentApp!.serve(port: Config.port);
|
||||
}
|
||||
|
||||
void main() async {
|
||||
await HotReloader.create(
|
||||
onAfterReload: (ctx) async {
|
||||
print('🔄 Changes detected! Restarting server...');
|
||||
await startServer();
|
||||
},
|
||||
);
|
||||
|
||||
await startServer();
|
||||
}
|
||||
Reference in new issue
Block a user