Files
wlan-cloud-ucentralfms/src/RESTAPI_connectedDeviceHandler.cpp
2021-08-05 08:24:05 -07:00

48 lines
1.6 KiB
C++

//
// Created by stephane bourque on 2021-07-18.
//
#include "RESTAPI_connectedDeviceHandler.h"
#include "RESTAPI_FMSObjects.h"
#include "StorageService.h"
#include "RESTAPI_protocol.h"
namespace uCentral {
void RESTAPI_connectedDeviceHandler::handleRequest(Poco::Net::HTTPServerRequest &Request,
Poco::Net::HTTPServerResponse &Response) {
if (!ContinueProcessing(Request, Response))
return;
if (!IsAuthorized(Request, Response))
return;
if (Request.getMethod() == Poco::Net::HTTPRequest::HTTP_GET)
DoGet(Request, Response);
else
BadRequest(Request, Response);
}
void RESTAPI_connectedDeviceHandler::DoGet(Poco::Net::HTTPServerRequest &Request,
Poco::Net::HTTPServerResponse &Response) {
try {
auto SerialNumber = GetBinding(RESTAPI::Protocol::SERIALNUMBER,"");
if(SerialNumber.empty()) {
BadRequest(Request, Response, "SerialNumber must be specified.");
return;
}
FMSObjects::DeviceConnectionInformation DevInfo;
if(Storage()->GetDevice(SerialNumber, DevInfo)) {
Poco::JSON::Object Answer;
DevInfo.to_json(Answer);
ReturnObject(Request, Answer, Response);
return;
}
NotFound(Request, Response);
return;
} catch (const Poco::Exception &E) {
Logger_.log(E);
}
BadRequest(Request, Response);
}
}