diff --git a/src/server.cpp b/src/server.cpp index 49a7aae..6eea1f6 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -41,6 +41,17 @@ void HttpSession::processRequest(http::request&& request) { // Получаем случайный объект из БД json response = db->getRandomRecord(); res.body() = response.dump(4); + } else if (request.method() == http::verb::get && request.target().starts_with("/cards")) { + std::string number{request.target()}; + auto start = number.find("?count=") + 7; + auto end number.find("?", start); + if (end == std::string::npos) { + end = number.length(); + } + int count = std::stoi(target.substr(start, end - start)); + count = std::max(1, std::min(count, 1000)); // валидация + json response = db->getRandomRecords(count, 10, 1000); + res.body() = response.dump(4); } else if (request.method() == http::verb::get && request.target() == "/health") { json response = { {"status", "ok"}, diff --git a/src/server.hpp b/src/server.hpp index f7aeb17..fc1bdad 100644 --- a/src/server.hpp +++ b/src/server.hpp @@ -8,6 +8,7 @@ #include #include #include +#include #include "common.hpp" #include "database.hpp"