// server/bin/server.dart import 'dart:convert'; import 'dart:io'; import 'package:shelf/shelf.dart'; import 'package:shelf/shelf_io.dart' as io; import 'package:shelf_router/shelf_router.dart'; // Подключаем нашу модель (путь зависит от того, как назван твой пакет shared в pubspec) import 'package:shared/models/message.dart'; void main() async { final router = Router(); // Настраиваем обработчик POST-запроса на адрес /send router.post('/send', (Request request) async { // Читаем тело запроса (в виде строки) final payload = await request.readAsString(); // Превращаем строку JSON обратно в объект Message final message = Message.fromJson(payload); print('📩 Получено новое сообщение!'); print('--> Чат: ${message.chatId}'); print('--> Текст: ${message.msg}'); // Возвращаем ответ клиенту (Статус 200 OK) return Response.ok( jsonEncode({'status': 'ok'}), headers: {'Content-Type': 'application/json'}, ); }); // Pipeline добавляет удобное логирование каждого запроса в консоль final handler = Pipeline().addMiddleware(logRequests()).addHandler(router.call); // Запускаем сервер на всех интерфейсах (0.0.0.0) и порту 6432 final server = await io.serve(handler, '0.0.0.0', 6432); print('🚀 Сервер запущен на http://${server.address.host}:${server.port}'); }