Files
wlan-cloud-ucentralfms/src/RESTAPI_firmwaresHandler.cpp
stephb9959 586a60b48f Initial
2021-05-10 00:07:49 -07:00

48 lines
1.3 KiB
C++

//
// Created by stephane bourque on 2021-05-09.
//
#include "RESTAPI_firmwaresHandler.h"
#include "uStorageService.h"
void RESTAPI_firmwaresHandler::handleRequest(Poco::Net::HTTPServerRequest& Request, Poco::Net::HTTPServerResponse& Response) {
if (!ContinueProcessing(Request, Response))
return;
if (!IsAuthorized(Request, Response))
return;
ParseParameters(Request);
if(Request.getMethod()==Poco::Net::HTTPRequest::HTTP_GET)
DoGet(Request, Response);
else
BadRequest(Response);
}
void RESTAPI_firmwaresHandler::DoGet(Poco::Net::HTTPServerRequest& Request, Poco::Net::HTTPServerResponse& Response) {
try {
auto Offset = GetParameter("offset", 0);
auto Limit = GetParameter("limit", 100);
std::vector<uCentral::Objects::Firmware> List;
if (uCentral::Storage::GetFirmwares(Offset, Limit, List)) {
Poco::JSON::Array ObjectArray;
for(const auto &i:List) {
Poco::JSON::Object Obj;
i.to_json(Obj);
ObjectArray.add(Obj);
}
Poco::JSON::Object RetObj;
RetObj.set("firmwares",ObjectArray);
ReturnObject(RetObj,Response);
return;
}
} catch(const Poco::Exception &E) {
Logger_.log(E);
}
BadRequest(Response);
}