From 69b83dae5b40fc74d9b885984a95dd11a2c938ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Tue, 23 Aug 2016 18:20:16 +0200 Subject: [PATCH] New controller for serving favoritess. --- .../controllers/favoritescontroller.cpp | 33 +++++++++++++++++++ .../server/controllers/favoritescontroller.h | 21 ++++++++++++ YACReaderLibrary/server/server.pri | 6 ++-- 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 YACReaderLibrary/server/controllers/favoritescontroller.cpp create mode 100644 YACReaderLibrary/server/controllers/favoritescontroller.h diff --git a/YACReaderLibrary/server/controllers/favoritescontroller.cpp b/YACReaderLibrary/server/controllers/favoritescontroller.cpp new file mode 100644 index 00000000..dbb44556 --- /dev/null +++ b/YACReaderLibrary/server/controllers/favoritescontroller.cpp @@ -0,0 +1,33 @@ +#include "favoritescontroller.h" + +#include "db_helper.h" +#include "comic_db.h" + +#include "yacreader_server_data_helper.h" + +FavoritesController::FavoritesController() {} + +void FavoritesController::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(); + + serviceContent(libraryId, response); + + response.write("",true); +} + +void FavoritesController::serviceContent(const int library, HttpResponse &response) +{ + QList tagComics = DBHelper::getFavorites(library); + + for(const ComicDB &comic : tagComics) + { + response.write(YACReaderServerDataHelper::comicToYSFormat(library, comic).toUtf8()); + } +} + + diff --git a/YACReaderLibrary/server/controllers/favoritescontroller.h b/YACReaderLibrary/server/controllers/favoritescontroller.h new file mode 100644 index 00000000..bf7efa78 --- /dev/null +++ b/YACReaderLibrary/server/controllers/favoritescontroller.h @@ -0,0 +1,21 @@ +#ifndef FAVORITESCONTROLLER_H +#define FAVORITESCONTROLLER_H + +#include "httprequest.h" +#include "httpresponse.h" +#include "httprequesthandler.h" + +class FavoritesController : public HttpRequestHandler { + Q_OBJECT + Q_DISABLE_COPY(FavoritesController); +public: + FavoritesController(); + + void service(HttpRequest& request, HttpResponse& response); + +private: + void serviceContent(const int library, HttpResponse &response); +}; + + +#endif // FAVORITESCONTROLLER_H diff --git a/YACReaderLibrary/server/server.pri b/YACReaderLibrary/server/server.pri index 5378df73..d54d0a33 100644 --- a/YACReaderLibrary/server/server.pri +++ b/YACReaderLibrary/server/server.pri @@ -23,7 +23,8 @@ HEADERS += \ $$PWD/yacreader_http_session.h \ $$PWD/yacreader_http_session_store.h \ $$PWD/controllers/tagcontentcontroller.h \ - $$PWD/yacreader_server_data_helper.h + $$PWD/yacreader_server_data_helper.h \ + $$PWD/controllers/favoritescontroller.h SOURCES += \ $$PWD/static.cpp \ @@ -47,7 +48,8 @@ SOURCES += \ $$PWD/yacreader_http_session.cpp \ $$PWD/yacreader_http_session_store.cpp \ $$PWD/controllers/tagcontentcontroller.cpp \ - $$PWD/yacreader_server_data_helper.cpp + $$PWD/yacreader_server_data_helper.cpp \ + $$PWD/controllers/favoritescontroller.cpp include(lib/logging/logging.pri) include(lib/httpserver/httpserver.pri)