From 4e50c5628dfeb4c61cb2e40d90721beaf8713827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Mon, 22 Aug 2016 23:05:36 +0200 Subject: [PATCH] Add new class for serving the content of tag. --- .../controllers/tagcontentcontroller.cpp | 37 +++++++++++++++++++ .../server/controllers/tagcontentcontroller.h | 22 +++++++++++ 2 files changed, 59 insertions(+) create mode 100644 YACReaderLibrary/server/controllers/tagcontentcontroller.cpp create mode 100644 YACReaderLibrary/server/controllers/tagcontentcontroller.h diff --git a/YACReaderLibrary/server/controllers/tagcontentcontroller.cpp b/YACReaderLibrary/server/controllers/tagcontentcontroller.cpp new file mode 100644 index 00000000..6f077b8f --- /dev/null +++ b/YACReaderLibrary/server/controllers/tagcontentcontroller.cpp @@ -0,0 +1,37 @@ +#include "tagcontentcontroller.h" + +#include "db_helper.h" +#include "comic_db.h" + +#include "yacreader_server_data_helper.h" + +#include + +TagContentController::TagContentController() +{ + +} + +void TagContentController::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 tagId = pathElements.at(4).toULongLong(); + + serviceContent(libraryId, tagId, response); + + response.write("",true); +} + +void TagContentController::serviceContent(const int &library, const qulonglong &tagId, HttpResponse &response) +{ + QList tagComics = DBHelper::getLabelComics(library, tagId); + + for(const ComicDB &comic : tagComics) + { + response.write(YACReaderServerDataHelper::comicToYSFormat(library, comic).toUtf8()); + } +} diff --git a/YACReaderLibrary/server/controllers/tagcontentcontroller.h b/YACReaderLibrary/server/controllers/tagcontentcontroller.h new file mode 100644 index 00000000..ab43646a --- /dev/null +++ b/YACReaderLibrary/server/controllers/tagcontentcontroller.h @@ -0,0 +1,22 @@ +#ifndef TAGCONTENTCONTROLLER_H +#define TAGCONTENTCONTROLLER_H + +#include "httprequest.h" +#include "httpresponse.h" +#include "httprequesthandler.h" + +class TagContentController : public HttpRequestHandler { + Q_OBJECT + Q_DISABLE_COPY(TagContentController); +public: + /** Constructor */ + TagContentController(); + + /** Generates the response */ + void service(HttpRequest& request, HttpResponse& response); + +private: + void serviceContent(const int &library, const qulonglong &tagId, HttpResponse &response); +}; + +#endif // TAGCONTENTCONTROLLER_H