Timesheets-Server
Timesheets server
Načítám...
Vyhledávám...
Nebylo nic nalezeno
controllertickets.cpp
Zobrazit dokumentaci tohoto souboru.
1
7#include "controllertickets.h"
8#include "httprequest.h"
9#include "db.h"
10#include "pdebug.h"
11
12using namespace Httpd;
13
14
15ControllerTickets::ControllerTickets(HobrasoftHttpd::HttpConnection *parent) : AbstractController(parent) {
16}
17
18
19void ControllerTickets::serviceList (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) {
20 bool all = QVariant(request->parameter("all")).toBool();
21 bool idonly = QVariant(request->parameter("idonly")).toBool();
22 if (idonly) {
23 QVariantList data;
24 QList<Dbt::Tickets> list = db()->tickets(all);
25 QListIterator<Dbt::Tickets> iterator(list);
26 while (iterator.hasNext()) {
27 data << iterator.next().ticket;
28 }
29 serviceOK(request, response, data);
30 return;
31 }
32 serviceOK(request, response, toList(db()->tickets(all)));
33}
34
35
36void ControllerTickets::serviceIdGet (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString& id) {
37 bool all = QVariant(request->parameter("all")).toBool();
38 auto list = db()->tickets(id.toInt(), all);
39 if (list.isEmpty()) {
40 serviceError(request, response, 404, "not-found", "NotFound");
41 return;
42 }
43 serviceOK(request, response, list[0].toMap());
44}
45
46
47void ControllerTickets::serviceIdPut(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariantMap& data) {
48 serviceOK(request, response, putKey(db()->save(Dbt::Tickets::fromMap(data))));
49}
50
51
52void ControllerTickets::serviceIdPost(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariantMap& data) {
53 serviceIdPut(request, response, data);
54}
55
56
57void ControllerTickets::serviceIdDelete(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString& id) {
58 db()->remove(Dbt::Tickets(id));
59 serviceOK(request, response);
60}
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 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 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 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 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 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.