From 6c0b34a199cb4b88f592eca2b0a36f6c7f103884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD?= Date: Wed, 27 Mar 2024 08:50:50 +0300 Subject: [PATCH] add file support --- main.cpp | 23 ++++++++++++++++++++++- src/handlers/GetStaticAssetHandler.cpp | 2 +- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/main.cpp b/main.cpp index fbf901d..d90bb03 100644 --- a/main.cpp +++ b/main.cpp @@ -115,7 +115,28 @@ int main() const auto route = req.target(); if (req.target() == "/"sv || find(route.begin(), route.end(), '.') != route.end()) - sender(HandleRequestFile(std::forward(req))); + { + auto res = HandleRequestFile(std::forward(req)); + + if (res.result() == http::status::not_found) + { + StringResponse errres(http::status::bad_request, 1); + errres.set(http::field::content_type, content_type::k_JSON); + string body = "{\n" + " \"code\": \"badRequest\",\n" + " \"message\": \"Bad request\"\n" + "} "s; + errres.body() = body; + errres.content_length(body.size()); + errres.keep_alive(true); + sender(errres); + } + else + { + sender(res); + } + + } else sender(HandleRequest(std::forward(req))); }); diff --git a/src/handlers/GetStaticAssetHandler.cpp b/src/handlers/GetStaticAssetHandler.cpp index ac32209..c5b945a 100644 --- a/src/handlers/GetStaticAssetHandler.cpp +++ b/src/handlers/GetStaticAssetHandler.cpp @@ -25,7 +25,7 @@ FileResponse GetStaticAssetHandler(const StringRequest& req) if (sys::error_code ec; file.open(abs_path.string().c_str(), beast::file_mode::read, ec), ec) { res.result(http::status::not_found); - res.set(http::field::content_type, content_type::k_TextPlain); + res.content_length(0); } else {