#ifndef SERVICELOGIC_H #define SERVICELOGIC_H #include "ResponseUtility.h" #include "SharedState.h" #include "StringUtility.h" #include #include #include #include #include #include #include using StringRequest = boost::beast::http::request; namespace ServiceLogic { template static void onDownload(SharedStatePtr /*state*/, StringRequest &&request, Send &&send); template static void onGetBlogList(SharedStatePtr state, StringRequest &&request, Send &&send); template static void onGetBlogContent(SharedStatePtr state, StringRequest &&request, Send &&send, const std::string &prefix); template static void onGetBlogImage(SharedStatePtr state, StringRequest &&request, Send &&send); template static void onWechat(SharedStatePtr state, StringRequest &&request, Send &&send); // Returns a not found response boost::beast::http::response notFound(const boost::beast::http::request &request); // Returns a server error response boost::beast::http::response serverError(const boost::beast::http::request &request, std::string_view errorMessage); template boost::beast::http::response make_200(const boost::beast::http::request &request, typename ResponseBody::value_type body, boost::beast::string_view content) { boost::beast::http::response response{boost::beast::http::status::ok, request.version()}; response.set(boost::beast::http::field::server, BOOST_BEAST_VERSION_STRING); response.set(boost::beast::http::field::content_type, content); response.body() = body; response.prepare_payload(); response.keep_alive(request.keep_alive()); return response; } }; // namespace ServiceLogic #include "ServiceLogic.inl" #endif // SERVICELOGIC_H