7#ifndef _Httpd_AbstractController_H_
8#define _Httpd_AbstractController_H_
14#include "httprequesthandler.h"
20namespace HobrasoftHttpd {
21class HttpRequestHandler;
30#define AUTHORIZEREQUEST(x) \
31if (!isAuthorized(x)) { \
32 serviceError(request, response, 401, "Unauthorized", \
33 QString("Your user account is not authorized to access this page (%1)") \
34 .arg(Security::Permissions::toString(x)) ); \
144 virtual void service(HobrasoftHttpd::HttpRequest *
request, HobrasoftHttpd::HttpResponse *response);
153 AuthenticatedUser *authenticatedUser()
const {
return m_authorizer->authenticatedUser(); }
190 virtual bool exists(HobrasoftHttpd::HttpRequest *
request,
const QString&
id) {
201 virtual void serviceOK (HobrasoftHttpd::HttpRequest *
request, HobrasoftHttpd::HttpResponse *response,
const QVariant& data = QVariant() );
220 virtual void serviceError (HobrasoftHttpd::HttpRequest *
request, HobrasoftHttpd::HttpResponse *response,
int code,
const QString& error,
const QString& reason);
239 virtual void serviceError (HobrasoftHttpd::HttpRequest *
request, HobrasoftHttpd::HttpResponse *response,
int code,
const QString& error,
const QVariantMap& data);
246 virtual void serviceList (HobrasoftHttpd::HttpRequest *
request, HobrasoftHttpd::HttpResponse *response);
253 virtual void serviceEvents (HobrasoftHttpd::HttpRequest *
request, HobrasoftHttpd::HttpResponse *response);
262 virtual void serviceIdEvents (HobrasoftHttpd::HttpRequest *
request, HobrasoftHttpd::HttpResponse *response,
const QString&
id);
269 virtual void serviceIdGet (HobrasoftHttpd::HttpRequest *
request, HobrasoftHttpd::HttpResponse *response,
const QString&
id);
276 virtual void serviceIdDelete (HobrasoftHttpd::HttpRequest *
request, HobrasoftHttpd::HttpResponse *response,
const QString&
id);
283 virtual void serviceIdPut (HobrasoftHttpd::HttpRequest *
request, HobrasoftHttpd::HttpResponse *response,
const QVariantMap& data);
290 virtual void serviceIdPost (HobrasoftHttpd::HttpRequest *
request, HobrasoftHttpd::HttpResponse *response,
const QVariantMap& data);
298 virtual void serviceEvent (HobrasoftHttpd::HttpRequest *
request, HobrasoftHttpd::HttpResponse *response,
const QVariant& data);
302 HobrasoftHttpd::HttpRequest *
request()
const;
303 HobrasoftHttpd::HttpConnection *
connection()
const;
305 static QVariantMap putKey(
const QVariant& key) {
313 #ifndef DOXYGEN_SHOULD_SKIP_THIS
314 HobrasoftHttpd::HttpRequest *m_request;
315 HobrasoftHttpd::HttpConnection *m_connection;
317 RequestAuthorizer *m_authorizer;
Virtuální třída pro vyřizování unifikovaných Http požadavků na server API.
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 existu...
AbstractController(HobrasoftHttpd::HttpConnection *parent)
Konstruktor.
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 bool exists(HobrasoftHttpd::HttpRequest *request, const QString &id)
Kontrola existence zadaného ID.
bool checkId() const
Vrací stav kontroly položky ID v datech při PUT a POST.
HobrasoftHttpd::HttpConnection * connection() const
Vrací ukazatel na aktuální connection.
virtual void serviceEvent(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariant &data)
Pošle do otevřeného proudu událostí jednu událost.
void setCheckId(bool x)
Nastavuje kontrolu položky ID v datech při PUT a POST.
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 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 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 serviceError(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, int code, const QString &error, const QVariantMap &data)
Pošle chybovou odpověď
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 existu...
virtual void service(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response)
Obsluha požadavku.
virtual void serviceOK(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QVariant &data=QVariant())
Pošle odpověď 200 OK.
virtual bool exists(const QString &id)
Kontrola existence zadaného ID.
HobrasoftHttpd::HttpRequest * request() const
Vrací ukazatel na aktuální request.
virtual void serviceList(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response)
Měl by poslat v odpovědi kompletní seznam všech objektů ve třídě a ukončit se.
Kontroluje přihlašování uživatelů a jejich oprávnění přes webové rozhraní
Jmenný prostor pro obsluhu konkrétních HTTP požadavků aplikace.
Permission
Seznam jednotlivých oprávnění