mirror of https://github.com/kiwix/libkiwix.git
Add `/catalog/v2/illustration` endpoint
This commit is contained in:
parent
9482bfb95b
commit
e108fb0e47
|
@ -82,6 +82,7 @@ class InternalServer {
|
|||
std::unique_ptr<Response> handle_catalog_v2_complete_entry(const RequestContext& request, const std::string& entryId);
|
||||
std::unique_ptr<Response> handle_catalog_v2_categories(const RequestContext& request);
|
||||
std::unique_ptr<Response> handle_catalog_v2_languages(const RequestContext& request);
|
||||
std::unique_ptr<Response> handle_catalog_v2_illustration(const RequestContext& request);
|
||||
std::unique_ptr<Response> handle_meta(const RequestContext& request);
|
||||
std::unique_ptr<Response> handle_search(const RequestContext& request);
|
||||
std::unique_ptr<Response> handle_suggest(const RequestContext& request);
|
||||
|
|
|
@ -66,6 +66,8 @@ std::unique_ptr<Response> InternalServer::handle_catalog_v2(const RequestContext
|
|||
return handle_catalog_v2_categories(request);
|
||||
} else if (url == "languages") {
|
||||
return handle_catalog_v2_languages(request);
|
||||
} else if (url == "illustration") {
|
||||
return handle_catalog_v2_illustration(request);
|
||||
} else {
|
||||
return Response::build_404(*this, request.get_full_url(), "", "");
|
||||
}
|
||||
|
@ -146,4 +148,18 @@ std::unique_ptr<Response> InternalServer::handle_catalog_v2_languages(const Requ
|
|||
);
|
||||
}
|
||||
|
||||
std::unique_ptr<Response> InternalServer::handle_catalog_v2_illustration(const RequestContext& request)
|
||||
{
|
||||
try {
|
||||
const auto bookName = request.get_url_part(3);
|
||||
const auto bookId = mp_nameMapper->getIdForName(bookName);
|
||||
auto book = mp_library->getBookByIdThreadSafe(bookId);
|
||||
auto size = request.get_argument<unsigned int>("size");
|
||||
auto illustration = book.getIllustration(size);
|
||||
return ContentResponse::build(*this, illustration->getData(), illustration->mimeType);
|
||||
} catch(...) {
|
||||
return Response::build_404(*this, request.get_full_url(), "", "");
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace kiwix
|
||||
|
|
|
@ -201,6 +201,7 @@ const ResourceCollection resources200Uncompressible{
|
|||
{ WITH_ETAG, "/ROOT/meta?content=zimfile&name=publisher" },
|
||||
{ WITH_ETAG, "/ROOT/meta?content=zimfile&name=favicon" },
|
||||
{ WITH_ETAG, "/ROOT/meta?content=zimfile&name=Illustration_48x48@1" },
|
||||
{ NO_ETAG, "/ROOT/catalog/v2/illustration/zimfile?size=48" },
|
||||
|
||||
{ WITH_ETAG, "/ROOT/zimfile/I/m/Ray_Charles_classic_piano_pose.jpg" },
|
||||
|
||||
|
@ -276,6 +277,7 @@ const char* urls404[] = {
|
|||
"/ROOT/catalog",
|
||||
"/ROOT/catalog/non-existent-item",
|
||||
"/ROOT/catalogBLABLABLA/root.xml",
|
||||
"/ROOT/catalog/v2/illustration/zimfile?size=96",
|
||||
"/ROOT/meta",
|
||||
"/ROOT/meta?content=zimfile",
|
||||
"/ROOT/meta?content=zimfile&name=non-existent-item",
|
||||
|
|
Loading…
Reference in New Issue