yacreader/YACReaderLibrary/server/controllers/v1/librariescontroller.cpp
Felix Kauselmann 1b344d70e5 Update server code integration for QtWebApp 1.7.11
- Adapt server code for QtWebapp namespace 'stefanfrings'
- Implement custom modifications needed by v1 controller
  via template engine
- Unify iphone and ipad templates
2020-08-20 18:22:57 +02:00

52 lines
1.6 KiB
C++

#include "librariescontroller.h"
#include "db_helper.h" //get libraries
#include "yacreader_libraries.h"
#include "yacreader_http_session.h"
#include "template.h"
#include "../static.h"
#include "QsLog.h"
using stefanfrings::HttpRequest;
using stefanfrings::HttpResponse;
using stefanfrings::HttpSession;
using stefanfrings::Template;
LibrariesController::LibrariesController() { }
void LibrariesController::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("Connection", "close");
ySession->clearNavigationPath();
Template t = Static::templateLoader->getTemplate("libraries", request.getHeader("Accept-Language"));
t.enableWarnings();
// set device type and display
t.setVariable("device", ySession->getDeviceType());
t.setVariable("display", ySession->getDisplayType());
YACReaderLibraries libraries = DBHelper::getLibraries();
QList<QString> names = DBHelper::getLibrariesNames();
t.loop("library", names.length());
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++;
}
response.setStatus(200, "OK");
response.write(t.toUtf8(), true);
}