6#include "httprequest.h"
13ControllerHolidays::ControllerHolidays(HobrasoftHttpd::HttpConnection *parent) :
AbstractController(parent) { }
16 QStringList parts =
request->path().split(
"/");
21 if (parts.size() == 4 && parts[0] ==
"holidays" && parts[1] ==
"copy") {
22 bool ok1 =
false;
bool ok2 =
false;
23 int fromYear = parts[2].toInt(&ok1);
24 int toYear = parts[3].toInt(&ok2);
26 serviceError(
request, response, 400,
"bad-request",
"Invalid year");
29 serviceCopy(
request, response, fromYear, toYear);
42 QDate date = QDate::fromString(
id,
"yyyy-MM-dd");
43 if (!date.isValid()) { serviceError(
request, response, 404,
"not-found",
"NotFound");
return; }
44 auto list = db()->holidays(date);
45 if (list.isEmpty()) { serviceError(
request, response, 404,
"not-found",
"NotFound");
return; }
51 serviceOK(
request, response, putKey(db()->save(Dbt::Holidays::fromMap(data))));
59 QDate date = QDate::fromString(
id,
"yyyy-MM-dd");
64void ControllerHolidays::serviceCopy(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response,
int fromYear,
int toYear) {
66 db()->copyHolidays(fromYear, toYear);
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 service(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) Q_DECL_OVERRIDE
Obsluha požadavku.
void serviceList(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) Q_DECL_OVERRIDE
Pošle chybovou odpověď
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 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.
Jmenný prostor pro obsluhu konkrétních HTTP požadavků aplikace.