Timesheets-Server
Timesheets server
Načítám...
Vyhledávám...
Nebylo nic nalezeno
Dokumentace třídy Httpd::RequestMapper

Zpracovává HTTP požadavky, vyřizuje speciální požadavky. ...

#include <requestmapper.h>

Diagram dědičnosti pro třídu Httpd::RequestMapper:

Veřejné metody

 RequestMapper (HobrasoftHttpd::HttpConnection *parent)
 Konstruktor.
 
void service (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response)
 Vyřizuje jeden požadavek.
 

Privátní metody

void serviceShtmlFile (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response)
 
QByteArray readFile (const QString &path, HobrasoftHttpd::HttpResponse *response)
 

Privátní atributy

QString m_path
 Obsluhovaná cesta (URL adresa)
 
RequestAuthorizerm_authorizer
 

Detailní popis

Zpracovává HTTP požadavky, vyřizuje speciální požadavky.

Statické soubory a shtml stačí zpracovávat defaultním handlerem HobrasoftHttpd::HttpRequestHandler, ale požadavky dotazující vnitřní stav aplikace musejí být naprogramované v C++

Definice je uvedena na řádku 32 v souboru requestmapper.h.

Dokumentace konstruktoru a destruktoru

◆ ~RequestMapper()

RequestMapper::~RequestMapper ( )

Definice je uvedena na řádku 56 v souboru requestmapper.cpp.

56 {
57}

◆ RequestMapper()

RequestMapper::RequestMapper ( HobrasoftHttpd::HttpConnection * parent)

Konstruktor.

Definice je uvedena na řádku 60 v souboru requestmapper.cpp.

60 : HobrasoftHttpd::HttpRequestHandler(parent) {
61 // PDEBUG << parent->thread() << this->thread();
62 m_authorizer = new RequestAuthorizer(parent);
63}
Kontroluje přihlašování uživatelů a jejich oprávnění přes webové rozhraní

Dokumentace členských funkcí

◆ readFile()

QByteArray RequestMapper::readFile ( const QString & path,
HobrasoftHttpd::HttpResponse * response )
private

Definice je uvedena na řádku 153 v souboru requestmapper.cpp.

◆ service()

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

Vyřizuje jeden požadavek.

Rozděluje podle typu požadavku do specializovaných handlerů

Po přihlášení zpracovává ostatní speciální požadavky (event streamy).

Definice je uvedena na řádku 66 v souboru requestmapper.cpp.

66 {
67 m_path = request->path();
68 PDEBUG << request->method() << request->fullPath();
69
70 #define ROUTER(adresa, trida) \
71 if (m_path.startsWith(adresa)) { \
72 AbstractController *controller = new trida (connection()); \
73 controller->setAuthorizer(m_authorizer); \
74 controller->service(request, response); \
75 return; \
76 }
77
78 if (m_path.contains(QRegExp("^/public/.*\\.shtml"))) {
79 serviceShtmlFile(request, response);
80 response->flush();
81 return;
82 }
83
84 if (m_path.startsWith("/index.html") || m_path == "/") {
85 StaticFileController(connection()).service(request, response);
86 response->flush();
87 return;
88 }
89
90 if (m_path.startsWith("/public/")) {
91 StaticFileController(connection()).service(request, response);
92 response->flush();
93 return;
94 }
95
96
97 // Možné bez přihlášení
98 ROUTER("/api/v1/overview/0x", ControllerOverviewPublic);
99 ROUTER("/api/v1/server/about", ControllerServer);
100
101 // Kontrola přihlášení
102 if (!m_authorizer->isLoggedIn(request, response)) {
103 return;
104 }
105
109 ROUTER("/api/v1/categoriessiblings", ControllerCategoriesSiblings);
110 ROUTER("/api/v1/tickettimesheets", ControllerTicketTimesheets);
111 ROUTER("/api/v1/categoriestoroot", ControllerCategoriesToRoot);
112 ROUTER("/api/v1/statustemplates", ControllerStatusTemplates);
113 ROUTER("/api/v1/userscategories", ControllerUsersCategories);
114 ROUTER("/api/v1/categoriestree", ControllerCategoriesTree);
115 ROUTER("/api/v1/ticketvalues", ControllerTicketValues);
116 ROUTER("/api/v1/ticketstatus", ControllerTicketStatus);
117 ROUTER("/api/v1/ticketfiles", ControllerTicketFiles);
118 ROUTER("/api/v1/statusorder", ControllerStatusOrder);
119 ROUTER("/api/v1/categories", ControllerCategories);
120 ROUTER("/api/v1/ticketsvw", ControllerTicketsVw);
121 ROUTER("/api/v1/timesheet", ControllerTimesheet);
122 ROUTER("/api/v1/overview", ControllerOverview);
123 ROUTER("/api/v1/statuses", ControllerStatuses);
124 ROUTER("/api/v1/tickets", ControllerTickets);
125 ROUTER("/api/v1/server", ControllerServer);
126 ROUTER("/api/v1/users", ControllerUsers);
127
128 if (m_path.contains(QRegExp(".*\\.shtml"))) {
129 serviceShtmlFile(request, response);
130 response->flush();
131 return;
132 }
133
134 StaticFileController(connection()).service(request, response);
135}
Vrací seznam kategorií od zadané kategorie až k rootu.
Manipulace s kategoriemi.
Vrací podklady pro tištěný pracovní výkaz.
Vrací podklady pro tištěný pracovní výkaz.
Vrací informace o serveru.
Vrací informace o pořadí přechodů mezi jednotlivými stavy ticketu.
Manipulace se šablonami stavů
Manipulace se stavy ticketů
Manipulace se soubory ticketů
Manipulace se stavy ticketů
Manipulace se záznamy pracovního výkazu.
Manipulace s přibalenými objekty ticketů
Manipuluje s informacemi o ticketech.
Manipuluje s informacemi o ticketech.
Nastartování nebo zastavení pracovního výkazu.
Manipulace s uživateli.
bool isLoggedIn(HobrasoftHttpd::HttpRequest *, HobrasoftHttpd::HttpResponse *)
Řídí přihlašování k webovému rozhraní
QString m_path
Obsluhovaná cesta (URL adresa)

◆ serviceShtmlFile()

void RequestMapper::serviceShtmlFile ( HobrasoftHttpd::HttpRequest * request,
HobrasoftHttpd::HttpResponse * response )
private

Definice je uvedena na řádku 138 v souboru requestmapper.cpp.

138 {
139 Q_UNUSED(request);
140 QByteArray data;
141 try {
142 data = readFile(m_path, response);
143 }
144 catch (...) {
145 return;
146 }
147 response->setHeader("Content-Type", "text/html; charset=" + connection()->settings()->encoding());
148 response->write(data);
149 response->flush();
150}

Dokumentace datových členů

◆ m_authorizer

RequestAuthorizer* Httpd::RequestMapper::m_authorizer
private

Definice je uvedena na řádku 53 v souboru requestmapper.h.

◆ m_path

QString Httpd::RequestMapper::m_path
private

Obsluhovaná cesta (URL adresa)

Definice je uvedena na řádku 51 v souboru requestmapper.h.


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