#ifndef APISERVER_H #define APISERVER_H #include #include #include #include #include #include #include "service/businesslogic/devicelogic.h" #include "service/businesslogic/departmentlogic.h" #include "service/businesslogic/devicemodellogic.h" #include "service/businesslogic/devicetypelogic.h" #include "service/businesslogic/locationlogic.h" #include "service/businesslogic/manufacturerlogic.h" class ApiServer { public: ApiServer(); void start(ServiceLoadDB *serviceDB); private: QHttpServerResponse handleGetFilteredDevices(const QHttpServerRequest &request); QHttpServerResponse handleGetAllDepartments(const QHttpServerRequest &request); QHttpServerResponse handleGetAllDeviceModels(const QHttpServerRequest &request); QHttpServerResponse handleGetAllDeviceTypes(const QHttpServerRequest &request); QHttpServerResponse handleGetAllLocations(const QHttpServerRequest &request); QHttpServerResponse handleGetAllManufacturers(const QHttpServerRequest &request); QHttpServerResponse handleUpdateDevice(int id, const QHttpServerRequest &request); template QJsonArray createJsonArray(const QMap &items); template T getQueryParamWithDefault(const QUrlQuery &query, const QString ¶mName, const T &defaultValue); private: const QSet validSortOrders = {"Сначала новые", "Сначала старые", "Сначала дешевые", "Сначала дорогие", "Сначала с лайком"}; const QSet validEntityTypeNumbers = {0, 1, 2, 3, 4, 5}; QHttpServer _server; DeviceLogic *_deviceLogic; DepartmentLogic *_departmentLogic; DeviceModelLogic *_deviceModelLogic; DeviceTypeLogic *_deviceTypeLogic; LocationLogic *_locationLogic; ManufacturerLogic *_manufacturerLogic; }; #endif // APISERVER_H