Refactoring: extracted InternalServer::get_reader()

This commit is contained in:
Veloman Yunkan 2020-04-16 13:55:54 +04:00
parent bbc06931ad
commit 1ef5ebfb52
1 changed files with 16 additions and 9 deletions

View File

@ -129,6 +129,9 @@ class InternalServer {
MustacheData homepage_data() const; MustacheData homepage_data() const;
Response get_default_response(); Response get_default_response();
std::shared_ptr<Reader> get_reader(const std::string& bookName) const;
private: // data
std::string m_addr; std::string m_addr;
int m_port; int m_port;
std::string m_root; std::string m_root;
@ -845,6 +848,18 @@ std::string get_book_name(const RequestContext& request)
} // unnamed namespace } // unnamed namespace
std::shared_ptr<Reader>
InternalServer::get_reader(const std::string& bookName) const
{
std::shared_ptr<Reader> reader;
try {
const std::string bookId = mp_nameMapper->getIdForName(bookName);
reader = mp_library->getReaderById(bookId);
} catch (const std::out_of_range& e) {
}
return reader;
}
Response InternalServer::handle_content(const RequestContext& request) Response InternalServer::handle_content(const RequestContext& request)
{ {
if (m_verbose.load()) { if (m_verbose.load()) {
@ -861,15 +876,7 @@ Response InternalServer::handle_content(const RequestContext& request)
if (bookName.empty()) if (bookName.empty())
return build_homepage(request); return build_homepage(request);
std::string bookId; const std::shared_ptr<Reader> reader = get_reader(bookName);
std::shared_ptr<Reader> reader;
try {
bookId = mp_nameMapper->getIdForName(bookName);
reader = mp_library->getReaderById(bookId);
} catch (const std::out_of_range& e) {
return build_404(request, bookName);
}
if (reader == nullptr) { if (reader == nullptr) {
return build_404(request, bookName); return build_404(request, bookName);
} }