Timesheets-Server
Timesheets server
Načítám...
Vyhledávám...
Nebylo nic nalezeno
controllercategoriestree.cpp
Zobrazit dokumentaci tohoto souboru.
1
8#include "httprequest.h"
9#include "pdebug.h"
10#include "db.h"
11
12using namespace Httpd;
13
14
15ControllerCategoriesTree::ControllerCategoriesTree(HobrasoftHttpd::HttpConnection *parent) : AbstractController(parent) {
16 m_maxdepth = 128;
17}
18
19
20void ControllerCategoriesTree::serviceList (HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) {
21 return serviceIdGet(request, response, QString());
22}
23
24
25void ControllerCategoriesTree::serviceIdGet(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response, const QString& id) {
26 if (request->parameter("maxdepth") != "") {
27 m_maxdepth = request->parameter("maxdepth").toInt();
28 }
29 serviceOK(request, response, subtree(id, 0));
30}
31
32
33QVariantList ControllerCategoriesTree::subtree(const QString& id, int depth) {
34 if (depth > m_maxdepth) { return QVariantList(); }
35 depth += 1;
36 QList<Dbt::Categories> list = db()->subcategories(id);
37 QVariantList tree;
38 for (int i=0; i<list.size(); i++) {
39 QVariantMap x = list[i].toMap();
40 x["categories"] = subtree(list[i].category, depth);
41 tree << x;
42 }
43 return tree;
44}
45
46
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 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.
void serviceList(HobrasoftHttpd::HttpRequest *request, HobrasoftHttpd::HttpResponse *response) Q_DECL_OVERRIDE
Měl by poslat v odpovědi kompletní seznam všech objektů ve třídě a ukončit se.
Jmenný prostor pro obsluhu konkrétních HTTP požadavků aplikace.