From d08740e32d8711f0088ed1c971c2cc5330c9cc73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Fri, 26 May 2017 17:29:28 +0200 Subject: [PATCH] Added new server controller for providing the content of a reading list. --- .../readinglistcontentcontroller.cpp | 35 +++++ .../readinglistcontentcontroller.h | 20 +++ YACReaderLibrary/server/server.pri | 126 +++++++++--------- 3 files changed, 119 insertions(+), 62 deletions(-) create mode 100644 YACReaderLibrary/server/controllers/readinglistcontentcontroller.cpp create mode 100644 YACReaderLibrary/server/controllers/readinglistcontentcontroller.h diff --git a/YACReaderLibrary/server/controllers/readinglistcontentcontroller.cpp b/YACReaderLibrary/server/controllers/readinglistcontentcontroller.cpp new file mode 100644 index 00000000..55ee65c3 --- /dev/null +++ b/YACReaderLibrary/server/controllers/readinglistcontentcontroller.cpp @@ -0,0 +1,35 @@ +#include "readinglistcontentcontroller.h" + +#include "db_helper.h" +#include "comic_db.h" + +#include "yacreader_server_data_helper.h" + +ReadingListContentController::ReadingListContentController() +{ + +} + +void ReadingListContentController::service(HttpRequest &request, HttpResponse &response) +{ + response.setHeader("Content-Type", "text/plain; charset=utf-8"); + + QString path = QUrl::fromPercentEncoding(request.getPath()).toUtf8(); + QStringList pathElements = path.split('/'); + int libraryId = pathElements.at(2).toInt(); + qulonglong readingListId = pathElements.at(4).toULongLong(); + + serviceContent(libraryId, readingListId, response); + + response.write("",true); +} + +void ReadingListContentController::serviceContent(const int &library, const qulonglong &readingListId, HttpResponse &response) +{ + QList comics = DBHelper::getReadingListFullContent(library, readingListId); + + for(const ComicDB &comic : comics) + { + response.write(YACReaderServerDataHelper::comicToYSFormat(library, comic).toUtf8()); + } +} diff --git a/YACReaderLibrary/server/controllers/readinglistcontentcontroller.h b/YACReaderLibrary/server/controllers/readinglistcontentcontroller.h new file mode 100644 index 00000000..88ec4a28 --- /dev/null +++ b/YACReaderLibrary/server/controllers/readinglistcontentcontroller.h @@ -0,0 +1,20 @@ +#ifndef READINGLISTCONTENTCONTROLLER_H +#define READINGLISTCONTENTCONTROLLER_H + +#include "httprequest.h" +#include "httpresponse.h" +#include "httprequesthandler.h" + +class ReadingListContentController : public HttpRequestHandler { + Q_OBJECT + Q_DISABLE_COPY(ReadingListContentController) +public: + ReadingListContentController(); + + void service(HttpRequest& request, HttpResponse& response); + +private: + void serviceContent(const int &library, const qulonglong &readingListId, HttpResponse &response); +}; + +#endif // READINGLISTCONTENTCONTROLLER_H diff --git a/YACReaderLibrary/server/server.pri b/YACReaderLibrary/server/server.pri index 535989cb..88ba35ca 100644 --- a/YACReaderLibrary/server/server.pri +++ b/YACReaderLibrary/server/server.pri @@ -1,62 +1,64 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD - -HEADERS += \ - $$PWD/static.h \ - $$PWD/startup.h \ - $$PWD/requestmapper.h \ - $$PWD/controllers/comiccontroller.h \ - $$PWD/controllers/errorcontroller.h \ - $$PWD/controllers/foldercontroller.h \ - $$PWD/controllers/folderinfocontroller.h \ - $$PWD/controllers/librariescontroller.h \ - $$PWD/controllers/pagecontroller.h \ - $$PWD/controllers/sessionmanager.h \ - $$PWD/controllers/covercontroller.h \ - $$PWD/controllers/updatecomiccontroller.h \ - $$PWD/controllers/comicdownloadinfocontroller.h \ - $$PWD/controllers/synccontroller.h \ - #v2 - $$PWD/controllers/versioncontroller.h \ - $$PWD/controllers/foldercontentcontroller.h \ - $$PWD/controllers/tagscontroller.h \ - $$PWD/yacreader_http_session.h \ - $$PWD/yacreader_http_session_store.h \ - $$PWD/controllers/tagcontentcontroller.h \ - $$PWD/yacreader_server_data_helper.h \ - $$PWD/controllers/favoritescontroller.h \ - $$PWD/controllers/readingcomicscontroller.h \ - $$PWD/controllers/readinglistscontroller.h - -SOURCES += \ - $$PWD/static.cpp \ - $$PWD/startup.cpp \ - $$PWD/requestmapper.cpp \ - $$PWD/controllers/comiccontroller.cpp \ - $$PWD/controllers/errorcontroller.cpp \ - $$PWD/controllers/foldercontroller.cpp \ - $$PWD/controllers/folderinfocontroller.cpp \ - $$PWD/controllers/librariescontroller.cpp \ - $$PWD/controllers/pagecontroller.cpp \ - $$PWD/controllers/sessionmanager.cpp \ - $$PWD/controllers/covercontroller.cpp \ - $$PWD/controllers/updatecomiccontroller.cpp \ - $$PWD/controllers/comicdownloadinfocontroller.cpp \ - $$PWD/controllers/synccontroller.cpp \ - #v2 - $$PWD/controllers/versioncontroller.cpp \ - $$PWD/controllers/foldercontentcontroller.cpp \ - $$PWD/controllers/tagscontroller.cpp \ - $$PWD/yacreader_http_session.cpp \ - $$PWD/yacreader_http_session_store.cpp \ - $$PWD/controllers/tagcontentcontroller.cpp \ - $$PWD/yacreader_server_data_helper.cpp \ - $$PWD/controllers/favoritescontroller.cpp \ - $$PWD/controllers/readingcomicscontroller.cpp \ - $$PWD/controllers/readinglistscontroller.cpp - -include(lib/logging/logging.pri) -include(lib/httpserver/httpserver.pri) -include(lib/templateengine/templateengine.pri) - -DEFINES += SERVER_VERSION_NUMBER=\\\"2.0\\\" +INCLUDEPATH += $$PWD +DEPENDPATH += $$PWD + +HEADERS += \ + $$PWD/static.h \ + $$PWD/startup.h \ + $$PWD/requestmapper.h \ + $$PWD/controllers/comiccontroller.h \ + $$PWD/controllers/errorcontroller.h \ + $$PWD/controllers/foldercontroller.h \ + $$PWD/controllers/folderinfocontroller.h \ + $$PWD/controllers/librariescontroller.h \ + $$PWD/controllers/pagecontroller.h \ + $$PWD/controllers/sessionmanager.h \ + $$PWD/controllers/covercontroller.h \ + $$PWD/controllers/updatecomiccontroller.h \ + $$PWD/controllers/comicdownloadinfocontroller.h \ + $$PWD/controllers/synccontroller.h \ + #v2 + $$PWD/controllers/versioncontroller.h \ + $$PWD/controllers/foldercontentcontroller.h \ + $$PWD/controllers/tagscontroller.h \ + $$PWD/yacreader_http_session.h \ + $$PWD/yacreader_http_session_store.h \ + $$PWD/controllers/tagcontentcontroller.h \ + $$PWD/yacreader_server_data_helper.h \ + $$PWD/controllers/favoritescontroller.h \ + $$PWD/controllers/readingcomicscontroller.h \ + $$PWD/controllers/readinglistscontroller.h \ + $$PWD/controllers/readinglistcontentcontroller.h + +SOURCES += \ + $$PWD/static.cpp \ + $$PWD/startup.cpp \ + $$PWD/requestmapper.cpp \ + $$PWD/controllers/comiccontroller.cpp \ + $$PWD/controllers/errorcontroller.cpp \ + $$PWD/controllers/foldercontroller.cpp \ + $$PWD/controllers/folderinfocontroller.cpp \ + $$PWD/controllers/librariescontroller.cpp \ + $$PWD/controllers/pagecontroller.cpp \ + $$PWD/controllers/sessionmanager.cpp \ + $$PWD/controllers/covercontroller.cpp \ + $$PWD/controllers/updatecomiccontroller.cpp \ + $$PWD/controllers/comicdownloadinfocontroller.cpp \ + $$PWD/controllers/synccontroller.cpp \ + #v2 + $$PWD/controllers/versioncontroller.cpp \ + $$PWD/controllers/foldercontentcontroller.cpp \ + $$PWD/controllers/tagscontroller.cpp \ + $$PWD/yacreader_http_session.cpp \ + $$PWD/yacreader_http_session_store.cpp \ + $$PWD/controllers/tagcontentcontroller.cpp \ + $$PWD/yacreader_server_data_helper.cpp \ + $$PWD/controllers/favoritescontroller.cpp \ + $$PWD/controllers/readingcomicscontroller.cpp \ + $$PWD/controllers/readinglistscontroller.cpp \ + $$PWD/controllers/readinglistcontentcontroller.cpp + +include(lib/logging/logging.pri) +include(lib/httpserver/httpserver.pri) +include(lib/templateengine/templateengine.pri) + +DEFINES += SERVER_VERSION_NUMBER=\\\"2.0\\\"