Timesheets-Server
Timesheets server
Načítám...
Vyhledávám...
Nebylo nic nalezeno
controllerrfids.cpp
1#include "controllerrfids.h"
2#include "httprequest.h"
3#include "db.h"
4#include "pdebug.h"
5
6using namespace Httpd;
7
8ControllerRfids::ControllerRfids(HobrasoftHttpd::HttpConnection *parent) : AbstractController(parent) {
9 PDEBUG;
10}
11
12void ControllerRfids::serviceList(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) {
13 PDEBUG;
14 QString rfidId = request->parameter("rfid_id");
15 if (!rfidId.isEmpty()) {
16 serviceOK(request, response, toList(db()->rfidsById(rfidId)));
17 return;
18 }
19 serviceOK(request, response, toList(db()->rfids()));
20}
21
22void ControllerRfids::serviceIdGet(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString& id) {
23 PDEBUG;
24 int rfid = id.toInt();
25 if (rfid <= 0) {
26 serviceError(request, response, 404, "not-found", "NotFound");
27 return;
28 }
29 auto list = db()->rfids(rfid);
30 if (list.isEmpty()) {
31 serviceError(request, response, 404, "not-found", "NotFound");
32 return;
33 }
34 serviceOK(request, response, list[0].toMap());
35}
36
37void ControllerRfids::serviceIdPut(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariantMap& data) {
38 serviceOK(request, response, putKey(db()->save(Dbt::Rfids::fromMap(data))));
39}
40
41void ControllerRfids::serviceIdPost(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariantMap& data) {
42 serviceIdPut(request, response, data);
43}
44
45void ControllerRfids::serviceIdDelete(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString& id) {
46 db()->remove(Dbt::Rfids(id.toInt()));
47 serviceOK(request, response);
48}
Virtuální třída pro vyřizování unifikovaných Http požadavků na server API.
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 serviceList(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) Q_DECL_OVERRIDE
Pošle chybovou odpověď
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 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.