#include "util/http_util.hpp" #include "util/string_util.hpp" namespace lm { std::string HttpUtil::contentTypeForPath(const std::filesystem::path& p) { const auto ext = StringUtil::toLower(p.extension().string()); if (ext == ".html") return "text/html; charset=utf-8"; if (ext == ".css") return "text/css; charset=utf-8"; if (ext == ".js") return "application/javascript; charset=utf-8"; if (ext == ".json") return "application/json; charset=utf-8"; if (ext == ".png") return "image/png"; if (ext == ".svg") return "image/svg+xml"; if (ext == ".ico") return "image/x-icon"; return "application/octet-stream"; } void HttpUtil::jsonError(httplib::Response& res, int status, const std::string& msg) { res.status = status; res.set_header("Content-Type", "application/json; charset=utf-8"); res.body = nlohmann::json({{"error", msg}}).dump(); } void HttpUtil::addCors(httplib::Response& res) { res.set_header("Access-Control-Allow-Origin", "*"); res.set_header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); res.set_header("Access-Control-Allow-Headers", "Content-Type, Authorization, Accept-Language"); } } // namespace lm