~aleteoryx/muditaos

39fc37907152098d2de25bc4257917f3ae7cfa94 — Bartosz Cichocki 5 years ago fe86716
[EGD-4399] no response fix (#1061)

[EGD-4400] added contact ID sending after contact adding

Co-authored-by: SP2FET <bartosz.cichocki@mudita.com>
M module-db/Interface/ContactRecord.cpp => module-db/Interface/ContactRecord.cpp +1 -1
@@ 297,7 297,7 @@ auto ContactRecordInterface::addQuery(std::shared_ptr<db::Query> query) -> std::
{
    auto addQuery = dynamic_cast<db::query::ContactAdd *>(query.get());
    auto ret      = ContactRecordInterface::Add(addQuery->rec);
    auto response = std::make_unique<db::query::ContactAddResult>(ret);
    auto response = std::make_unique<db::query::ContactAddResult>(ret, addQuery->rec.ID);
    response->setRequestQuery(query);
    return response;
}

M module-db/queries/phonebook/QueryContactAdd.cpp => module-db/queries/phonebook/QueryContactAdd.cpp +1 -1
@@ 11,7 11,7 @@ using namespace db::query;
ContactAdd::ContactAdd(const ContactRecord &rec) : Query(Query::Type::Read), rec(std::move(rec))
{}

ContactAddResult::ContactAddResult(bool result) : result(result)
ContactAddResult::ContactAddResult(bool result, unsigned int id) : result(result), id(id)
{}

[[nodiscard]] auto ContactAdd::debugInfo() const -> std::string

M module-db/queries/phonebook/QueryContactAdd.hpp => module-db/queries/phonebook/QueryContactAdd.hpp +7 -2
@@ 24,15 24,20 @@ namespace db::query
    class ContactAddResult : public QueryResult
    {
      public:
        ContactAddResult(bool result);
        auto getResult() -> bool
        ContactAddResult(bool result, unsigned int id);
        [[nodiscard]] auto getResult() const noexcept -> bool
        {
            return result;
        }
        [[nodiscard]] auto getID() const noexcept -> unsigned int
        {
            return id;
        }
        [[nodiscard]] auto debugInfo() const -> std::string override;

      private:
        bool result;
        unsigned int id;
    };

}; // namespace db::query

M module-services/service-desktop/endpoints/contacts/ContactHelper.cpp => module-services/service-desktop/endpoints/contacts/ContactHelper.cpp +4 -0
@@ 139,6 139,8 @@ auto ContactHelper::createDBEntry(Context &context) -> sys::ReturnCodes
    auto newRecord = from_json(context.getBody());
    if (newRecord.numbers.empty()) {
        LOG_ERROR("Empty number, not added!");
        context.setResponseStatus(http::Code::NotAcceptable);
        MessageHandler::putToSendQueue(context.createSimpleResponse());
        return sys::ReturnCodes::Failure;
    }



@@ 148,6 150,8 @@ auto ContactHelper::createDBEntry(Context &context) -> sys::ReturnCodes
        [](db::QueryResult *result, Context context) {
            if (auto contactResult = dynamic_cast<db::query::ContactAddResult *>(result)) {

                context.setResponseBody(
                    json11::Json::object({{json::contacts::id, static_cast<int>(contactResult->getID())}}));
                context.setResponseStatus(contactResult->getResult() ? http::Code::OK
                                                                     : http::Code::InternalServerError);
                MessageHandler::putToSendQueue(context.createSimpleResponse());