~aleteoryx/muditaos

14a01945b619c7d3410256b2234d01359fb655c1 — Wiktor S. Ovalle Correa 4 years ago 4dbab1b
[EGD-6485] ServiceDB cleanup

Remove old unused ServiceDB API and deprecate its remains still being
in use.
30 files changed, 39 insertions(+), 908 deletions(-)

M module-apps/application-calllog/ApplicationCallLog.cpp
M module-apps/application-calllog/windows/CallLogDetailsWindow.cpp
M module-apps/application-messages/windows/SMSTemplatesWindow.cpp
M module-apps/application-messages/windows/SMSTemplatesWindow.hpp
M module-apps/application-messages/windows/SearchResults.cpp
M module-apps/application-notes/ApplicationNotes.cpp
M module-apps/application-notes/windows/NoteMainWindow.cpp
M module-apps/application-onboarding/ApplicationOnBoarding.cpp
M module-services/service-db/CMakeLists.txt
M module-services/service-db/DBServiceAPI.cpp
M module-services/service-db/ServiceDB.cpp
M module-services/service-db/messages/DBCalllogMessage.cpp
M module-services/service-db/messages/DBContactMessage.cpp
D module-services/service-db/messages/DBCountryCodeMessage.cpp
D module-services/service-db/messages/DBNotesMessage.cpp
D module-services/service-db/messages/DBSMSMessage.cpp
D module-services/service-db/messages/DBSMSTemplateMessage.cpp
M module-services/service-db/messages/DBServiceMessage.cpp
D module-services/service-db/messages/DBThreadMessage.cpp
M module-services/service-db/messages/QueryMessage.cpp
M module-services/service-db/service-db/DBCalllogMessage.hpp
M module-services/service-db/service-db/DBContactMessage.hpp
D module-services/service-db/service-db/DBCountryCodeMessage.hpp
D module-services/service-db/service-db/DBNotesMessage.hpp
D module-services/service-db/service-db/DBSMSMessage.hpp
D module-services/service-db/service-db/DBSMSTemplateMessage.hpp
M module-services/service-db/service-db/DBServiceAPI.hpp
D module-services/service-db/service-db/DBThreadMessage.hpp
M module-services/service-desktop/tests/test-contacts.cpp
M source/MessageType.hpp
M module-apps/application-calllog/ApplicationCallLog.cpp => module-apps/application-calllog/ApplicationCallLog.cpp +0 -1
@@ 10,7 10,6 @@
#include "windows/CallLogOptionsWindow.hpp"

#include <service-db/DBServiceAPI.hpp>
#include <service-db/DBMessage.hpp>
#include <Dialog.hpp>
#include <OptionWindow.hpp>
#include <i18n/i18n.hpp>

M module-apps/application-calllog/windows/CallLogDetailsWindow.cpp => module-apps/application-calllog/windows/CallLogDetailsWindow.cpp +0 -1
@@ 13,7 13,6 @@

#include "../ApplicationCallLog.hpp"

#include <service-db/DBMessage.hpp>
#include <i18n/i18n.hpp>

#include "../data/CallLogInternals.hpp" // TODO: alek: add easier paths

M module-apps/application-messages/windows/SMSTemplatesWindow.cpp => module-apps/application-messages/windows/SMSTemplatesWindow.cpp +1 -8
@@ 1,4 1,4 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "SMSTemplatesWindow.hpp"


@@ 8,7 8,6 @@
#include "application-messages/data/MessagesStyle.hpp"

#include <service-appmgr/Controller.hpp>
#include <service-db/DBSMSTemplateMessage.hpp>
#include <i18n/i18n.hpp>
#include <Style.hpp>
#include <log/log.hpp>


@@ 103,10 102,4 @@ namespace gui
        }
    }

    bool SMSTemplatesWindow::onDatabaseMessage(sys::Message *msgl)
    {
        auto msg = dynamic_cast<DBSMSTemplateResponseMessage *>(msgl);
        return msg && smsTemplateModel->updateRecords(*msg->records);
    }

} /* namespace gui */

M module-apps/application-messages/windows/SMSTemplatesWindow.hpp => module-apps/application-messages/windows/SMSTemplatesWindow.hpp +1 -2
@@ 1,4 1,4 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once


@@ 33,7 33,6 @@ namespace gui
        void rebuild() override;
        void buildInterface() override;
        void destroyInterface() override;
        bool onDatabaseMessage(sys::Message *msg) override;
    };

} /* namespace gui */

M module-apps/application-messages/windows/SearchResults.cpp => module-apps/application-messages/windows/SearchResults.cpp +1 -3
@@ 1,4 1,4 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "SearchResults.hpp"


@@ 8,9 8,7 @@
#include "module-apps/application-messages/data/MessagesStyle.hpp"
#include "queries/messages/threads/QueryThreadsSearchForList.hpp"

#include <service-db/DBThreadMessage.hpp>
#include <service-db/QueryMessage.hpp>
#include <service-db/DBMessage.hpp>

#include <i18n/i18n.hpp>


M module-apps/application-notes/ApplicationNotes.cpp => module-apps/application-notes/ApplicationNotes.cpp +0 -1
@@ 10,7 10,6 @@
#include "windows/SearchEngineWindow.hpp"
#include "windows/SearchResultsWindow.hpp"

#include <service-db/DBMessage.hpp>
#include <service-db/QueryMessage.hpp>

#include <module-apps/application-notes/presenter/NotesMainWindowPresenter.hpp>

M module-apps/application-notes/windows/NoteMainWindow.cpp => module-apps/application-notes/windows/NoteMainWindow.cpp +1 -2
@@ 1,4 1,4 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "NoteMainWindow.hpp"


@@ 7,7 7,6 @@
#include <module-apps/application-notes/data/NoteSwitchData.hpp>

#include <InputEvent.hpp>
#include <service-db/DBNotesMessage.hpp>

#include <i18n/i18n.hpp>


M module-apps/application-onboarding/ApplicationOnBoarding.cpp => module-apps/application-onboarding/ApplicationOnBoarding.cpp +0 -1
@@ 16,7 16,6 @@
#include "windows/OnBoardingDateAndTimeWindow.hpp"
#include "windows/OnBoardingChangeDateAndTimeWindow.hpp"

#include <service-db/DBMessage.hpp>
#include <module-services/service-appmgr/service-appmgr/messages/GetCurrentDisplayLanguageResponse.hpp>
#include <module-apps/application-settings-new/data/LanguagesData.hpp>
#include <module-services/service-db/agents/settings/SystemSettings.hpp>

M module-services/service-db/CMakeLists.txt => module-services/service-db/CMakeLists.txt +1 -6
@@ 7,15 7,10 @@ set(SOURCES
    DBServiceAPI_GetByQuery.cpp
    DatabaseAgent.cpp
    ServiceDB.cpp
        messages/DBCalllogMessage.cpp
    messages/DBCalllogMessage.cpp
    messages/DBContactMessage.cpp
    messages/DBCountryCodeMessage.cpp
    messages/DBNotesMessage.cpp
    messages/DBNotificationMessage.cpp
    messages/DBServiceMessage.cpp
    messages/DBSMSMessage.cpp
    messages/DBSMSTemplateMessage.cpp
    messages/DBThreadMessage.cpp
    messages/QueryMessage.cpp
    agents/settings/SettingsAgent.cpp
    agents/settings/Settings.cpp

M module-services/service-db/DBServiceAPI.cpp => module-services/service-db/DBServiceAPI.cpp +0 -95
@@ 2,11 2,8 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "service-db/DBServiceAPI.hpp"
#include "service-db/DBThreadMessage.hpp"
#include "service-db/DBContactMessage.hpp"
#include "service-db/DBNotesMessage.hpp"
#include "service-db/DBCalllogMessage.hpp"
#include "service-db/DBCountryCodeMessage.hpp"
#include "service-db/DBServiceMessage.hpp"
#include "service-db/QueryMessage.hpp"
#include "service-db/DBServiceName.hpp"


@@ 50,22 47,6 @@ auto DBServiceAPI::ThreadGetByNumber(sys::Service *serv,
    return nullptr;
}

auto DBServiceAPI::ThreadGetCount(sys::Service *serv, EntryState state) -> uint32_t
{
    auto msg = std::make_shared<DBThreadGetCountMessage>(state);

    auto ret            = serv->bus.sendUnicast(msg, service::name::db, DefaultTimeoutInMs);
    auto threadResponse = dynamic_cast<DBThreadResponseMessage *>(ret.second.get());
    if (threadResponse == nullptr) {
        LOG_ERROR("DB response error, return code: %s", c_str(ret.first));
        return 0;
    }
    if ((ret.first == sys::ReturnCodes::Success) && (threadResponse->retCode == 1)) {
        return threadResponse->count;
    }
    return 0;
}

auto DBServiceAPI::ContactGetByID(sys::Service *serv, uint32_t contactID) -> std::unique_ptr<std::vector<ContactRecord>>
{
    ContactRecord rec;


@@ 116,18 97,6 @@ auto DBServiceAPI::ContactGetBySpeeddial(sys::Service *serv, UTF8 speeddial)
    return ContactGetByIDCommon(serv, msg);
}

auto DBServiceAPI::ContactGetByPhoneNumber(sys::Service *serv, UTF8 phoneNumber)
    -> std::unique_ptr<std::vector<ContactRecord>>
{
    ContactRecord rec;
    auto number = ContactRecord::Number(utils::PhoneNumber(phoneNumber).getView(), ContactNumberType ::PAGER);
    rec.numbers.push_back(number);

    std::shared_ptr<DBContactMessage> msg = std::make_shared<DBContactMessage>(MessageType::DBContactGetByNumber, rec);

    return ContactGetByIDCommon(serv, msg);
}

auto DBServiceAPI::MatchContactByPhoneNumber(sys::Service *serv, const utils::PhoneNumber::View &numberView)
    -> std::unique_ptr<ContactRecord>
{


@@ 228,27 197,6 @@ auto DBServiceAPI::ContactUpdate(sys::Service *serv, const ContactRecord &rec) -
    return false;
}

auto DBServiceAPI::ContactSearch(sys::Service *serv, UTF8 primaryName, UTF8 alternativeName, UTF8 number)
    -> std::unique_ptr<std::vector<ContactRecord>>
{
    std::shared_ptr<DBContactSearchMessage> msg =
        std::make_shared<DBContactSearchMessage>(MessageType::DBContactSearch,
                                                 (primaryName.length() > 0) ? primaryName.c_str() : "",
                                                 (alternativeName.length() > 0) ? alternativeName.c_str() : "",
                                                 (number.length() > 0) ? number.c_str() : "");

    auto ret             = serv->bus.sendUnicast(std::move(msg), service::name::db, DefaultTimeoutInMs);
    auto contactResponse = dynamic_cast<DBContactResponseMessage *>(ret.second.get());
    if (contactResponse == nullptr) {
        LOG_ERROR("DB response error, return code: %s", c_str(ret.first));
        return nullptr;
    }
    if ((ret.first == sys::ReturnCodes::Success) && (contactResponse->retCode != 0)) {
        return std::move(contactResponse->records);
    }
    return std::make_unique<std::vector<ContactRecord>>();
}

auto DBServiceAPI::CalllogAdd(sys::Service *serv, const CalllogRecord &rec) -> CalllogRecord
{
    std::shared_ptr<DBCalllogMessage> msg = std::make_shared<DBCalllogMessage>(MessageType::DBCalllogAdd, rec);


@@ 306,49 254,6 @@ auto DBServiceAPI::CalllogUpdate(sys::Service *serv, const CalllogRecord &rec) -
    return false;
}

auto DBServiceAPI::CalllogGetCount(sys::Service *serv, EntryState state) -> uint32_t
{
    std::shared_ptr<DBCalllogMessage> msg = std::make_shared<DBCalllogGetCount>(state);

    auto ret             = serv->bus.sendUnicast(msg, service::name::db, DefaultTimeoutInMs);
    auto calllogResponse = dynamic_cast<DBCalllogResponseMessage *>(ret.second.get());
    if (calllogResponse == nullptr) {
        LOG_ERROR("DB response error, return code: %s", c_str(ret.first));
        return 0;
    }
    if ((ret.first == sys::ReturnCodes::Success) && (calllogResponse->retCode != 0)) {
        return calllogResponse->count;
    }
    return 0;
}

auto DBServiceAPI::CalllogGetLimitOffset(sys::Service *serv, uint32_t offset, uint32_t limit) -> bool
{
    std::shared_ptr<DBCalllogMessage> msg = std::make_shared<DBCalllogMessage>(MessageType::DBCalllogGetLimitOffset);
    msg->offset                           = offset;
    msg->limit                            = limit;

    serv->bus.sendUnicast(msg, service::name::db);
    return true;
}

auto DBServiceAPI::GetCountryCodeByMCC(sys::Service *serv, uint32_t mcc) -> uint32_t
{
    std::shared_ptr<DBCountryCodeMessage> msg =
        std::make_shared<DBCountryCodeMessage>(MessageType::DBCountryCode, mcc, 0);

    auto ret      = serv->bus.sendUnicast(msg, service::name::db, DefaultTimeoutInMs);
    auto response = dynamic_cast<DBCountryCodeResponseMessage *>(ret.second.get());
    if (response == nullptr) {
        LOG_ERROR("DB response error, return code: %s", c_str(ret.first));
        return 0;
    }
    if (ret.first == sys::ReturnCodes::Success) {
        return (response->row.country_code);
    }
    return 0;
}

auto DBServiceAPI::DBBackup(sys::Service *serv, std::string backupPath) -> bool
{
    LOG_INFO("DBBackup %s", backupPath.c_str());

M module-services/service-db/ServiceDB.cpp => module-services/service-db/ServiceDB.cpp +0 -315
@@ 5,13 5,8 @@

#include "service-db/DBCalllogMessage.hpp"
#include "service-db/DBContactMessage.hpp"
#include "service-db/DBCountryCodeMessage.hpp"
#include "service-db/DBNotesMessage.hpp"
#include "service-db/DBNotificationMessage.hpp"
#include "service-db/DBSMSMessage.hpp"
#include "service-db/DBSMSTemplateMessage.hpp"
#include "service-db/DBServiceMessage.hpp"
#include "service-db/DBThreadMessage.hpp"
#include "service-db/QueryMessage.hpp"
#include "service-db/DatabaseAgent.hpp"
#include "agents/quotes/QuotesAgent.cpp"


@@ 107,191 102,6 @@ sys::MessagePointer ServiceDB::DataReceivedHandler(sys::DataMessage *msgl, sys::
    std::shared_ptr<sys::ResponseMessage> responseMsg;
    auto type = static_cast<MessageType>(msgl->messageType);
    switch (type) {

        /*
         * SMS records
         */

    case MessageType::DBSMSAdd: {
        auto time         = utils::time::Scoped("DBSMSAdd");
        DBSMSMessage *msg = reinterpret_cast<DBSMSMessage *>(msgl);
        auto ret          = smsRecordInterface->Add(msg->record);
        if (ret == true) {
            // update db ID in response message
            auto record    = std::make_unique<std::vector<SMSRecord>>();
            msg->record.ID = smsRecordInterface->GetLastID();
            record->push_back(msg->record);
            LOG_INFO("SMS added, record ID: %" PRIu32, msg->record.ID);
            responseMsg = std::make_shared<DBSMSResponseMessage>(std::move(record), ret);
            sendUpdateNotification(db::Interface::Name::SMS, db::Query::Type::Create);
        }
    } break;

    case MessageType::DBSMSRemove: {
        auto time         = utils::time::Scoped("DBSMSRemove");
        DBSMSMessage *msg = reinterpret_cast<DBSMSMessage *>(msgl);
        auto ret          = smsRecordInterface->RemoveByID(msg->record.ID);
        responseMsg       = std::make_shared<DBSMSResponseMessage>(nullptr, ret);
        sendUpdateNotification(db::Interface::Name::SMS, db::Query::Type::Delete);
        auto thread = threadRecordInterface->GetByID((msg->record.threadID));
        if (!thread.isValid()) {
            LOG_DEBUG("also thread has been deleted");
            sendUpdateNotification(db::Interface::Name::SMSThread, db::Query::Type::Delete);
        }
    } break;

    case MessageType::DBSMSUpdate: {
        auto time         = utils::time::Scoped("DBSMSUpdate");
        DBSMSMessage *msg = reinterpret_cast<DBSMSMessage *>(msgl);
        auto ret          = smsRecordInterface->Update(msg->record);
        responseMsg       = std::make_shared<DBSMSResponseMessage>(nullptr, ret);
        sendUpdateNotification(db::Interface::Name::SMS, db::Query::Type::Update);
    } break;

    case MessageType::DBSMSGetSMSLimitOffset: {
        auto time         = utils::time::Scoped("DBSMSGetSMSLimitOffset");
        DBSMSMessage *msg = reinterpret_cast<DBSMSMessage *>(msgl);
        auto ret          = smsRecordInterface->GetLimitOffset(msg->offset, msg->limit);
        responseMsg       = std::make_shared<DBSMSResponseMessage>(std::move(ret), true);
    } break;

    case MessageType::DBSMSGetSMSLimitOffsetByThreadID: {
        auto time         = utils::time::Scoped("DBSMSGetSMSLimitOffsetByThreadID");
        DBSMSMessage *msg = reinterpret_cast<DBSMSMessage *>(msgl);
        auto ret          = smsRecordInterface->GetLimitOffsetByField(
            msg->offset, msg->limit, SMSRecordField::ThreadID, std::to_string(msg->id).c_str());
        responseMsg = std::make_shared<DBSMSResponseMessage>(std::move(ret), true);
    } break;

    case MessageType::DBSMSGetLastRecord: {
        auto time    = utils::time::Scoped("DBSMSGetLastRecord");
        uint32_t id  = smsRecordInterface->GetLastID();
        auto rec     = smsRecordInterface->GetByID(id);
        auto records = std::make_unique<std::vector<SMSRecord>>();
        records->push_back(rec);
        responseMsg = std::make_shared<DBSMSResponseMessage>(std::move(records), true);
        break;
    }
    case MessageType::DBSMSGetCount: {
        auto time   = utils::time::Scoped("DBSMSGetCount");
        auto ret    = smsRecordInterface->GetCount();
        responseMsg = std::make_shared<DBSMSResponseMessage>(nullptr, true, ret);
        break;
    }
        /**
         * Thread records
         */

    case MessageType::DBThreadGet: {
        auto time            = utils::time::Scoped("DBThreadGet");
        DBThreadMessage *msg = reinterpret_cast<DBThreadMessage *>(msgl);
        auto ret             = threadRecordInterface->GetByID(msg->id);
        auto records         = std::make_unique<std::vector<ThreadRecord>>();
        records->push_back(ret);
        responseMsg = std::make_shared<DBThreadResponseMessage>(std::move(records), ret.isValid());
    } break;

    case MessageType::DBThreadGetForContact: {
        auto time = utils::time::Scoped("DBThreadGetForContact");
        auto msg  = dynamic_cast<DBThreadMessageGet *>(msgl);
        if (!msg) {
            LOG_ERROR("ERROR wrong message sent!");
        }
        auto ret     = threadRecordInterface->GetByContact(msg->contactID);
        auto records = std::make_unique<std::vector<ThreadRecord>>();
        records->push_back(ret);
        responseMsg = std::make_shared<DBThreadResponseMessage>(std::move(records), ret.isValid());
    }; break;

    case MessageType::DBThreadRemove: {
        auto time            = utils::time::Scoped("DBThreadRemove");
        DBThreadMessage *msg = reinterpret_cast<DBThreadMessage *>(msgl);
        auto ret             = threadRecordInterface->RemoveByID(msg->id);
        responseMsg          = std::make_shared<DBThreadResponseMessage>(nullptr, ret);
        sendUpdateNotification(db::Interface::Name::SMSThread, db::Query::Type::Delete);
    } break;

    case MessageType::DBThreadGetCount: {
        auto *msg   = static_cast<DBThreadGetCountMessage *>(msgl);
        auto time   = utils::time::Scoped("DBThreadGetCountMessage");
        auto ret    = threadRecordInterface->GetCount(msg->state);
        responseMsg = std::make_shared<DBThreadResponseMessage>(nullptr, true, 0, 0, ret);
    } break;

    case MessageType::DBThreadUpdate: {
        auto time   = utils::time::Scoped("DBThreadUpdate");
        auto msg    = static_cast<DBThreadMessage *>(msgl);
        auto ret    = threadRecordInterface->Update(msg->record);
        responseMsg = std::make_shared<DBThreadResponseMessage>(nullptr, true, 0, 0, ret);
        sendUpdateNotification(db::Interface::Name::SMSThread, db::Query::Type::Update);
    } break;

        /**
         * SMS templates records
         */

    case MessageType::DBSMSTemplateAdd: {
        auto time   = utils::time::Scoped("DBSMSTemplateAdd");
        auto msg    = static_cast<DBSMSTemplateMessage *>(msgl);
        auto ret    = smsTemplateRecordInterface->Add(msg->record);
        responseMsg = std::make_shared<DBSMSTemplateResponseMessage>(nullptr, ret);
    } break;

    case MessageType::DBSMSTemplateUpdate: {
        auto time   = utils::time::Scoped("DBSMSTemplateUpdate");
        auto msg    = static_cast<DBSMSTemplateMessage *>(msgl);
        auto ret    = smsTemplateRecordInterface->Update(msg->record);
        responseMsg = std::make_shared<DBSMSTemplateResponseMessage>(nullptr, ret);
    }; break;

    case MessageType::DBSMSTemplateRemove: {
        auto time   = utils::time::Scoped("DBSMSTemplateRemove");
        auto msg    = static_cast<DBSMSTemplateMessage *>(msgl);
        auto ret    = smsTemplateRecordInterface->RemoveByID(msg->id);
        responseMsg = std::make_shared<DBSMSTemplateResponseMessage>(nullptr, ret);
    } break;

    case MessageType::DBSMSTemplateGetLimitOffset: {
        auto time   = utils::time::Scoped("DBSMSTemplateGetLimitOffset");
        auto msg    = static_cast<DBSMSTemplateMessage *>(msgl);
        auto ret    = smsTemplateRecordInterface->GetLimitOffset(msg->offset, msg->limit);
        responseMsg = std::make_shared<DBSMSTemplateResponseMessage>(
            std::move(ret), true, msg->limit, msg->offset, ret->size(), type);
    } break;

    case MessageType::DBSMSTemplateGetCount: {
        auto time   = utils::time::Scoped("DBSMSTemplateGetCount");
        auto ret    = smsTemplateRecordInterface->GetCount();
        responseMsg = std::make_shared<DBSMSTemplateResponseMessage>(nullptr, true, 0, 0, ret);
    } break;

        /**
         * Contact records
         */

    case MessageType::DBContactAdd: {
        auto time             = utils::time::Scoped("DBContactAdd");
        DBContactMessage *msg = reinterpret_cast<DBContactMessage *>(msgl);
        auto ret              = contactRecordInterface->Add(msg->record);
        responseMsg           = std::make_shared<DBContactResponseMessage>(nullptr, ret);
        sendUpdateNotification(db::Interface::Name::Contact, db::Query::Type::Create);
    } break;

    case MessageType::DBContactGetByName: {
        auto time             = utils::time::Scoped("DBContactGetByName");
        DBContactMessage *msg = reinterpret_cast<DBContactMessage *>(msgl);
        auto ret              = contactRecordInterface->GetByName(msg->record.primaryName, msg->record.alternativeName);
        responseMsg           = std::make_shared<DBContactResponseMessage>(
            std::move(ret), true, msg->limit, msg->offset, msg->favourite, ret->size(), type);
    } break;

    case MessageType::DBContactSearch: {
        auto time                   = utils::time::Scoped("DBContactSearch");
        DBContactSearchMessage *msg = reinterpret_cast<DBContactSearchMessage *>(msgl);
        auto ret    = contactRecordInterface->Search(msg->primaryName, msg->alternativeName, msg->number);
        responseMsg = std::make_shared<DBContactResponseMessage>(std::move(ret), true);
    } break;

    case MessageType::DBContactGetByID: {
        auto time             = utils::time::Scoped("DBContactGetByID");
        DBContactMessage *msg = reinterpret_cast<DBContactMessage *>(msgl);


@@ 316,19 126,6 @@ sys::MessagePointer ServiceDB::DataReceivedHandler(sys::DataMessage *msgl, sys::
                                                                 MessageType::DBContactGetBySpeedDial);
    } break;

    case MessageType::DBContactGetByNumber: {
        auto time             = utils::time::Scoped("DBContactGetByNumber");
        DBContactMessage *msg = reinterpret_cast<DBContactMessage *>(msgl);
        auto ret              = contactRecordInterface->GetByNumber(msg->record.numbers[0].number);
        responseMsg           = std::make_shared<DBContactResponseMessage>(std::move(ret),
                                                                 true,
                                                                 msg->limit,
                                                                 msg->offset,
                                                                 msg->favourite,
                                                                 ret->size(),
                                                                 MessageType::DBContactGetByNumber);
    } break;

    case MessageType::DBContactMatchByNumber: {
        auto time = utils::time::Scoped("DBContactMatchByNumber");
        auto *msg = dynamic_cast<DBContactNumberMessage *>(msgl);


@@ 344,96 141,6 @@ sys::MessagePointer ServiceDB::DataReceivedHandler(sys::DataMessage *msgl, sys::
        }
    } break;

    case MessageType::DBContactRemove: {
        auto time             = utils::time::Scoped("DBContactRemove");
        DBContactMessage *msg = reinterpret_cast<DBContactMessage *>(msgl);
        auto ret              = contactRecordInterface->RemoveByID(msg->id);
        responseMsg           = std::make_shared<DBContactResponseMessage>(nullptr, ret);
        sendUpdateNotification(db::Interface::Name::Contact, db::Query::Type::Delete);
    } break;

    case MessageType::DBContactBlock: {
        auto time           = utils::time::Scoped("DBContactBlock");
        DBContactBlock *msg = reinterpret_cast<DBContactBlock *>(msgl);
        auto ret            = contactRecordInterface->BlockByID(msg->id, msg->shouldBeBlocked);
        responseMsg         = std::make_shared<DBContactResponseMessage>(nullptr, ret);
    } break;

    case MessageType::DBContactUpdate: {
        auto time             = utils::time::Scoped("DBContactUpdate");
        DBContactMessage *msg = reinterpret_cast<DBContactMessage *>(msgl);
        auto ret              = contactRecordInterface->Update(msg->record);
        responseMsg           = std::make_shared<DBContactResponseMessage>(nullptr, ret);
        sendUpdateNotification(db::Interface::Name::Contact, db::Query::Type::Update);
    } break;

    case MessageType::DBContactGetCount: {
        auto time             = utils::time::Scoped("DBContactGetCount");
        DBContactMessage *msg = reinterpret_cast<DBContactMessage *>(msgl);
        uint32_t ret          = 0;
        if (msg->favourite)
            ret = contactRecordInterface->GetCountFavourites();
        else
            ret = contactRecordInterface->GetCount();
        responseMsg = std::make_shared<DBContactResponseMessage>(nullptr, true, 0, 0, msg->favourite, ret);
    } break;

    case MessageType::DBContactGetLimitOffset: {
        auto time             = utils::time::Scoped("DBContactGetLimitOffset");
        DBContactMessage *msg = reinterpret_cast<DBContactMessage *>(msgl);
        std::unique_ptr<std::vector<ContactRecord>> ret;

        ret = contactRecordInterface->GetLimitOffset(msg->offset, msg->limit);

        responseMsg = std::make_shared<DBContactResponseMessage>(std::move(ret),
                                                                 true,
                                                                 msg->limit,
                                                                 msg->offset,
                                                                 msg->favourite,
                                                                 ret->size(),
                                                                 MessageType::DBContactGetLimitOffset);

    } break;

        /**
         * Notes records
         */

    case MessageType::DBNotesAdd: {
        auto time           = utils::time::Scoped("DBNotesAdd");
        DBNotesMessage *msg = reinterpret_cast<DBNotesMessage *>(msgl);
        auto ret            = notesRecordInterface->Add(msg->record);
        responseMsg         = std::make_shared<DBNotesResponseMessage>(nullptr, ret);
    } break;

    case MessageType::DBNotesRemove: {
        auto time           = utils::time::Scoped("DBNotesRemove");
        DBNotesMessage *msg = reinterpret_cast<DBNotesMessage *>(msgl);
        auto ret            = notesRecordInterface->RemoveByID(msg->id);
        responseMsg         = std::make_shared<DBNotesResponseMessage>(nullptr, ret);
    } break;

    case MessageType::DBNotesUpdate: {
        auto time           = utils::time::Scoped("DBNotesUpdate");
        DBNotesMessage *msg = reinterpret_cast<DBNotesMessage *>(msgl);
        auto ret            = notesRecordInterface->Update(msg->record);
        responseMsg         = std::make_shared<DBNotesResponseMessage>(nullptr, ret);
    } break;

    case MessageType::DBNotesGetCount: {
        auto time   = utils::time::Scoped("DBNotesGetCount");
        auto ret    = notesRecordInterface->GetCount();
        responseMsg = std::make_shared<DBNotesResponseMessage>(nullptr, true, 0, 0, ret);
    } break;

    case MessageType::DBNotesGetLimitOffset: {
        auto time           = utils::time::Scoped("DBNotesGetLimitOffset");
        DBNotesMessage *msg = reinterpret_cast<DBNotesMessage *>(msgl);
        auto ret            = notesRecordInterface->GetLimitOffset(msg->offset, msg->limit);
        responseMsg =
            std::make_shared<DBNotesResponseMessage>(std::move(ret), true, msg->limit, msg->offset, ret->size());
    } break;

        /**
         * Calllog records
         */


@@ 470,28 177,6 @@ sys::MessagePointer ServiceDB::DataReceivedHandler(sys::DataMessage *msgl, sys::
        sendUpdateNotification(db::Interface::Name::Calllog, db::Query::Type::Update);
    } break;

    case MessageType::DBCalllogGetCount: {
        auto *msg = dynamic_cast<DBCalllogGetCount *>(msgl);
        assert(msg);
        auto time   = utils::time::Scoped("DBCalllogGetCount");
        auto ret    = calllogRecordInterface->GetCount(msg->state);
        responseMsg = std::make_shared<DBCalllogResponseMessage>(nullptr, true, 0, 0, ret);
    } break;

    case MessageType::DBCalllogGetLimitOffset: {
        auto time             = utils::time::Scoped("DBCalllogGetLimitOffset");
        DBCalllogMessage *msg = reinterpret_cast<DBCalllogMessage *>(msgl);
        auto ret              = calllogRecordInterface->GetLimitOffset(msg->offset, msg->limit);
        responseMsg =
            std::make_shared<DBCalllogResponseMessage>(std::move(ret), true, msg->limit, msg->offset, ret->size());
    } break;

    case MessageType::DBCountryCode: {
        DBCountryCodeMessage *msg = reinterpret_cast<DBCountryCodeMessage *>(msgl);
        auto ret                  = countryCodeRecordInterface->GetByMCC(msg->mcc);
        responseMsg               = std::make_shared<DBCountryCodeResponseMessage>(ret);
    } break;

    case MessageType::DBQuery: {
        auto msg = dynamic_cast<db::QueryMessage *>(msgl);
        assert(msg);

M module-services/service-db/messages/DBCalllogMessage.cpp => module-services/service-db/messages/DBCalllogMessage.cpp +1 -5
@@ 1,8 1,7 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <service-db/DBCalllogMessage.hpp>
#include <service-db/DBMessage.hpp>

#include <CalllogRecord.hpp>



@@ 11,9 10,6 @@ DBCalllogMessage::DBCalllogMessage(MessageType messageType, const CalllogRecord 
    : DBMessage(messageType), record(rec)
{}

DBCalllogGetCount::DBCalllogGetCount(EntryState state) : DBCalllogMessage(MessageType::DBCalllogGetCount), state(state)
{}

DBCalllogResponseMessage ::DBCalllogResponseMessage(std::unique_ptr<std::vector<CalllogRecord>> rec,
                                                    uint32_t retCode,
                                                    uint32_t limit,

M module-services/service-db/messages/DBContactMessage.cpp => module-services/service-db/messages/DBContactMessage.cpp +1 -13
@@ 1,8 1,7 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <service-db/DBContactMessage.hpp>
#include <service-db/DBMessage.hpp>

#include <ContactRecord.hpp>
#include <MessageType.hpp>


@@ 15,17 14,6 @@ DBContactMessage ::DBContactMessage(MessageType messageType, const ContactRecord
    : DBMessage(messageType), record(rec), favourite{favourite}
{}

DBContactBlock::DBContactBlock(MessageType messageType, const uint32_t _id, bool _shouldBeBlocked)
    : DBMessage(messageType), id(_id), shouldBeBlocked(_shouldBeBlocked)
{}

DBContactSearchMessage ::DBContactSearchMessage(MessageType messageType,
                                                const char *_primaryName,
                                                const char *_alternativeName,
                                                const char *_number)
    : DBMessage(messageType), primaryName(_primaryName), alternativeName(_alternativeName), number(_number)
{}

DBContactResponseMessage ::DBContactResponseMessage(std::unique_ptr<std::vector<ContactRecord>> rec,
                                                    uint32_t retCode,
                                                    uint32_t limit,

D module-services/service-db/messages/DBCountryCodeMessage.cpp => module-services/service-db/messages/DBCountryCodeMessage.cpp +0 -16
@@ 1,16 0,0 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <service-db/DBCountryCodeMessage.hpp>
#include <service-db/DBMessage.hpp>

DBCountryCodeMessage::DBCountryCodeMessage(MessageType messageType, const uint32_t _mcc, const uint32_t _country_code)
    : DBMessage(messageType), mcc(_mcc), country_code(_country_code)
{}

DBCountryCodeResponseMessage::DBCountryCodeResponseMessage(const CodesTableRow _row,
                                                           bool retCode,
                                                           int count,
                                                           MessageType respTo)
    : DBResponseMessage(retCode, count, respTo), row(_row)
{}

D module-services/service-db/messages/DBNotesMessage.cpp => module-services/service-db/messages/DBNotesMessage.cpp +0 -23
@@ 1,23 0,0 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <service-db/DBNotesMessage.hpp>
#include <service-db/DBMessage.hpp>

#include <NotesRecord.hpp>

#include <utility>

DBNotesMessage::DBNotesMessage(MessageType messageType, const NotesRecord &rec) : DBMessage(messageType), record(rec)
{}

DBNotesResponseMessage::DBNotesResponseMessage(std::unique_ptr<std::vector<NotesRecord>> rec,
                                               uint32_t retCode,
                                               uint32_t limit,
                                               uint32_t offset,
                                               uint32_t count,
                                               MessageType respTo)
    : DBResponseMessage(retCode, count, respTo), records(std::move(rec)), limit(limit), offset(offset)
{
    this->count = count;
}

D module-services/service-db/messages/DBSMSMessage.cpp => module-services/service-db/messages/DBSMSMessage.cpp +0 -22
@@ 1,22 0,0 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <service-db/DBMessage.hpp>
#include <service-db/DBSMSMessage.hpp>

#include <SMSRecord.hpp>

#include <utility> // for move

DBSMSMessage::DBSMSMessage(MessageType messageType, const SMSRecord &rec) : DBMessage(messageType), record(rec)
{}

DBSMSGetCount::DBSMSGetCount() : DBSMSMessage(MessageType::DBSMSGetCount)
{}

DBSMSResponseMessage::DBSMSResponseMessage(std::unique_ptr<std::vector<SMSRecord>> rec,
                                           uint32_t retCode,
                                           uint32_t count,
                                           MessageType respTo)
    : DBResponseMessage(retCode, count, respTo), records(std::move(rec))
{}

D module-services/service-db/messages/DBSMSTemplateMessage.cpp => module-services/service-db/messages/DBSMSTemplateMessage.cpp +0 -25
@@ 1,25 0,0 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <service-db/DBSMSTemplateMessage.hpp>
#include <service-db/DBMessage.hpp>

#include <SMSTemplateRecord.hpp>

#include <utility> // for move

DBSMSTemplateMessage::DBSMSTemplateMessage(MessageType messageType, const SMSTemplateRecord &rec)
    : DBMessage(messageType), record(rec)
{}

DBSMSTemplateGetCount ::DBSMSTemplateGetCount() : DBSMSTemplateMessage(MessageType::DBSMSTemplateGetCount)
{}

DBSMSTemplateResponseMessage::DBSMSTemplateResponseMessage(std::unique_ptr<std::vector<SMSTemplateRecord>> rec,
                                                           uint32_t retCode,
                                                           uint32_t limit,
                                                           uint32_t offset,
                                                           uint32_t count,
                                                           MessageType respTo)
    : DBResponseMessage(retCode, count, respTo), records(std::move(rec)), limit(limit), offset(offset)
{}

M module-services/service-db/messages/DBServiceMessage.cpp => module-services/service-db/messages/DBServiceMessage.cpp +1 -2
@@ 1,8 1,7 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <service-db/DBServiceMessage.hpp>
#include <service-db/DBMessage.hpp>

DBServiceMessageBackup::DBServiceMessageBackup(MessageType messageType, std::string backupPath)
    : DBMessage(messageType), backupPath(backupPath)

D module-services/service-db/messages/DBThreadMessage.cpp => module-services/service-db/messages/DBThreadMessage.cpp +0 -30
@@ 1,30 0,0 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <service-db/DBThreadMessage.hpp>
#include <service-db/DBMessage.hpp> // for DBMessage, DBResponseMessage

#include <ThreadRecord.hpp> // for ThreadRecord

#include <utility> // for move
DBThreadMessage::DBThreadMessage(MessageType messageType, const ThreadRecord &rec) : DBMessage(messageType), record(rec)
{}

DBThreadMessageGet::DBThreadMessageGet(MessageType messageType, uint32_t contactID)
    : DBMessage(messageType), contactID(contactID)
{}

DBThreadGetCountMessage::DBThreadGetCountMessage(EntryState state)
    : DBMessage(MessageType::DBThreadGetCount), state(state)
{}

DBThreadResponseMessage::DBThreadResponseMessage(std::unique_ptr<std::vector<ThreadRecord>> rec,
                                                 uint32_t retCode,
                                                 uint32_t limit,
                                                 uint32_t offset,
                                                 uint32_t count,
                                                 MessageType respTo)
    : DBResponseMessage(retCode, count, respTo), records(std::move(rec)), limit(limit), offset(offset)
{
    this->count = count;
}

M module-services/service-db/messages/QueryMessage.cpp => module-services/service-db/messages/QueryMessage.cpp +1 -2
@@ 1,8 1,7 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <service-db/QueryMessage.hpp>
#include <service-db/DBMessage.hpp>

#include <BaseInterface.hpp>
#include <Common/Query.hpp>

M module-services/service-db/service-db/DBCalllogMessage.hpp => module-services/service-db/service-db/DBCalllogMessage.hpp +1 -9
@@ 1,4 1,4 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once


@@ 7,7 7,6 @@

#include <Interface/CalllogRecord.hpp>
#include <Common/Common.hpp>
#include <MessageType.hpp>

#include <cstdint>
#include <memory>


@@ 20,13 19,6 @@ class DBCalllogMessage : public DBMessage
    CalllogRecord record;
};

class DBCalllogGetCount : public DBCalllogMessage
{
  public:
    EntryState state;
    DBCalllogGetCount(EntryState state);
};

class DBCalllogResponseMessage : public DBResponseMessage
{
  public:

M module-services/service-db/service-db/DBContactMessage.hpp => module-services/service-db/service-db/DBContactMessage.hpp +1 -23
@@ 1,4 1,4 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once


@@ 82,28 82,6 @@ class DBContactNumberResponseMessage : public sys::ResponseMessage
    std::unique_ptr<ContactRecord> contact;
};

class DBContactBlock : public DBMessage
{
  public:
    DBContactBlock(MessageType messageType, const uint32_t _id, bool _shouldBeBlocked);

    uint32_t id;
    bool shouldBeBlocked;
};

class DBContactSearchMessage : public DBMessage
{
  public:
    DBContactSearchMessage(MessageType messageType,
                           const char *_primaryName,
                           const char *_alternativeName,
                           const char *_number);

    const char *primaryName;
    const char *alternativeName;
    const char *number;
};

class DBContactResponseMessage : public DBResponseMessage
{
  public:

D module-services/service-db/service-db/DBCountryCodeMessage.hpp => module-services/service-db/service-db/DBCountryCodeMessage.hpp +0 -32
@@ 1,32 0,0 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include "DBMessage.hpp"

#include <Interface/CountryCodeRecord.hpp>
#include <MessageType.hpp>
#include <Tables/CountryCodesTable.hpp>

#include <cstdint>

class DBCountryCodeMessage : public DBMessage
{
  public:
    DBCountryCodeMessage(MessageType messageType, const uint32_t _mcc, const uint32_t _country_code);

    uint32_t mcc;
    uint32_t country_code;
};

class DBCountryCodeResponseMessage : public DBResponseMessage
{
  public:
    DBCountryCodeResponseMessage(const CodesTableRow _row,
                                 bool retCode       = true,
                                 int count          = 0,
                                 MessageType respTo = MessageType::MessageTypeUninitialized);

    CodesTableRow row;
};

D module-services/service-db/service-db/DBNotesMessage.hpp => module-services/service-db/service-db/DBNotesMessage.hpp +0 -36
@@ 1,36 0,0 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include "DBMessage.hpp" // for DBMessage, DBResponseMessage

#include <Interface/NotesRecord.hpp>
#include <MessageType.hpp>

#include <cstdint>
#include <memory>
#include <vector>

class DBNotesMessage : public DBMessage
{
  public:
    DBNotesMessage(MessageType messageType, const NotesRecord &rec = NotesRecord{});

    NotesRecord record;
};

class DBNotesResponseMessage : public DBResponseMessage
{
  public:
    DBNotesResponseMessage(std::unique_ptr<std::vector<NotesRecord>> rec,
                           uint32_t retCode   = 0,
                           uint32_t limit     = 0,
                           uint32_t offset    = 0,
                           uint32_t count     = 0,
                           MessageType respTo = MessageType::MessageTypeUninitialized);

    std::unique_ptr<std::vector<NotesRecord>> records;
    uint32_t limit  = 0;
    uint32_t offset = 0;
};

D module-services/service-db/service-db/DBSMSMessage.hpp => module-services/service-db/service-db/DBSMSMessage.hpp +0 -36
@@ 1,36 0,0 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include "DBMessage.hpp" // for DBMessage, DBResponseMessage

#include <Interface/SMSRecord.hpp>
#include <MessageType.hpp>

#include <cstdint>
#include <memory>
#include <vector>

class DBSMSMessage : public DBMessage
{
  public:
    DBSMSMessage(MessageType messageType, const SMSRecord &rec = SMSRecord{});
    SMSRecord record;
};

class DBSMSGetCount : public DBSMSMessage
{
  public:
    DBSMSGetCount();
};

class DBSMSResponseMessage : public DBResponseMessage
{
  public:
    DBSMSResponseMessage(std::unique_ptr<std::vector<SMSRecord>> rec,
                         uint32_t retCode   = 0,
                         uint32_t count     = 0,
                         MessageType respTo = MessageType::MessageTypeUninitialized);
    std::unique_ptr<std::vector<SMSRecord>> records;
};

D module-services/service-db/service-db/DBSMSTemplateMessage.hpp => module-services/service-db/service-db/DBSMSTemplateMessage.hpp +0 -41
@@ 1,41 0,0 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include "DBMessage.hpp" // for DBMessage, DBResponseMessage

#include <Interface/SMSTemplateRecord.hpp>
#include <MessageType.hpp>

#include <cstdint>
#include <memory>
#include <vector>

class DBSMSTemplateMessage : public DBMessage
{
  public:
    DBSMSTemplateMessage(MessageType messageType, const SMSTemplateRecord &rec = SMSTemplateRecord{});
    SMSTemplateRecord record;
};

class DBSMSTemplateGetCount : public DBSMSTemplateMessage
{
  public:
    DBSMSTemplateGetCount();
};

class DBSMSTemplateResponseMessage : public DBResponseMessage
{
  public:
    DBSMSTemplateResponseMessage(std::unique_ptr<std::vector<SMSTemplateRecord>> rec,
                                 uint32_t retCode,
                                 uint32_t limit     = 0,
                                 uint32_t offset    = 0,
                                 uint32_t count     = 0,
                                 MessageType respTo = MessageType::MessageTypeUninitialized);

    std::unique_ptr<std::vector<SMSTemplateRecord>> records;
    uint32_t limit  = 0;
    uint32_t offset = 0;
};

M module-services/service-db/service-db/DBServiceAPI.hpp => module-services/service-db/service-db/DBServiceAPI.hpp +17 -27
@@ 8,7 8,6 @@
#include <Common/Query.hpp>
#include <Interface/CalllogRecord.hpp>
#include <Interface/ContactRecord.hpp>
#include <Interface/NotesRecord.hpp>
#include <Interface/SMSTemplateRecord.hpp>
#include <Interface/ThreadRecord.hpp>
#include <PhoneNumber.hpp>


@@ 32,8 31,6 @@ namespace sys
{
    class Service;
} // namespace sys
struct ContactRecord;
struct NotesRecord;

class DBServiceAPI
{


@@ 50,10 47,10 @@ class DBServiceAPI
        success
    };

    static auto ThreadGetByNumber(sys::Service *serv,
                                  const utils::PhoneNumber::View &phoneNumber,
                                  std::uint32_t timeout = DefaultTimeoutInMs) -> std::unique_ptr<ThreadRecord>;
    static auto ThreadGetCount(sys::Service *serv, EntryState state = EntryState::ALL) -> uint32_t;
    [[deprecated]] static auto ThreadGetByNumber(sys::Service *serv,
                                                 const utils::PhoneNumber::View &phoneNumber,
                                                 std::uint32_t timeout = DefaultTimeoutInMs)
        -> std::unique_ptr<ThreadRecord>;

    /**
     * Queries the database.


@@ 83,19 80,18 @@ class DBServiceAPI
     *
     * @note This function is blocking. It's checking until first error.
     */
    static auto verifyContact(sys::Service *serv, const ContactRecord &rec) -> ContactVerificationResult;
    static auto ContactGetByID(sys::Service *serv, uint32_t contactID) -> std::unique_ptr<std::vector<ContactRecord>>;
    static auto ContactGetByIDWithTemporary(sys::Service *serv, uint32_t contactID)
    [[deprecated]] static auto verifyContact(sys::Service *serv, const ContactRecord &rec) -> ContactVerificationResult;
    [[deprecated]] static auto ContactGetByID(sys::Service *serv, uint32_t contactID)
        -> std::unique_ptr<std::vector<ContactRecord>>;
    [[deprecated]] static auto ContactGetByIDWithTemporary(sys::Service *serv, uint32_t contactID)
        -> std::unique_ptr<std::vector<ContactRecord>>;

  private:
    static auto ContactGetByIDCommon(sys::Service *serv, std::shared_ptr<DBContactMessage> contactMsg)
    [[deprecated]] static auto ContactGetByIDCommon(sys::Service *serv, std::shared_ptr<DBContactMessage> contactMsg)
        -> std::unique_ptr<std::vector<ContactRecord>>;

  public:
    static auto ContactGetBySpeeddial(sys::Service *serv, UTF8 speeddial)
        -> std::unique_ptr<std::vector<ContactRecord>>;
    static auto ContactGetByPhoneNumber(sys::Service *serv, UTF8 phoneNumber)
    [[deprecated]] static auto ContactGetBySpeeddial(sys::Service *serv, UTF8 speeddial)
        -> std::unique_ptr<std::vector<ContactRecord>>;

    /**


@@ 105,22 101,16 @@ class DBServiceAPI
     * @param numberView - number to match contact with
     * @return std::unique_ptr<ContactRecord>
     */
    static auto MatchContactByPhoneNumber(sys::Service *serv, const utils::PhoneNumber::View &numberView)
    [[deprecated]] static auto MatchContactByPhoneNumber(sys::Service *serv, const utils::PhoneNumber::View &numberView)
        -> std::unique_ptr<ContactRecord>;
    static auto ContactAdd(sys::Service *serv, const ContactRecord &rec) -> bool;
    static auto ContactRemove(sys::Service *serv, uint32_t id) -> bool;
    static auto ContactUpdate(sys::Service *serv, const ContactRecord &rec) -> bool;
    static auto ContactSearch(sys::Service *serv, UTF8 primaryName, UTF8 alternativeName, UTF8 number)
        -> std::unique_ptr<std::vector<ContactRecord>>;

    static auto CalllogAdd(sys::Service *serv, const CalllogRecord &rec) -> CalllogRecord;
    static auto CalllogRemove(sys::Service *serv, uint32_t id) -> bool;
    static auto CalllogUpdate(sys::Service *serv, const CalllogRecord &rec) -> bool;
    static auto CalllogGetCount(sys::Service *serv, EntryState state = EntryState::ALL) -> uint32_t;
    static auto CalllogGetLimitOffset(sys::Service *serv, uint32_t offset, uint32_t limit) -> bool;
    [[deprecated]] static auto ContactAdd(sys::Service *serv, const ContactRecord &rec) -> bool;
    [[deprecated]] static auto ContactRemove(sys::Service *serv, uint32_t id) -> bool;
    [[deprecated]] static auto ContactUpdate(sys::Service *serv, const ContactRecord &rec) -> bool;

    /* country codes */
    static auto GetCountryCodeByMCC(sys::Service *serv, uint32_t mcc) -> uint32_t;
    [[deprecated]] static auto CalllogAdd(sys::Service *serv, const CalllogRecord &rec) -> CalllogRecord;
    [[deprecated]] static auto CalllogRemove(sys::Service *serv, uint32_t id) -> bool;
    [[deprecated]] static auto CalllogUpdate(sys::Service *serv, const CalllogRecord &rec) -> bool;

    static auto DBBackup(sys::Service *serv, std::string backupPath) -> bool;


D module-services/service-db/service-db/DBThreadMessage.hpp => module-services/service-db/service-db/DBThreadMessage.hpp +0 -51
@@ 1,51 0,0 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include "DBMessage.hpp"

#include <Common/Common.hpp>
#include <Interface/ThreadRecord.hpp>
#include <MessageType.hpp>

#include <cstdint>
#include <memory>
#include <vector>

class DBThreadMessage : public DBMessage
{
  public:
    DBThreadMessage(MessageType messageType, const ThreadRecord &rec = ThreadRecord{});
    ThreadRecord record;
};

class DBThreadGetCountMessage : public DBMessage
{
  public:
    EntryState state;
    DBThreadGetCountMessage(EntryState state = EntryState::ALL);
};

class DBThreadMessageGet : public DBMessage
{
  public:
    DBThreadMessageGet(MessageType messageType, uint32_t contactID);
    ThreadRecord record = {};
    uint32_t contactID;
};

class DBThreadResponseMessage : public DBResponseMessage
{
  public:
    DBThreadResponseMessage(std::unique_ptr<std::vector<ThreadRecord>> rec,
                            uint32_t retCode   = 0,
                            uint32_t limit     = 0,
                            uint32_t offset    = 0,
                            uint32_t count     = 0,
                            MessageType respTo = MessageType::MessageTypeUninitialized);

    std::unique_ptr<std::vector<ThreadRecord>> records;
    uint32_t limit  = 0;
    uint32_t offset = 0;
};

M module-services/service-desktop/tests/test-contacts.cpp => module-services/service-desktop/tests/test-contacts.cpp +0 -26
@@ 41,10 41,6 @@ auto DBServiceAPI::ThreadGetByNumber(sys::Service *serv,
{
    return nullptr;
}
auto DBServiceAPI::ThreadGetCount(sys::Service *serv, EntryState state) -> uint32_t
{
    return 0;
}

auto DBServiceAPI::GetQueryWithReply(sys::Service *serv,
                                     db::Interface::Name database,


@@ 77,11 73,6 @@ auto DBServiceAPI::ContactGetBySpeeddial(sys::Service *serv, UTF8 speeddial)
{
    return nullptr;
}
auto DBServiceAPI::ContactGetByPhoneNumber(sys::Service *serv, UTF8 phoneNumber)
    -> std::unique_ptr<std::vector<ContactRecord>>
{
    return nullptr;
}
auto DBServiceAPI::MatchContactByPhoneNumber(sys::Service *serv, const utils::PhoneNumber::View &numberView)
    -> std::unique_ptr<ContactRecord>
{


@@ 99,11 90,6 @@ auto DBServiceAPI::ContactUpdate(sys::Service *serv, const ContactRecord &rec) -
{
    return false;
}
auto DBServiceAPI::ContactSearch(sys::Service *serv, UTF8 primaryName, UTF8 alternativeName, UTF8 number)
    -> std::unique_ptr<std::vector<ContactRecord>>
{
    return nullptr;
}
auto DBServiceAPI::CalllogAdd(sys::Service *serv, const CalllogRecord &rec) -> CalllogRecord
{
    return {};


@@ 116,18 102,6 @@ auto DBServiceAPI::CalllogUpdate(sys::Service *serv, const CalllogRecord &rec) -
{
    return false;
}
auto DBServiceAPI::CalllogGetCount(sys::Service *serv, EntryState state) -> uint32_t
{
    return 0;
}
auto DBServiceAPI::CalllogGetLimitOffset(sys::Service *serv, uint32_t offset, uint32_t limit) -> bool
{
    return false;
}
auto DBServiceAPI::GetCountryCodeByMCC(sys::Service *serv, uint32_t mcc) -> uint32_t
{
    return 0;
}
auto DBServiceAPI::DBBackup(sys::Service *serv, std::string backupPath) -> bool
{
    return false;

M source/MessageType.hpp => source/MessageType.hpp +11 -54
@@ 22,49 22,14 @@ enum class MessageType
    DBSettingsGet,    ///< get current settings from database
    DBSettingsUpdate, ///< update settings

    DBSMSAdd,                         ///< Add new sms record
    DBSMSRemove,                      ///< Remove specified SMS record
    DBSMSUpdate,                      ///< Update specified SMS record
    DBSMSGetSMSLimitOffset,           ///< Get SMS records by limit,offset
    DBSMSGetSMSLimitOffsetByThreadID, ///< Get SMS records by limit,offset with specified ThreadID field
    DBSMSGetLastRecord,               ///< Get last edited record
    DBSMSGetCount,                    ///< Get all sms count

    DBThreadGet,            ///< Get thread by ID
    DBThreadGetForContact,  ///< Get thread between 2 contacts
    DBThreadRemove,         ///< Remove thread by ID
    DBThreadGetLimitOffset, ///< Get Thread record by limit,offset
    DBThreadGetCount,       ///< get Thread count
    DBThreadUpdate,         ///< Thread update

    DBSMSTemplateAdd,            ///< Add new sms template record
    DBSMSTemplateRemove,         ///< Remove selected sms template record
    DBSMSTemplateUpdate,         ///< Update selected sms template record
    DBSMSTemplateGetLimitOffset, ///< Get sms templates records by limit,offset
    DBSMSTemplateGetCount,       ///< Get sms templates reocrds count

    DBContactVerify, ///< checks database for a contact that has the same name (primary+" "+alternative) or phone number
                     ///< 1 or phone number 2 or speed dial key
    DBContactGetByName, ///< used to ask for a contact with specified primary and alternative name.
    DBContactSearch,
    DBContactGetByID,        ///< used to ask for a contact with specified id
    DBContactGetBySpeedDial, ///< used to ask for a contact with specified speed dial key assigned
    DBContactGetByNumber,    ///< used to ask for a contact with specified primary or secondary phone number
    DBContactMatchByNumber,  ///< used to best match with a single contact using a phone number (primary or secondary)
    DBContactAdd,            ///< Add contact record
    DBContactRemove,         ///< Remove contact remove
    DBContactUpdate,         ///< Update contact remove
    DBContactGetLimitOffset, ///< Get contact records by limit,offset
    DBContactGetCount,       ///< Get contacts count
    DBContactBlock,
    DBAlarmAdd,            ///< Add alarm record
    DBAlarmRemove,         ///< Remove alarm remove
    DBAlarmUpdate,         ///< Update alarm remove
    DBAlarmGetLimitOffset, ///< Get alarm records by limit,offset
    DBAlarmGetCount,       ///< Get alarm count
    DBAlarmGetNext,        ///< Get alarm, closest or equal to current timestamp.

    DBCountryCode,
    DBContactGetByID [[deprecated]],        ///< used to ask for a contact with specified id
    DBContactGetBySpeedDial [[deprecated]], ///< used to ask for a contact with specified speed dial key assigned
    DBContactMatchByNumber
    [[deprecated]], ///< used to best match with a single contact using a phone number (primary or secondary)
    DBContactAdd [[deprecated]],    ///< Add contact record
    DBContactRemove [[deprecated]], ///< Remove contact remove
    DBContactUpdate [[deprecated]], ///< Update contact remove

    DBQuery,

    // Cellular messages


@@ 114,17 79,9 @@ enum class MessageType
    CellularRadioOnOff,
    CellularSendSMS,

    DBNotesAdd,            ///< Add new note's record
    DBNotesRemove,         ///< Remove selected note's record
    DBNotesUpdate,         ///< Update selected note's record
    DBNotesGetLimitOffset, ///< Get notes records by limit,offset
    DBNotesGetCount,       ///< Get notes reocrds count

    DBCalllogAdd,            ///< Add new note's record
    DBCalllogRemove,         ///< Remove selected note's record
    DBCalllogUpdate,         ///< Update selected note's record
    DBCalllogGetLimitOffset, ///< Get Calllog records by limit,offset
    DBCalllogGetCount,       ///< Get Calllog reocrds count
    DBCalllogAdd [[deprecated]],    ///< Add new note's record
    DBCalllogRemove [[deprecated]], ///< Remove selected note's record
    DBCalllogUpdate [[deprecated]], ///< Update selected note's record

    // Audio service messages
    AudioMessage,