~aleteoryx/muditaos

f5a24d127269b7286cbac3e8789832102255456b — Pawel Olejniczak 5 years ago 08e1023
[EGD-5788] Fix json formatting in message endpoint responses

Responses had redundant anonymous objects which impeded parsing jsons.
M module-services/service-desktop/endpoints/messages/MessageHelper.cpp => module-services/service-desktop/endpoints/messages/MessageHelper.cpp +25 -32
@@ 204,19 204,17 @@ namespace parserFSM
                [=](db::QueryResult *result, Context context) {
                    if (auto smsResult = dynamic_cast<db::query::SMSGetByThreadIDResult *>(result)) {

                        auto paginationInfo = json11::Json::object{
                            {json::messages::totalCount, 0},
                            {json::messages::nextPage,
                             json11::Json::object{{json::messages::offset, 0}, {json::messages::limit, 0}}}};

                        json11::Json::array smsArray;
                        for (const auto &record : smsResult->getResults()) {
                            smsArray.emplace_back(MessageHelper::toJson(record));
                        }

                        json11::Json::array responseBody;
                        responseBody.emplace_back(paginationInfo);
                        responseBody.emplace_back(json11::Json::array{{json::messages::entries, smsArray}});
                        auto responseBody = json11::Json::object{
                            {json::messages::totalCount, 0},
                            {json::messages::nextPage,
                             json11::Json::object{{json::messages::offset, 0}, {json::messages::limit, 0}}},
                            {json::messages::entries, smsArray},
                        };

                        context.setResponseBody(responseBody);
                        MessageHandler::putToSendQueue(context.createSimpleResponse());


@@ 276,20 274,19 @@ namespace parserFSM
                [=](db::QueryResult *result, Context context) {
                    if (auto smsResult = dynamic_cast<db::query::SMSGetResult *>(result)) {

                        auto paginationInfo = json11::Json::object{
                            {json::messages::totalCount, 0},
                            {json::messages::nextPage,
                             json11::Json::object{{json::messages::offset, 0}, {json::messages::limit, 0}}}};

                        json11::Json::array smsArray;
                        for (const auto &record : smsResult->getRecords()) {
                            smsArray.emplace_back(MessageHelper::toJson(record));
                            LOG_DEBUG("Record found!: %" PRIu32 "\n", record.ID);
                        }

                        json11::Json::array responseBody;
                        responseBody.emplace_back(paginationInfo);
                        responseBody.emplace_back(json11::Json::array{{json::messages::entries, smsArray}});
                        auto responseBody = json11::Json::object{
                            {json::messages::totalCount, 0},
                            {json::messages::nextPage,
                             json11::Json::object{{json::messages::offset, 0}, {json::messages::limit, 0}}},
                            {json::messages::entries, smsArray},
                        };

                        context.setResponseBody(responseBody);
                        MessageHandler::putToSendQueue(context.createSimpleResponse());
                        return true;


@@ 398,19 395,17 @@ namespace parserFSM
                [=](db::QueryResult *result, Context context) {
                    if (auto smsTemplateResult = dynamic_cast<db::query::SMSTemplateGetResult *>(result)) {

                        auto paginationInfo = json11::Json::object{
                            {json::messages::totalCount, 0},
                            {json::messages::nextPage,
                             json11::Json::object{{json::messages::offset, 0}, {json::messages::limit, 0}}}};

                        json11::Json::array smsTemplateArray;
                        for (const auto &record : smsTemplateResult->getResults()) {
                            smsTemplateArray.emplace_back(toJson(record));
                        }

                        json11::Json::array responseBody;
                        responseBody.emplace_back(paginationInfo);
                        responseBody.emplace_back(json11::Json::array{{json::messages::entries, smsTemplateArray}});
                        auto responseBody = json11::Json::object{
                            {json::messages::totalCount, 0},
                            {json::messages::nextPage,
                             json11::Json::object{{json::messages::offset, 0}, {json::messages::limit, 0}}},
                            {json::messages::entries, smsTemplateArray},
                        };

                        context.setResponseBody(responseBody);
                        MessageHandler::putToSendQueue(context.createSimpleResponse());


@@ 545,19 540,17 @@ namespace parserFSM
            [=](db::QueryResult *result, Context context) {
                if (auto threadsResults = dynamic_cast<db::query::ThreadsGetResults *>(result)) {

                    auto paginationInfo = json11::Json::object{
                        {json::messages::totalCount, 0},
                        {json::messages::nextPage,
                         json11::Json::object{{json::messages::offset, 0}, {json::messages::limit, 0}}}};

                    json11::Json::array threadsArray;
                    for (const auto &record : threadsResults->getResults()) {
                        threadsArray.emplace_back(MessageHelper::toJson(record));
                    }

                    json11::Json::array responseBody;
                    responseBody.emplace_back(paginationInfo);
                    responseBody.emplace_back(json11::Json::array{{json::messages::entries, threadsArray}});
                    auto responseBody = json11::Json::object{
                        {json::messages::totalCount, 0},
                        {json::messages::nextPage,
                         json11::Json::object{{json::messages::offset, 0}, {json::messages::limit, 0}}},
                        {json::messages::entries, threadsArray},
                    };

                    context.setResponseBody(responseBody);
                    MessageHandler::putToSendQueue(context.createSimpleResponse());

M test/pytest/service-desktop/test_messages.py => test/pytest/service-desktop/test_messages.py +3 -3
@@ 21,7 21,7 @@ def test_messages(harness):
    ret = harness.endpoint_request("messages", "get", body)
    assert ret["status"] == status["OK"]

    messages = ret["body"][1][1]  # getting entries
    messages = ret["body"]["entries"]  # getting entries
    messages_count = len(messages)
    assert messages_count == count



@@ 31,7 31,7 @@ def test_messages(harness):
    ret = harness.endpoint_request("messages", "get", body)
    assert ret["status"] == status["OK"]

    messages = ret["body"][1][1]  # getting entries
    messages = ret["body"]["entries"]  # getting entries
    messages_count = len(messages)
    assert messages_count == number_of_requested_messages



@@ 41,7 41,7 @@ def test_messages(harness):
    ret = harness.endpoint_request("messages", "get", body)
    assert ret["status"] == status["OK"]

    for message in ret["body"][1][1]:
    for message in ret["body"]["entries"]:
        assert message["threadID"] == thread_id

    # remove message

M test/pytest/service-desktop/test_templates.py => test/pytest/service-desktop/test_templates.py +3 -3
@@ 27,7 27,7 @@ def test_templates(harness):
    body = {"category": "template", "limit": count}
    ret = harness.endpoint_request("messages", "get", body)
    assert ret["status"] == status["OK"]
    assert len(ret["body"][1][1]) == count
    assert len(ret["body"]["entries"]) == count

    # getting a number of templates
    number_of_requested_templates = 3


@@ 35,7 35,7 @@ def test_templates(harness):
    ret = harness.endpoint_request("messages", "get", body)
    assert ret["status"] == status["OK"]

    templates = ret["body"][1][1]  # getting entries
    templates = ret["body"]["entries"]  # getting entries
    templates_count = len(templates)
    assert templates_count == number_of_requested_templates



@@ 61,7 61,7 @@ def test_templates(harness):
    assert ret["status"] == status["OK"]

    templateid = 0
    for template in ret["body"][1][1]:
    for template in ret["body"]["entries"]:
        if template["templateBody"] == "test template":
            templateid = template["templateID"]
            break

M test/pytest/service-desktop/test_threads.py => test/pytest/service-desktop/test_threads.py +1 -1
@@ 17,7 17,7 @@ def test_threads(harness):
    ret = harness.endpoint_request("messages", "get", body)
    assert ret["status"] == status["OK"]

    threads = ret["body"][1][1]  # getting entries
    threads = ret["body"]["entries"]  # getting entries
    threads_count = len(threads)
    assert threads_count == number_of_requested_threads