Timesheets-Server
Timesheets server
Načítám...
Vyhledávám...
Nebylo nic nalezeno
controlleroverview.cpp
Zobrazit dokumentaci tohoto souboru.
1
8#include "httprequest.h"
9#include "db.h"
10#include "pdebug.h"
11
12using namespace Httpd;
13
14
15ControllerOverview::ControllerOverview(HobrasoftHttpd::HttpConnection *parent) : AbstractController(parent) {
16}
17
18
19void ControllerOverview::serviceList (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) {
20 serviceOK(request, response, toList(db()->overviewList()));
21}
22
23
24
25void ControllerOverview::service(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) {
26 QString path = request->path();
27 QString method = request->method();
28
29 if (method == "GET" && path.endsWith("/overview/categories")) {
30 QStringList statuses = request->parameter("statuses").split(",");
31 serviceOK(request, response, toList(db()->categoriesOverview(statuses)));
32 return;
33 }
34
36}
37
38
39void ControllerOverview::serviceIdGet (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString& id) {
40 QStringList statuses = request->parameter("statuses").split(",");
41 auto list = db()->categories(id);
42 if (list.isEmpty()) {
43 serviceError(request, response, 404, "not-found", "Not found");
44 return;
45 }
46
47 auto overview = db()->overview(id, statuses);
48
49 if (overview.isEmpty()) {
50 serviceError(request, response, 404, "not-found", "Not found");
51 return;
52 }
53
54 serviceOK(request, response, overview.first().toMap());
55}
56
57
58void ControllerOverview::serviceIdDelete (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString& id) {
59 db()->remove(Dbt::OverviewList(id));
60 serviceOK(request, response);
61}
62
63
64
Virtuální třída pro vyřizování unifikovaných Http požadavků na server API.
virtual void serviceError(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, int code, const QString &error, const QVariantMap &data)
Pošle chybovou odpověď
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 serviceList(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) Q_DECL_OVERRIDE
Měl by poslat v odpovědi kompletní seznam všech objektů ve třídě a ukončit se.
void service(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) Q_DECL_OVERRIDE
Obsluha požadavku.
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 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.
Jmenný prostor pro obsluhu konkrétních HTTP požadavků aplikace.