1 #include "tagcontentcontroller_v2.h"
2
3 #include "db_helper.h"
4 #include "comic_db.h"
5
6 #include "yacreader_server_data_helper.h"
7
8 #include <QUrl>
9
10 using stefanfrings::HttpRequest;
11 using stefanfrings::HttpResponse;
12
TagContentControllerV2()13 TagContentControllerV2::TagContentControllerV2()
14 {
15 }
16
service(HttpRequest & request,HttpResponse & response)17 void TagContentControllerV2::service(HttpRequest &request, HttpResponse &response)
18 {
19 response.setHeader("Content-Type", "text/plain; charset=utf-8");
20
21 QString path = QUrl::fromPercentEncoding(request.getPath()).toUtf8();
22 QStringList pathElements = path.split('/');
23 int libraryId = pathElements.at(3).toInt();
24 qulonglong tagId = pathElements.at(5).toULongLong();
25
26 serviceContent(libraryId, tagId, response);
27
28 response.write("", true);
29 }
30
serviceContent(const int & library,const qulonglong & tagId,HttpResponse & response)31 void TagContentControllerV2::serviceContent(const int &library, const qulonglong &tagId, HttpResponse &response)
32 {
33 QList<ComicDB> comics = DBHelper::getLabelComics(library, tagId);
34
35 QJsonArray items;
36
37 for (const ComicDB &comic : comics) {
38 items.append(YACReaderServerDataHelper::comicToJSON(library, comic));
39 }
40
41 QJsonDocument output(items);
42
43 response.write(output.toJson(QJsonDocument::Compact));
44 }
45