1 #include "updatecomiccontroller.h"
2 
3 #include "db_helper.h"
4 #include "yacreader_libraries.h"
5 
6 #include "template.h"
7 #include "../static.h"
8 
9 #include "comic_db.h"
10 #include "comic.h"
11 
12 #include "QsLog.h"
13 
14 using stefanfrings::HttpRequest;
15 using stefanfrings::HttpResponse;
16 using stefanfrings::HttpSession;
17 
UpdateComicController()18 UpdateComicController::UpdateComicController() { }
19 
service(HttpRequest & request,HttpResponse & response)20 void UpdateComicController::service(HttpRequest &request, HttpResponse &response)
21 {
22     HttpSession session = Static::sessionStore->getSession(request, response, false);
23 
24     QString path = QUrl::fromPercentEncoding(request.getPath()).toUtf8();
25     QStringList pathElements = path.split('/');
26     qulonglong libraryId = pathElements.at(2).toULongLong();
27     QString libraryName = DBHelper::getLibraryName(libraryId);
28     qulonglong comicId = pathElements.at(4).toULongLong();
29 
30     QString postData = QString::fromUtf8(request.getBody());
31 
32     QLOG_TRACE() << "POST DATA: " << postData;
33 
34     if (postData.length() > 0) {
35         QList<QString> data = postData.split("\n");
36         int currentPage = data.at(0).split(":").at(1).toInt();
37         ComicInfo info;
38         info.currentPage = currentPage;
39         info.id = comicId;
40         DBHelper::updateProgress(libraryId, info);
41     } else {
42         response.setStatus(412, "No comic info received");
43         response.write("", true);
44         return;
45     }
46 
47     response.write("OK", true);
48 }
49