Enter HTTP404HtmlResponse

This commit is contained in:
Veloman Yunkan 2022-01-23 16:04:29 +04:00 committed by Matthieu Gautier
parent 668063205c
commit 89785a259a
3 changed files with 14 additions and 16 deletions

View File

@ -676,7 +676,7 @@ std::unique_ptr<Response> InternalServer::handle_catalog(const RequestContext& r
host = request.get_header("Host"); host = request.get_header("Host");
url = request.get_url_part(1); url = request.get_url_part(1);
} catch (const std::out_of_range&) { } catch (const std::out_of_range&) {
return make404Response(*this, request) return HTTP404HtmlResponse(*this, request)
+ urlNotFoundMsg; + urlNotFoundMsg;
} }
@ -685,7 +685,7 @@ std::unique_ptr<Response> InternalServer::handle_catalog(const RequestContext& r
} }
if (url != "searchdescription.xml" && url != "root.xml" && url != "search") { if (url != "searchdescription.xml" && url != "root.xml" && url != "search") {
return make404Response(*this, request) return HTTP404HtmlResponse(*this, request)
+ urlNotFoundMsg; + urlNotFoundMsg;
} }

View File

@ -109,17 +109,16 @@ std::unique_ptr<ContentResponse> Response::build_404(const InternalServer& serve
return response; return response;
} }
ContentResponseBlueprint make404Response(const InternalServer& server, HTTP404HtmlResponse::HTTP404HtmlResponse(const InternalServer& server,
const RequestContext& request) const RequestContext& request)
: ContentResponseBlueprint(&server,
&request,
MHD_HTTP_NOT_FOUND,
"text/html",
RESOURCE::templates::_404_html)
{ {
auto crb = ContentResponseBlueprint(&server,
&request,
MHD_HTTP_NOT_FOUND,
"text/html",
RESOURCE::templates::_404_html);
kainjow::mustache::list emptyList; kainjow::mustache::list emptyList;
return crb + kainjow::mustache::object{{"details", emptyList}}; this->m_data = kainjow::mustache::object{{"details", emptyList}};
} }
std::unique_ptr<Response> Response::build_416(const InternalServer& server, size_t resourceLength) std::unique_ptr<Response> Response::build_416(const InternalServer& server, size_t resourceLength)

View File

@ -175,12 +175,11 @@ public: //data
kainjow::mustache::data m_data; kainjow::mustache::data m_data;
}; };
ContentResponseBlueprint make404Response(const InternalServer& server, struct HTTP404HtmlResponse : ContentResponseBlueprint
const RequestContext& request); {
HTTP404HtmlResponse(const InternalServer& server,
kainjow::mustache::data make404ResponseData(const std::string& url, const RequestContext& request);
const std::string& details = ""); };
class ItemResponse : public Response { class ItemResponse : public Response {
public: public: