~aleteoryx/muditaos

ref: 56f819c95f070c533876d8c6fe04b3b7ad656fd9 muditaos/module-services/service-desktop/endpoints/Factory.cpp -rw-r--r-- 2.1 KiB
56f819c9 — Bartek Cichocki [EGD-3522] added missing queries 5 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "EndpointHandler.hpp"
#include "ParserStateMachine.hpp"
#include "DesktopMessages.hpp"
#include "ServiceDesktop.hpp"

sys::ReturnCodes EndpointHandler::factory(
    uint8_t httpMethod, uint32_t uuid, json11::Json &body, std::string &responseStr, sys::Service *ownerService)
{
    if (httpMethod == static_cast<uint8_t>(ParserStateMachine::http::Method::post)) {
        json11::Json responseBodyJson;

        if (body[ParserStateMachine::json::factoryRequest] == true) {
            auto msg = std::make_shared<sdesktop::FactoryMessage>();
            sys::Bus::SendUnicast(msg, service::name::service_desktop, ownerService);

            responseBodyJson = json11::Json::object({{ParserStateMachine::json::factoryRequest, true}});
        }
        else {
            responseBodyJson = json11::Json::object({{ParserStateMachine::json::factoryRequest, false}});
        }

        json11::Json responsePayloadJson = json11::Json::object(
            {{ParserStateMachine::json::endpoint, static_cast<int>(ParserStateMachine::Endpoint::factory)},
             {ParserStateMachine::json::status, static_cast<int>(ParserStateMachine::http::Code::OK)},
             {ParserStateMachine::json::uuid, std::to_string(uuid)},
             {ParserStateMachine::json::body, responseBodyJson}});

        responseStr = EndpointHandler::buildResponseStr(responsePayloadJson.dump().size(), responsePayloadJson.dump());

        return sys::ReturnCodes::Success;
    }
    else {
        json11::Json responseBodyJson = json11::Json::object({{ParserStateMachine::json::factoryRequest, false}});

        json11::Json responsePayloadJson = json11::Json::object(
            {{ParserStateMachine::json::endpoint, static_cast<int>(ParserStateMachine::Endpoint::factory)},
             {ParserStateMachine::json::status, static_cast<int>(ParserStateMachine::http::Code::BadRequest)},
             {ParserStateMachine::json::uuid, std::to_string(uuid)},
             {ParserStateMachine::json::body, responseBodyJson}});

        responseStr = EndpointHandler::buildResponseStr(responsePayloadJson.dump().size(), responsePayloadJson.dump());

        return sys::ReturnCodes::Failure;
    }
}