PNP_PIbd-31_Rodionov_I_A_Co.../apiserver.h
2024-12-24 18:02:23 +04:00

47 lines
1.5 KiB
C++

#ifndef APISERVER_H
#define APISERVER_H
#include <QCoreApplication>
#include <QHttpServer>
#include <QHttpServerResponse>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#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:
QHttpServer server;
DeviceLogic *deviceLogic;
DepartmentLogic *departmentLogic;
DeviceModelLogic *deviceModelLogic;
DeviceTypeLogic *deviceTypeLogic;
LocationLogic *locationLogic;
ManufacturerLogic *manufacturerLogic;
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 <typename T>
QJsonArray createJsonArray(const QMap<int, T> &items);
};
#endif // APISERVER_H