From dca47d35f76f648a535ae597924ae4552e4e3cca Mon Sep 17 00:00:00 2001 From: Nikhil Tanwar <2002nikhiltanwar@gmail.com> Date: Mon, 13 Feb 2023 03:21:56 +0530 Subject: [PATCH] Introduce /nojs endpoint Adds /nojs endpoint for fallback. Currently, it serves an HTML with book names in library --- src/server/internalServer.cpp | 16 ++++++++++++++++ src/server/internalServer.h | 1 + 2 files changed, 17 insertions(+) diff --git a/src/server/internalServer.cpp b/src/server/internalServer.cpp index b787cb03f..a0236f3e6 100644 --- a/src/server/internalServer.cpp +++ b/src/server/internalServer.cpp @@ -628,6 +628,9 @@ std::unique_ptr InternalServer::handle_request(const RequestContext& r if (isEndpointUrl(url, "search")) return handle_search(request); + if (isEndpointUrl(url, "nojs")) + return handle_no_js(request); + if (isEndpointUrl(url, "suggest")) return handle_suggest(request); @@ -756,6 +759,19 @@ std::unique_ptr InternalServer::handle_viewer_settings(const RequestCo return ContentResponse::build(*this, RESOURCE::templates::viewer_settings_js, data, "application/javascript; charset=utf-8"); } +std::unique_ptr InternalServer::handle_no_js(const RequestContext& request) +{ + HTMLDumper htmlDumper(mp_library, mp_nameMapper); + htmlDumper.setRootLocation(m_root); + htmlDumper.setLibraryId(getLibraryId()); + return ContentResponse::build( + *this, + htmlDumper.dumpPlainHTML(), + "text/html; charset=utf-8" + ); +} + + namespace { diff --git a/src/server/internalServer.h b/src/server/internalServer.h index b852afa52..a9e0070c8 100644 --- a/src/server/internalServer.h +++ b/src/server/internalServer.h @@ -131,6 +131,7 @@ class InternalServer { std::unique_ptr handle_catalog_v2_entries(const RequestContext& request, bool partial); std::unique_ptr handle_catalog_v2_complete_entry(const RequestContext& request, const std::string& entryId); std::unique_ptr handle_catalog_v2_categories(const RequestContext& request); + std::unique_ptr handle_no_js(const RequestContext& request); std::unique_ptr handle_catalog_v2_languages(const RequestContext& request); std::unique_ptr handle_catalog_v2_illustration(const RequestContext& request); std::unique_ptr handle_search(const RequestContext& request);