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

View File

@ -109,17 +109,16 @@ std::unique_ptr<ContentResponse> Response::build_404(const InternalServer& serve
return response;
}
ContentResponseBlueprint make404Response(const InternalServer& server,
HTTP404HtmlResponse::HTTP404HtmlResponse(const InternalServer& server,
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;
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)

View File

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