Timesheets-Server
Timesheets server
Načítám...
Vyhledávám...
Nebylo nic nalezeno
Dokumentace třídy Httpd::ControllerDoorEmployees
Diagram dědičnosti pro třídu Httpd::ControllerDoorEmployees:
Httpd::AbstractController

Veřejné metody

 ControllerDoorEmployees (HobrasoftHttpd::HttpConnection *parent)
Veřejné metody dědí se z Httpd::AbstractController
 AbstractController (HobrasoftHttpd::HttpConnection *parent)
 Konstruktor.
void setCheckId (bool x)
 Nastavuje kontrolu položky ID v datech při PUT a POST.
void setAuthorizer (RequestAuthorizer *authorizer)
AuthenticatedUserauthenticatedUser () const
bool checkId () const
 Vrací stav kontroly položky ID v datech při PUT a POST.
Db::Databasedb ()

Chráněné metody

void service (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) Q_DECL_OVERRIDE
 Obsluha požadavku.
void serviceGet (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, int door, int employee)
void servicePut (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, int door, const QVariantMap &data)
void serviceDelete (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, int door, int employee)
Chráněné metody dědí se z Httpd::AbstractController
virtual bool exists (const QString &id)
 Kontrola existence zadaného ID.
virtual bool exists (HobrasoftHttpd::HttpRequest *request, const QString &id)
 Kontrola existence zadaného ID.
virtual void serviceOK (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariant &data=QVariant())
 Pošle odpověď 200 OK.
virtual void serviceList (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response)
 Pošle chybovou odpověď
virtual void serviceEvents (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response)
 Pošle v odpovědi kompletní seznam všech objektů ve třídě a následně
virtual void serviceIdEvents (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString &id)
 Pošle v odpovědi proud událostí spojených se všemi objekty ve třídě
virtual void serviceIdGet (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString &id)
 Pošle odpověď na požadavek konkrétního ID metodou GET.
virtual void serviceIdDelete (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString &id)
 Pošle odpověď na požadavek konkrétního ID metodou DELETE - obvykle objekt smaže.
virtual void serviceIdPut (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariantMap &data)
 Pošle odpověď na požadavek konkrétního ID metodou PUT - obvykle vloží nový objekt nebo přepíše existující objekt.
virtual void serviceIdPost (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariantMap &data)
 Pošle odpověď na požadavek konkrétního ID metodou PUT - obvykle vloží nový objekt nebo přepíše existující objekt.
virtual void serviceEvent (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariant &data)
 Pošle do otevřeného proudu událostí jednu událost.
virtual bool isAuthorized (Security::Permissions::Permission)
HobrasoftHttpd::HttpRequest * request () const
 Vrací ukazatel na aktuální request.
HobrasoftHttpd::HttpConnection * connection () const
 Vrací ukazatel na aktuální connection.

Další zděděné členy

Statické chráněné metody dědí se z Httpd::AbstractController
static QVariantMap putKey (const QVariant &key)

Detailní popis

Definice je uvedena na řádku 8 v souboru controllerdooremployees.h.

Dokumentace konstruktoru a destruktoru

◆ ControllerDoorEmployees()

ControllerDoorEmployees::ControllerDoorEmployees ( HobrasoftHttpd::HttpConnection * parent)

Definice je uvedena na řádku 10 v souboru controllerdooremployees.cpp.

11 : AbstractController(parent) {}
AbstractController(HobrasoftHttpd::HttpConnection *parent)
Konstruktor.

Dokumentace členských funkcí

◆ service()

void ControllerDoorEmployees::service ( HobrasoftHttpd::HttpRequest * request,
HobrasoftHttpd::HttpResponse * response )
protectedvirtual

Obsluha požadavku.

Reimplementuje stejnojmenný prvek z Httpd::AbstractController.

Definice je uvedena na řádku 13 v souboru controllerdooremployees.cpp.

14{
15 static const QRegularExpression re("^/api/v1/doors/(\\d+)/employees(?:/(\\d+))?/?$");
16 auto m = re.match(request->path());
17 if (!m.hasMatch()) {
18 serviceError(request, response, 405, "bad-request", "Invalid request");
19 return;
20 }
21
22 int door = m.captured(1).toInt();
23 int employee = m.captured(2).isEmpty() ? -1 : m.captured(2).toInt();
24
25 if (request->method() == "GET") {
26 serviceGet(request, response, door, employee);
27 return;
28 }
29
30 if (request->method() == "PUT") {
31 bool ok = false;
32 QVariantMap data = JSON::data(request->body(), &ok).toMap();
33 if (!ok) {
34 serviceError(request, response, 400, "bad-request", "Could not parse JSON data");
35 return;
36 }
37 servicePut(request, response, door, data);
38 return;
39 }
40
41 if (request->method() == "DELETE") {
42 if (employee <= 0) {
43 serviceError(request, response, 400, "bad-request", "Employee id required");
44 return;
45 }
46 serviceDelete(request, response, door, employee);
47 return;
48 }
49
50 serviceError(request, response, 405, "bad-request", "Invalid request");
51}
HobrasoftHttpd::HttpRequest * request() const
Vrací ukazatel na aktuální request.
static QVariant data(const QByteArray &json)
Converts json to data.
Definition json.cpp:69

◆ serviceDelete()

void ControllerDoorEmployees::serviceDelete ( HobrasoftHttpd::HttpRequest * request,
HobrasoftHttpd::HttpResponse * response,
int door,
int employee )
protected

Definice je uvedena na řádku 78 v souboru controllerdooremployees.cpp.

79{
80 db()->remove(Dbt::EmployeeCanOpenDoor(employee, door));
81 serviceOK(request, response);
82}
virtual void serviceOK(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariant &data=QVariant())
Pošle odpověď 200 OK.

◆ serviceGet()

void ControllerDoorEmployees::serviceGet ( HobrasoftHttpd::HttpRequest * request,
HobrasoftHttpd::HttpResponse * response,
int door,
int employee )
protected

Definice je uvedena na řádku 53 v souboru controllerdooremployees.cpp.

54{
55 Dbt::EmployeeCanOpenDoor filter;
56 filter.door = door;
57 filter.employee = employee > 0 ? employee : 0;
58 auto list = db()->employeeCanOpenDoor(filter);
59 if (employee > 0) {
60 if (list.isEmpty()) {
61 serviceError(request, response, 404, "not-found", "NotFound");
62 return;
63 }
64 serviceOK(request, response, list.first().toMap());
65 } else {
66 serviceOK(request, response, toList(list));
67 }
68}

◆ servicePut()

void ControllerDoorEmployees::servicePut ( HobrasoftHttpd::HttpRequest * request,
HobrasoftHttpd::HttpResponse * response,
int door,
const QVariantMap & data )
protected

Definice je uvedena na řádku 70 v souboru controllerdooremployees.cpp.

71{
72 QVariantMap d = data;
73 d["door"] = door;
74 db()->save(Dbt::EmployeeCanOpenDoor::fromMap(d));
75 serviceOK(request, response);
76}

Dokumentace pro tuto třídu byla vygenerována z následujících souborů: