Timesheets-Server
Timesheets server
Načítám...
Vyhledávám...
Nebylo nic nalezeno
controllerattendancesummary.cpp
1#include "controllerattendancesummary.h"
2#include "httprequest.h"
3#include "db.h"
4#include "pdebug.h"
5#include <QDate>
6
7using namespace Httpd;
8
9
10ControllerAttendanceSummary::ControllerAttendanceSummary(HobrasoftHttpd::HttpConnection *parent) : AbstractController(parent) {
11}
12
13
14void ControllerAttendanceSummary::serviceList(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) {
15 int employee = request->parameter("employee").toInt();
16 QString smonth = request->parameter("month");
17 QDate month = QDate::fromString(smonth + "-01", "yyyy-MM-dd");
18 serviceOK(request, response, toList(db()->attendanceSummary(employee, month)));
19}
20
21
22void ControllerAttendanceSummary::serviceIdGet(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString &id) {
23 QDate month = QDate::fromString(id + "-01", "yyyy-MM-dd");
24 int employee = request->parameter("employee").toInt();
25 auto list = db()->attendanceSummary(employee, month);
26 if (list.isEmpty()) {
27 serviceError(request, response, 404, "not-found", "NotFound");
28 return;
29 }
30 serviceOK(request, response, list.first().toMap());
31}
32
33
34void ControllerAttendanceSummary::serviceIdPut(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariantMap &data) {
35 Dbt::AttendanceSummary x = Dbt::AttendanceSummary::fromMap(data);
36 x.locked_user = authenticatedUser()->user();
37 serviceOK(request, response, putKey(db()->save(x)));
38}
39
40
41void ControllerAttendanceSummary::serviceIdPost(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariantMap &data) {
42 serviceIdPut(request, response, data);
43}
44
45
46void ControllerAttendanceSummary::serviceIdDelete(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString &id) {
47 QDate month = QDate::fromString(id + "-01", "yyyy-MM-dd");
48 int employee = request->parameter("employee").toInt();
50 x.month = month;
51 x.employee = employee;
52 db()->remove(x);
53 serviceOK(request, response);
54}
55
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 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 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 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.