Reimplement LibrariesControllerV2 for serving JSON.

This commit is contained in:
Luis Ángel San Martín 2018-03-04 17:38:01 +01:00
parent 555adc80bb
commit da5a4def96

View File

@ -1,7 +1,6 @@
#include "librariescontroller_v2.h"
#include "db_helper.h" //get libraries
#include "yacreader_libraries.h"
#include "yacreader_http_session.h"
#include "template.h"
#include "../static.h"
@ -13,30 +12,28 @@ LibrariesControllerV2::LibrariesControllerV2() {}
void LibrariesControllerV2::service(HttpRequest& request, HttpResponse& response)
{
HttpSession session=Static::sessionStore->getSession(request,response,false);
YACReaderHttpSession *ySession = Static::yacreaderSessionStore->getYACReaderSessionHttpSession(session.getId());
response.setHeader("Content-Type", "text/html; charset=utf-8");
response.setHeader("Content-Type", "application/json");
response.setHeader("Connection","close");
ySession->clearNavigationPath();
Template t=Static::templateLoader->getTemplate("libraries_"+ySession->getDeviceType(),request.getHeader("Accept-Language"));
t.enableWarnings();
YACReaderLibraries libraries = DBHelper::getLibraries();
QList<QString> names = DBHelper::getLibrariesNames();
t.loop("library",names.length());
QJsonArray librariesJson;
int currentId = 0;
int i = 0;
foreach (QString name,names) {
currentId = libraries.getId(name);
t.setVariable(QString("library%1.name").arg(i),QString::number(currentId));
t.setVariable(QString("library%1.label").arg(i),name);
i++;
QJsonObject library;
library["name"] = name;
library["id"] = currentId;
librariesJson.append(library);
}
QJsonDocument output(librariesJson);
response.setStatus(200,"OK");
response.write(t.toUtf8(),true);
response.write(output.toJson(),true);
}