qswiki/handlers/handler.h

38 lines
932 B
C++

#ifndef HANDLER_H
#define HANDLER_H
#include "../response.h"
#include "../request.h"
#include "../template.h"
#include "../database/database.h"
#include "../urlprovider.h"
#include "../database/queryoption.h"
#include "../logger.h"
#include "../cache/icache.h"
class Handler
{
protected:
ICache *cache;
Template *templ;
Database *database;
Session *userSession;
UrlProvider *urlProvider;
QueryOption queryOption(const Request &r) const;
public:
Handler(Template &templ, Database &db, Session &userSession, UrlProvider &provider, ICache &cache)
{
this->templ = &templ;
this->database = &db;
this->userSession = &userSession;
this->urlProvider = &provider;
this->cache = &cache;
}
virtual Response handle(const Request &r) = 0;
void setGeneralVars(TemplatePage &page);
virtual ~Handler() { }
Response errorResponse(std::string errortitle, std::string errormessage, int status = 200);
};
#endif // HANDLER_H