2#include "httprequest.h"
8ControllerWorkCalendar::ControllerWorkCalendar(HobrasoftHttpd::HttpConnection *parent) :
AbstractController(parent) { }
11 QStringList parts =
request->path().split(
"/");
16 if (parts.size() == 3 && parts[0] ==
"workcalendar" && parts[1] ==
"generate") {
18 int year = parts[2].toInt(&ok);
20 serviceError(
request, response, 400,
"bad-request",
"Invalid year");
23 serviceGenerate(
request, response, year);
36 QDate date = QDate::fromString(
id,
"yyyy-MM-dd");
37 if (!date.isValid()) { serviceError(
request, response, 404,
"not-found",
"NotFound");
return; }
38 auto list = db()->workCalendar(date);
39 if (list.isEmpty()) { serviceError(
request, response, 404,
"not-found",
"NotFound");
return; }
45 serviceOK(
request, response, putKey(db()->save(Dbt::WorkCalendar::fromMap(data))));
53 QDate date = QDate::fromString(
id,
"yyyy-MM-dd");
58void ControllerWorkCalendar::serviceGenerate(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response,
int year) {
60 db()->generateWorkCalendar(year);
Virtuální třída pro vyřizování unifikovaných Http požadavků na server API.
virtual void service(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response)
Obsluha požadavku.
virtual void serviceOK(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariant &data=QVariant())
Pošle odpověď 200 OK.
HobrasoftHttpd::HttpRequest * request() const
Vrací ukazatel na aktuální request.
void serviceIdPost(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariantMap &data) Q_DECL_OVERRIDE
Pošle odpověď na požadavek konkrétního ID metodou PUT - obvykle vloží nový objekt nebo přepíše existu...
void serviceIdGet(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString &id) Q_DECL_OVERRIDE
Pošle odpověď na požadavek konkrétního ID metodou GET.
void service(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) Q_DECL_OVERRIDE
Obsluha požadavku.
void serviceIdPut(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariantMap &data) Q_DECL_OVERRIDE
Pošle odpověď na požadavek konkrétního ID metodou PUT - obvykle vloží nový objekt nebo přepíše existu...
void serviceIdDelete(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString &id) Q_DECL_OVERRIDE
Pošle odpověď na požadavek konkrétního ID metodou DELETE - obvykle objekt smaže.
void serviceList(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) Q_DECL_OVERRIDE
Pošle chybovou odpověď
Jmenný prostor pro obsluhu konkrétních HTTP požadavků aplikace.