~aleteoryx/muditaos

b7eb4365ea80ed4d147911962a31fd8ec743d575 — Przemyslaw Brudny 5 years ago 521cadc
[EGD-3799] Messages queries cleanups.
69 files changed, 209 insertions(+), 134 deletions(-)

M module-apps/application-messages/ApplicationMessages.cpp
M module-apps/application-messages/models/ThreadsModel.cpp
M module-apps/application-messages/models/ThreadsSearchResultsModel.cpp
M module-apps/application-messages/windows/MessagesMainWindow.cpp
M module-apps/application-messages/windows/SearchResults.cpp
M module-db/CMakeLists.txt
M module-db/Interface/SMSRecord.cpp
M module-db/Interface/SMSRecord.hpp
M module-db/Interface/SMSTemplateRecord.cpp
M module-db/Interface/ThreadRecord.cpp
M module-db/Interface/ThreadRecord.hpp
M module-db/Tables/SMSTable.cpp
M module-db/Tables/SMSTable.hpp
R module-db/queries/{ => messages}/sms/QuerySMSAdd.cpp
R module-db/queries/{ => messages}/sms/QuerySMSAdd.hpp
R module-db/queries/{ => messages}/sms/QuerySMSGet.cpp
R module-db/queries/{ => messages}/sms/QuerySMSGet.hpp
R module-db/queries/{ => messages}/sms/QuerySMSGetByContactID.cpp
R module-db/queries/{ => messages}/sms/QuerySMSGetByContactID.hpp
R module-db/queries/{ => messages}/sms/QuerySMSGetByID.cpp
R module-db/queries/{ => messages}/sms/QuerySMSGetByID.hpp
R module-db/queries/{ => messages}/sms/QuerySMSGetByText.cpp
R module-db/queries/{ => messages}/sms/QuerySMSGetByText.hpp
R module-db/queries/{ => messages}/sms/QuerySMSGetByThreadID.cpp
R module-db/queries/{ => messages}/sms/QuerySMSGetByThreadID.hpp
R module-db/queries/{ => messages}/sms/QuerySMSGetCount.cpp
R module-db/queries/{ => messages}/sms/QuerySMSGetCount.hpp
A module-db/queries/messages/sms/QuerySMSGetCountByThreadID.cpp
A module-db/queries/messages/sms/QuerySMSGetCountByThreadID.hpp
R module-db/queries/{ => messages}/sms/QuerySMSRemove.cpp
R module-db/queries/{ => messages}/sms/QuerySMSRemove.hpp
R module-db/queries/{ => messages}/sms/QuerySMSSearchByType.cpp
R module-db/queries/{ => messages}/sms/QuerySMSSearchByType.hpp
R module-db/queries/{ => messages}/sms/QuerySMSUpdate.cpp
R module-db/queries/{ => messages}/sms/QuerySMSUpdate.hpp
R module-db/queries/{sms => messages/templates}/QuerySMSTemplateAdd.cpp
R module-db/queries/{sms => messages/templates}/QuerySMSTemplateAdd.hpp
R module-db/queries/{sms => messages/templates}/QuerySMSTemplateGet.cpp
R module-db/queries/{sms => messages/templates}/QuerySMSTemplateGet.hpp
R module-db/queries/{sms => messages/templates}/QuerySMSTemplateGetByID.cpp
R module-db/queries/{sms => messages/templates}/QuerySMSTemplateGetByID.hpp
R module-db/queries/{sms => messages/templates}/QuerySMSTemplateGetCount.cpp
R module-db/queries/{sms => messages/templates}/QuerySMSTemplateGetCount.hpp
R module-db/queries/{sms => messages/templates}/QuerySMSTemplateRemove.cpp
R module-db/queries/{sms => messages/templates}/QuerySMSTemplateRemove.hpp
R module-db/queries/{sms => messages/templates}/QuerySMSTemplateUpdate.cpp
R module-db/queries/{sms => messages/templates}/QuerySMSTemplateUpdate.hpp
R module-db/queries/{sms => messages/threads}/QueryThreadGetByContactID.cpp
R module-db/queries/{sms => messages/threads}/QueryThreadGetByContactID.hpp
R module-db/queries/{sms => messages/threads}/QueryThreadGetByID.cpp
R module-db/queries/{sms => messages/threads}/QueryThreadGetByID.hpp
R module-db/queries/{sms => messages/threads}/QueryThreadGetByNumber.cpp
R module-db/queries/{sms => messages/threads}/QueryThreadGetByNumber.hpp
R module-db/queries/{sms/QuerySmsThreadMarkAsRead => messages/threads/QueryThreadMarkAsRead}.cpp
R module-db/queries/{sms/QuerySmsThreadMarkAsRead => messages/threads/QueryThreadMarkAsRead}.hpp
R module-db/queries/{sms => messages/threads}/QueryThreadRemove.cpp
R module-db/queries/{sms => messages/threads}/QueryThreadRemove.hpp
R module-db/queries/{sms/QuerySMSThreadsGet => messages/threads/QueryThreadsGet}.cpp
R module-db/queries/{sms/QuerySMSThreadsGet => messages/threads/QueryThreadsGet}.hpp
R module-db/queries/{sms/QuerySMSSearch => messages/threads/QueryThreadsSearch}.cpp
R module-db/queries/{sms/QuerySMSSearch => messages/threads/QueryThreadsSearch}.hpp
M module-db/tests/QueryInterface.cpp
M module-db/tests/ThreadRecord_tests.cpp
M module-services/service-cellular/ServiceCellular.cpp
M module-services/service-db/api/DBServiceAPI.cpp
M module-services/service-desktop/endpoints/DBHelper.hpp
M module-services/service-desktop/endpoints/messages/MessageHelper.cpp
M module-services/service-desktop/endpoints/messages/MessagesEndpoint.cpp
M module-services/service-desktop/tests/unittest.cpp
M module-apps/application-messages/ApplicationMessages.cpp => module-apps/application-messages/ApplicationMessages.cpp +5 -5
@@ 16,11 16,11 @@
#include <service-db/api/DBServiceAPI.hpp>
#include <OptionWindow.hpp>

#include <module-db/queries/sms/QuerySMSAdd.hpp>
#include <module-db/queries/sms/QuerySMSRemove.hpp>
#include <module-db/queries/sms/QuerySMSUpdate.hpp>
#include <module-db/queries/sms/QueryThreadGetByID.hpp>
#include <module-db/queries/sms/QueryThreadRemove.hpp>
#include <module-db/queries/messages/sms/QuerySMSAdd.hpp>
#include <module-db/queries/messages/sms/QuerySMSRemove.hpp>
#include <module-db/queries/messages/sms/QuerySMSUpdate.hpp>
#include <module-db/queries/messages/threads/QueryThreadGetByID.hpp>
#include <module-db/queries/messages/threads/QueryThreadRemove.hpp>
#include <module-db/queries/phonebook/QueryContactGetByID.hpp>

#include <cassert>

M module-apps/application-messages/models/ThreadsModel.cpp => module-apps/application-messages/models/ThreadsModel.cpp +2 -2
@@ 53,7 53,7 @@ auto ThreadsModel::getItem(gui::Order order) -> gui::ListItem *

void ThreadsModel::requestRecords(uint32_t offset, uint32_t limit)
{
    auto query = std::make_unique<db::query::SMSThreadsGet>(offset, limit);
    auto query = std::make_unique<db::query::ThreadsGet>(offset, limit);
    query->setQueryListener(
        db::QueryCallback::fromFunction([this](auto response) { return handleQueryResponse(response); }));
    DBServiceAPI::GetQuery(getApplication(), db::Interface::Name::SMSThread, std::move(query));


@@ 61,7 61,7 @@ void ThreadsModel::requestRecords(uint32_t offset, uint32_t limit)

auto ThreadsModel::handleQueryResponse(db::QueryResult *queryResult) -> bool
{
    auto msgResponse = dynamic_cast<db::query::SMSThreadsGetResults *>(queryResult);
    auto msgResponse = dynamic_cast<db::query::ThreadsGetResults *>(queryResult);
    assert(msgResponse != nullptr);

    auto records_data = msgResponse->getResults();

M module-apps/application-messages/models/ThreadsSearchResultsModel.cpp => module-apps/application-messages/models/ThreadsSearchResultsModel.cpp +3 -3
@@ 4,7 4,7 @@
#include "application-messages/widgets/SearchResultsItem.hpp"

#include "service-db/api/DBServiceAPI.hpp"
#include <module-db/queries/sms/QuerySMSSearch.hpp>
#include <module-db/queries/messages/threads/QueryThreadsSearch.hpp>
#include <module-apps/application-messages/ApplicationMessages.hpp>

namespace gui::model


@@ 45,7 45,7 @@ namespace gui::model
    void ThreadsSearchResultsModel::requestRecords(uint32_t offset, uint32_t limit)
    {
        if (std::string(search_value).compare("") != 0) {
            auto query = std::make_unique<db::query::SMSSearch>(search_value, offset, limit);
            auto query = std::make_unique<db::query::ThreadsSearch>(search_value, offset, limit);
            query->setQueryListener(
                db::QueryCallback::fromFunction([this](auto response) { return handleQueryResponse(response); }));
            DBServiceAPI::GetQuery(getApplication(), db::Interface::Name::SMSThread, std::move(query));


@@ 59,7 59,7 @@ namespace gui::model

    auto ThreadsSearchResultsModel::handleQueryResponse(db::QueryResult *queryResult) -> bool
    {
        auto msgResponse = dynamic_cast<db::query::SMSSearchResult *>(queryResult);
        auto msgResponse = dynamic_cast<db::query::ThreadsSearchResult *>(queryResult);
        assert(msgResponse != nullptr);

        auto records_data = msgResponse->getResults();

M module-apps/application-messages/windows/MessagesMainWindow.cpp => module-apps/application-messages/windows/MessagesMainWindow.cpp +1 -1
@@ 14,7 14,7 @@
#include <log/log.hpp>

#include <module-db/queries/notifications/QueryNotificationsClear.hpp>
#include <module-db/queries/sms/QueryThreadGetByContactID.hpp>
#include <module-db/queries/messages/threads/QueryThreadGetByContactID.hpp>

#include <memory>
#include <cassert>

M module-apps/application-messages/windows/SearchResults.cpp => module-apps/application-messages/windows/SearchResults.cpp +1 -1
@@ 5,7 5,7 @@
#include "module-apps/application-messages/data/MessagesStyle.hpp"
#include "messages/DBThreadMessage.hpp"
#include "messages/QueryMessage.hpp"
#include "queries/sms/QuerySMSSearch.hpp"
#include "queries/messages/threads/QueryThreadsSearch.hpp"
#include "service-db/messages/DBMessage.hpp"
#include <i18/i18.hpp>


M module-db/CMakeLists.txt => module-db/CMakeLists.txt +24 -23
@@ 59,29 59,30 @@ set(SOURCES
        Interface/SettingsRecord_v2.cpp

        queries/RecordQuery.cpp
        queries/sms/QuerySMSSearch.cpp
        queries/sms/QuerySMSThreadsGet.cpp
        queries/sms/QuerySMSSearchByType.cpp
        queries/sms/QuerySmsThreadMarkAsRead.cpp
        queries/sms/QuerySMSGet.cpp
        queries/sms/QuerySMSGetCount.cpp
        queries/sms/QuerySMSGetByID.cpp
        queries/sms/QuerySMSGetByContactID.cpp
        queries/sms/QuerySMSGetByThreadID.cpp
        queries/sms/QuerySMSGetByText.cpp
        queries/sms/QuerySMSAdd.cpp
        queries/sms/QuerySMSRemove.cpp
        queries/sms/QuerySMSUpdate.cpp
        queries/sms/QuerySMSTemplateAdd.cpp
        queries/sms/QuerySMSTemplateGetByID.cpp
        queries/sms/QuerySMSTemplateGet.cpp
        queries/sms/QuerySMSTemplateGetCount.cpp
        queries/sms/QuerySMSTemplateRemove.cpp
        queries/sms/QuerySMSTemplateUpdate.cpp
        queries/sms/QueryThreadGetByID.cpp
        queries/sms/QueryThreadGetByNumber.cpp
        queries/sms/QueryThreadGetByContactID.cpp
        queries/sms/QueryThreadRemove.cpp
        queries/messages/sms/QuerySMSSearchByType.cpp
        queries/messages/sms/QuerySMSGet.cpp
        queries/messages/sms/QuerySMSGetCount.cpp
        queries/messages/sms/QuerySMSGetCountByThreadID.cpp
        queries/messages/sms/QuerySMSGetByID.cpp
        queries/messages/sms/QuerySMSGetByContactID.cpp
        queries/messages/sms/QuerySMSGetByThreadID.cpp
        queries/messages/sms/QuerySMSGetByText.cpp
        queries/messages/sms/QuerySMSAdd.cpp
        queries/messages/sms/QuerySMSRemove.cpp
        queries/messages/sms/QuerySMSUpdate.cpp
        queries/messages/templates/QuerySMSTemplateAdd.cpp
        queries/messages/templates/QuerySMSTemplateGetByID.cpp
        queries/messages/templates/QuerySMSTemplateGet.cpp
        queries/messages/templates/QuerySMSTemplateGetCount.cpp
        queries/messages/templates/QuerySMSTemplateRemove.cpp
        queries/messages/templates/QuerySMSTemplateUpdate.cpp
        queries/messages/threads/QueryThreadsSearch.cpp
        queries/messages/threads/QueryThreadsGet.cpp
        queries/messages/threads/QueryThreadGetByID.cpp
        queries/messages/threads/QueryThreadGetByNumber.cpp
        queries/messages/threads/QueryThreadGetByContactID.cpp
        queries/messages/threads/QueryThreadRemove.cpp
        queries/messages/threads/QueryThreadMarkAsRead.cpp
        queries/calllog/QueryCalllogSetAllRead.cpp
        queries/calllog/QueryCalllogGet.cpp
        queries/calllog/QueryCalllogGetCount.cpp

M module-db/Interface/SMSRecord.cpp => module-db/Interface/SMSRecord.cpp +25 -12
@@ 2,21 2,21 @@
#include "Common/Query.hpp"
#include "ContactRecord.hpp"
#include "ThreadRecord.hpp"
#include "queries/sms/QuerySMSAdd.hpp"
#include "queries/sms/QuerySMSGet.hpp"
#include "queries/sms/QuerySMSGetByContactID.hpp"
#include "queries/sms/QuerySMSGetByID.hpp"
#include "queries/sms/QuerySMSGetByText.hpp"
#include "queries/sms/QuerySMSGetCount.hpp"
#include "queries/sms/QuerySMSSearch.hpp"
#include "queries/sms/QuerySMSRemove.hpp"
#include "queries/sms/QuerySMSUpdate.hpp"
#include "queries/sms/QuerySMSSearchByType.hpp"
#include "queries/messages/sms/QuerySMSAdd.hpp"
#include "queries/messages/sms/QuerySMSGet.hpp"
#include "queries/messages/sms/QuerySMSGetByContactID.hpp"
#include "queries/messages/sms/QuerySMSGetByID.hpp"
#include "queries/messages/sms/QuerySMSGetByText.hpp"
#include "queries/messages/sms/QuerySMSGetCount.hpp"
#include "queries/messages/sms/QuerySMSRemove.hpp"
#include "queries/messages/sms/QuerySMSUpdate.hpp"
#include "queries/messages/sms/QuerySMSSearchByType.hpp"
#include "queries/messages/sms/QuerySMSGetByThreadID.hpp"
#include "queries/messages/sms/QuerySMSGetCountByThreadID.hpp"
#include <log/log.hpp>

#include <PhoneNumber.hpp>
#include <optional>
#include <module-db/queries/sms/QuerySMSGetByThreadID.hpp>

SMSRecord::SMSRecord(const SMSTableRow &w, const utils::PhoneNumber::View &num)
    : date(w.date), dateSent(w.dateSent), errorCode(w.errorCode), body(w.body), type(w.type), threadID(w.threadID),


@@ 313,6 313,9 @@ std::unique_ptr<db::QueryResult> SMSRecordInterface::runQuery(std::shared_ptr<db
    else if (typeid(*query) == typeid(db::query::SMSGetByThreadID)) {
        return getByThreadIDQuery(query);
    }
    else if (typeid(*query) == typeid(db::query::SMSGetCountByThreadID)) {
        return getCountByThreadIDQuery(query);
    }
    else if (typeid(*query) == typeid(db::query::SMSGetByText)) {
        return getByTextQuery(query);
    }


@@ 422,6 425,16 @@ std::unique_ptr<db::QueryResult> SMSRecordInterface::getCountQuery(std::shared_p
    response->setRequestQuery(query);
    return response;
}

std::unique_ptr<db::QueryResult> SMSRecordInterface::getCountByThreadIDQuery(std::shared_ptr<db::Query> query)
{
    const auto localQuery = static_cast<const db::query::SMSGetCountByThreadID *>(query.get());
    auto response         = std::make_unique<db::query::SMSGetCountByThreadIDResult>(
        smsDB->sms.countByFieldId("thread_id", localQuery->threadId));
    response->setRequestQuery(query);
    return response;
}

std::unique_ptr<db::QueryResult> SMSRecordInterface::addQuery(std::shared_ptr<db::Query> query)
{
    const auto localQuery = static_cast<const db::query::SMSAdd *>(query.get());


@@ 476,7 489,7 @@ std::unique_ptr<db::QueryResult> SMSRecordInterface::getQuery(std::shared_ptr<db
std::unique_ptr<db::QueryResult> SMSRecordInterface::getByThreadIDQuery(std::shared_ptr<db::Query> query)
{
    const auto localQuery = static_cast<const db::query::SMSGetByThreadID *>(query.get());
    auto smsVector        = smsDB->sms.getByThreadId(localQuery->threadId);
    auto smsVector        = smsDB->sms.getByThreadId(localQuery->threadId, localQuery->offset, localQuery->limit);
    std::vector<SMSRecord> recordVector;
    for (auto sms : smsVector) {
        SMSRecord record;

M module-db/Interface/SMSRecord.hpp => module-db/Interface/SMSRecord.hpp +1 -0
@@ 79,4 79,5 @@ class SMSRecordInterface : public RecordInterface<SMSRecord, SMSRecordField>
    std::unique_ptr<db::QueryResult> updateQuery(std::shared_ptr<db::Query> query);
    std::unique_ptr<db::QueryResult> getQuery(std::shared_ptr<db::Query> query);
    std::unique_ptr<db::QueryResult> getByThreadIDQuery(std::shared_ptr<db::Query> query);
    std::unique_ptr<db::QueryResult> getCountByThreadIDQuery(std::shared_ptr<db::Query> query);
};

M module-db/Interface/SMSTemplateRecord.cpp => module-db/Interface/SMSTemplateRecord.cpp +6 -7
@@ 1,11 1,10 @@
#include "SMSTemplateRecord.hpp"
#include "queries/sms/QuerySMSTemplateGetByID.hpp"
#include "queries/sms/QuerySMSTemplateGet.hpp"
#include "queries/sms/QuerySMSTemplateAdd.hpp"
#include "queries/sms/QuerySMSTemplateGetCount.hpp"
#include "queries/sms/QuerySMSTemplateRemove.hpp"
#include "queries/sms/QuerySMSTemplateUpdate.hpp"
#include "queries/sms/QuerySMSThreadsGet.hpp"
#include "queries/messages/templates/QuerySMSTemplateGetByID.hpp"
#include "queries/messages/templates/QuerySMSTemplateGet.hpp"
#include "queries/messages/templates/QuerySMSTemplateAdd.hpp"
#include "queries/messages/templates/QuerySMSTemplateGetCount.hpp"
#include "queries/messages/templates/QuerySMSTemplateRemove.hpp"
#include "queries/messages/templates/QuerySMSTemplateUpdate.hpp"

#include <log/log.hpp>


M module-db/Interface/ThreadRecord.cpp => module-db/Interface/ThreadRecord.cpp +9 -9
@@ 2,10 2,10 @@
#include "SMSRecord.hpp"
#include "ContactRecord.hpp"

#include <queries/sms/QueryThreadGetByID.hpp>
#include <queries/sms/QueryThreadGetByNumber.hpp>
#include <queries/sms/QueryThreadGetByContactID.hpp>
#include <queries/sms/QueryThreadRemove.hpp>
#include <queries/messages/threads/QueryThreadGetByID.hpp>
#include <queries/messages/threads/QueryThreadGetByNumber.hpp>
#include <queries/messages/threads/QueryThreadGetByContactID.hpp>
#include <queries/messages/threads/QueryThreadRemove.hpp>

#include <cassert>
#include <log/log.hpp>


@@ 156,18 156,18 @@ ThreadRecord ThreadRecordInterface::GetByNumber(const utils::PhoneNumber::View &

std::unique_ptr<db::QueryResult> ThreadRecordInterface::runQuery(std::shared_ptr<db::Query> query)
{
    if (const auto localQuery = dynamic_cast<const db::query::SMSSearch *>(query.get())) {
        auto dbResult = smsDB->threads.getBySMSQuery(localQuery->text, localQuery->starting_postion, localQuery->depth);
    if (const auto localQuery = dynamic_cast<const db::query::ThreadsSearch *>(query.get())) {
        auto dbResult = smsDB->threads.getBySMSQuery(localQuery->text, localQuery->startingPosition, localQuery->depth);

        auto response = std::make_unique<db::query::SMSSearchResult>(dbResult.first, dbResult.second);
        auto response = std::make_unique<db::query::ThreadsSearchResult>(dbResult.first, dbResult.second);
        response->setRequestQuery(query);
        return response;
    }

    if (const auto localQuery = dynamic_cast<const db::query::SMSThreadsGet *>(query.get())) {
    if (const auto localQuery = dynamic_cast<const db::query::ThreadsGet *>(query.get())) {
        auto dbResult = smsDB->threads.getLimitOffset(localQuery->offset, localQuery->limit);

        auto response = std::make_unique<db::query::SMSThreadsGetResults>(dbResult);
        auto response = std::make_unique<db::query::ThreadsGetResults>(dbResult);
        response->setRequestQuery(query);
        return response;
    }

M module-db/Interface/ThreadRecord.hpp => module-db/Interface/ThreadRecord.hpp +3 -3
@@ 4,9 4,9 @@
#include "module-db/Databases/SmsDB.hpp"
#include "module-db/Databases/ContactsDB.hpp"
#include "module-db/Common/Common.hpp"
#include "module-db/queries/sms/QuerySMSSearch.hpp"
#include "module-db/queries/sms/QuerySMSThreadsGet.hpp"
#include "module-db/queries/sms/QuerySmsThreadMarkAsRead.hpp"
#include "module-db/queries/messages/threads/QueryThreadsSearch.hpp"
#include "module-db/queries/messages/threads/QueryThreadsGet.hpp"
#include "module-db/queries/messages/threads/QueryThreadMarkAsRead.hpp"
#include <PhoneNumber.hpp>

#include <utf8/UTF8.hpp>

M module-db/Tables/SMSTable.cpp => module-db/Tables/SMSTable.cpp +6 -2
@@ 107,9 107,13 @@ std::vector<SMSTableRow> SMSTable::getByContactId(uint32_t contactId)

    return ret;
}
std::vector<SMSTableRow> SMSTable::getByThreadId(uint32_t threadId)
std::vector<SMSTableRow> SMSTable::getByThreadId(uint32_t threadId, uint32_t offset, uint32_t limit)
{
    auto retQuery = db->query("SELECT * FROM sms WHERE thread_id= %u;", threadId);
    auto retQuery = db->query("SELECT * FROM sms WHERE thread_id= %u", threadId);

    if (limit != 0) {
        retQuery = db->query("SELECT * FROM sms WHERE thread_id= %u LIMIT %u OFFSET %u", threadId, limit, offset);
    }

    if ((retQuery == nullptr) || (retQuery->getRowCount() == 0)) {
        return std::vector<SMSTableRow>();

M module-db/Tables/SMSTable.hpp => module-db/Tables/SMSTable.hpp +1 -1
@@ 46,7 46,7 @@ class SMSTable : public Table<SMSTableRow, SMSTableFields>
    uint32_t countByFieldId(const char *field, uint32_t id) override final;
    std::vector<SMSTableRow> getByContactId(uint32_t contactId);
    std::vector<SMSTableRow> getByText(std::string text);
    std::vector<SMSTableRow> getByThreadId(uint32_t threadId);
    std::vector<SMSTableRow> getByThreadId(uint32_t threadId, uint32_t offset, uint32_t limit);

    std::pair<uint32_t, std::vector<SMSTableRow>> getManyByType(SMSType type, uint32_t offset, uint32_t limit);


R module-db/queries/sms/QuerySMSAdd.cpp => module-db/queries/messages/sms/QuerySMSAdd.cpp +0 -0
R module-db/queries/sms/QuerySMSAdd.hpp => module-db/queries/messages/sms/QuerySMSAdd.hpp +0 -0
R module-db/queries/sms/QuerySMSGet.cpp => module-db/queries/messages/sms/QuerySMSGet.cpp +0 -0
R module-db/queries/sms/QuerySMSGet.hpp => module-db/queries/messages/sms/QuerySMSGet.hpp +0 -0
R module-db/queries/sms/QuerySMSGetByContactID.cpp => module-db/queries/messages/sms/QuerySMSGetByContactID.cpp +0 -0
R module-db/queries/sms/QuerySMSGetByContactID.hpp => module-db/queries/messages/sms/QuerySMSGetByContactID.hpp +0 -0
R module-db/queries/sms/QuerySMSGetByID.cpp => module-db/queries/messages/sms/QuerySMSGetByID.cpp +0 -0
R module-db/queries/sms/QuerySMSGetByID.hpp => module-db/queries/messages/sms/QuerySMSGetByID.hpp +0 -0
R module-db/queries/sms/QuerySMSGetByText.cpp => module-db/queries/messages/sms/QuerySMSGetByText.cpp +0 -0
R module-db/queries/sms/QuerySMSGetByText.hpp => module-db/queries/messages/sms/QuerySMSGetByText.hpp +0 -0
R module-db/queries/sms/QuerySMSGetByThreadID.cpp => module-db/queries/messages/sms/QuerySMSGetByThreadID.cpp +2 -1
@@ 2,7 2,8 @@

namespace db::query
{
    SMSGetByThreadID::SMSGetByThreadID(unsigned int threadId) : Query(Query::Type::Read), threadId(threadId)
    SMSGetByThreadID::SMSGetByThreadID(unsigned int threadId, unsigned int offset, unsigned int limit)
        : Query(Query::Type::Read), threadId(threadId), offset(offset), limit(limit)
    {}

    auto SMSGetByThreadID::debugInfo() const -> std::string

R module-db/queries/sms/QuerySMSGetByThreadID.hpp => module-db/queries/messages/sms/QuerySMSGetByThreadID.hpp +4 -1
@@ 11,8 11,11 @@ namespace db::query
    class SMSGetByThreadID : public Query
    {
      public:
        SMSGetByThreadID(unsigned int id);
        unsigned int threadId;
        unsigned int offset;
        unsigned int limit;

        SMSGetByThreadID(unsigned int id, unsigned int offset = 0, unsigned int limit = 0);
        [[nodiscard]] auto debugInfo() const -> std::string override;
    };


R module-db/queries/sms/QuerySMSGetCount.cpp => module-db/queries/messages/sms/QuerySMSGetCount.cpp +0 -0
R module-db/queries/sms/QuerySMSGetCount.hpp => module-db/queries/messages/sms/QuerySMSGetCount.hpp +0 -0
A module-db/queries/messages/sms/QuerySMSGetCountByThreadID.cpp => module-db/queries/messages/sms/QuerySMSGetCountByThreadID.cpp +24 -0
@@ 0,0 1,24 @@
#include "QuerySMSGetCountByThreadID.hpp"

namespace db::query
{
    SMSGetCountByThreadID::SMSGetCountByThreadID(unsigned int threadId) : Query(Query::Type::Read), threadId(threadId)
    {}

    auto SMSGetCountByThreadID::debugInfo() const -> std::string
    {
        return "SMSGetCountByThreadID";
    }

    SMSGetCountByThreadIDResult::SMSGetCountByThreadIDResult(uint32_t result) : result(result)
    {}
    auto SMSGetCountByThreadIDResult::getResults() const -> uint32_t
    {
        return result;
    }
    auto SMSGetCountByThreadIDResult::debugInfo() const -> std::string
    {
        return "SMSGetCountByThreadIDResult";
    }

} // namespace db::query

A module-db/queries/messages/sms/QuerySMSGetCountByThreadID.hpp => module-db/queries/messages/sms/QuerySMSGetCountByThreadID.hpp +30 -0
@@ 0,0 1,30 @@
#pragma once

#include <Tables/SMSTable.hpp>
#include <Common/Query.hpp>
#include <string>
#include "Interface/SMSRecord.hpp"

namespace db::query
{
    class SMSGetCountByThreadID : public Query
    {
      public:
        unsigned int threadId;

        SMSGetCountByThreadID(unsigned int threadId);

        [[nodiscard]] auto debugInfo() const -> std::string override;
    };

    class SMSGetCountByThreadIDResult : public QueryResult
    {
        uint32_t result;

      public:
        SMSGetCountByThreadIDResult(uint32_t result);
        [[nodiscard]] auto getResults() const -> uint32_t;
        [[nodiscard]] auto debugInfo() const -> std::string override;
    };

} // namespace db::query

R module-db/queries/sms/QuerySMSRemove.cpp => module-db/queries/messages/sms/QuerySMSRemove.cpp +0 -0
R module-db/queries/sms/QuerySMSRemove.hpp => module-db/queries/messages/sms/QuerySMSRemove.hpp +0 -0
R module-db/queries/sms/QuerySMSSearchByType.cpp => module-db/queries/messages/sms/QuerySMSSearchByType.cpp +0 -0
R module-db/queries/sms/QuerySMSSearchByType.hpp => module-db/queries/messages/sms/QuerySMSSearchByType.hpp +0 -0
R module-db/queries/sms/QuerySMSUpdate.cpp => module-db/queries/messages/sms/QuerySMSUpdate.cpp +0 -0
R module-db/queries/sms/QuerySMSUpdate.hpp => module-db/queries/messages/sms/QuerySMSUpdate.hpp +0 -0
R module-db/queries/sms/QuerySMSTemplateAdd.cpp => module-db/queries/messages/templates/QuerySMSTemplateAdd.cpp +0 -0
R module-db/queries/sms/QuerySMSTemplateAdd.hpp => module-db/queries/messages/templates/QuerySMSTemplateAdd.hpp +0 -0
R module-db/queries/sms/QuerySMSTemplateGet.cpp => module-db/queries/messages/templates/QuerySMSTemplateGet.cpp +0 -0
R module-db/queries/sms/QuerySMSTemplateGet.hpp => module-db/queries/messages/templates/QuerySMSTemplateGet.hpp +0 -0
R module-db/queries/sms/QuerySMSTemplateGetByID.cpp => module-db/queries/messages/templates/QuerySMSTemplateGetByID.cpp +0 -0
R module-db/queries/sms/QuerySMSTemplateGetByID.hpp => module-db/queries/messages/templates/QuerySMSTemplateGetByID.hpp +0 -0
R module-db/queries/sms/QuerySMSTemplateGetCount.cpp => module-db/queries/messages/templates/QuerySMSTemplateGetCount.cpp +0 -0
R module-db/queries/sms/QuerySMSTemplateGetCount.hpp => module-db/queries/messages/templates/QuerySMSTemplateGetCount.hpp +0 -0
R module-db/queries/sms/QuerySMSTemplateRemove.cpp => module-db/queries/messages/templates/QuerySMSTemplateRemove.cpp +0 -0
R module-db/queries/sms/QuerySMSTemplateRemove.hpp => module-db/queries/messages/templates/QuerySMSTemplateRemove.hpp +0 -0
R module-db/queries/sms/QuerySMSTemplateUpdate.cpp => module-db/queries/messages/templates/QuerySMSTemplateUpdate.cpp +0 -0
R module-db/queries/sms/QuerySMSTemplateUpdate.hpp => module-db/queries/messages/templates/QuerySMSTemplateUpdate.hpp +0 -0
R module-db/queries/sms/QueryThreadGetByContactID.cpp => module-db/queries/messages/threads/QueryThreadGetByContactID.cpp +0 -0
R module-db/queries/sms/QueryThreadGetByContactID.hpp => module-db/queries/messages/threads/QueryThreadGetByContactID.hpp +0 -0
R module-db/queries/sms/QueryThreadGetByID.cpp => module-db/queries/messages/threads/QueryThreadGetByID.cpp +0 -0
R module-db/queries/sms/QueryThreadGetByID.hpp => module-db/queries/messages/threads/QueryThreadGetByID.hpp +0 -0
R module-db/queries/sms/QueryThreadGetByNumber.cpp => module-db/queries/messages/threads/QueryThreadGetByNumber.cpp +0 -0
R module-db/queries/sms/QueryThreadGetByNumber.hpp => module-db/queries/messages/threads/QueryThreadGetByNumber.hpp +0 -0
R module-db/queries/sms/QuerySmsThreadMarkAsRead.cpp => module-db/queries/messages/threads/QueryThreadMarkAsRead.cpp +1 -1
@@ 1,4 1,4 @@
#include "QuerySmsThreadMarkAsRead.hpp"
#include "QueryThreadMarkAsRead.hpp"

namespace db::query::smsthread
{

R module-db/queries/sms/QuerySmsThreadMarkAsRead.hpp => module-db/queries/messages/threads/QueryThreadMarkAsRead.hpp +0 -0
R module-db/queries/sms/QueryThreadRemove.cpp => module-db/queries/messages/threads/QueryThreadRemove.cpp +0 -0
R module-db/queries/sms/QueryThreadRemove.hpp => module-db/queries/messages/threads/QueryThreadRemove.hpp +0 -0
R module-db/queries/sms/QuerySMSThreadsGet.cpp => module-db/queries/messages/threads/QueryThreadsGet.cpp +6 -7
@@ 1,28 1,27 @@
#include <Tables/ThreadsTable.hpp>
#include <utility>
#include "QuerySMSThreadsGet.hpp"
#include "QueryThreadsGet.hpp"

namespace db::query
{
    SMSThreadsGet::SMSThreadsGet(unsigned int offset, unsigned int limit)
    ThreadsGet::ThreadsGet(unsigned int offset, unsigned int limit)
        : Query(Query::Type::Read), offset(offset), limit(limit)
    {}

    auto SMSThreadsGet::debugInfo() const -> std::string
    auto ThreadsGet::debugInfo() const -> std::string
    {
        return "SMSThreadsGet";
    }

    SMSThreadsGetResults::SMSThreadsGetResults(std::vector<ThreadsTableRow> result_rows)
        : results(std::move(result_rows))
    ThreadsGetResults::ThreadsGetResults(std::vector<ThreadsTableRow> result_rows) : results(std::move(result_rows))
    {}

    auto SMSThreadsGetResults::getResults() const -> std::vector<ThreadsTableRow>
    auto ThreadsGetResults::getResults() const -> std::vector<ThreadsTableRow>
    {
        return results;
    }

    [[nodiscard]] auto SMSThreadsGetResults::debugInfo() const -> std::string
    [[nodiscard]] auto ThreadsGetResults::debugInfo() const -> std::string
    {
        return "SMSThreadsGetResults";
    }

R module-db/queries/sms/QuerySMSThreadsGet.hpp => module-db/queries/messages/threads/QueryThreadsGet.hpp +4 -4
@@ 7,22 7,22 @@
namespace db::query
{

    class SMSThreadsGet : public Query
    class ThreadsGet : public Query
    {
      public:
        unsigned int offset;
        unsigned int limit;
        SMSThreadsGet(unsigned int offset, unsigned int limit);
        ThreadsGet(unsigned int offset, unsigned int limit);

        [[nodiscard]] auto debugInfo() const -> std::string override;
    };

    class SMSThreadsGetResults : public QueryResult
    class ThreadsGetResults : public QueryResult
    {
        std::vector<ThreadsTableRow> results;

      public:
        SMSThreadsGetResults(std::vector<ThreadsTableRow> result_rows);
        ThreadsGetResults(std::vector<ThreadsTableRow> result_rows);
        [[nodiscard]] auto getResults() const -> std::vector<ThreadsTableRow>;
        [[nodiscard]] auto debugInfo() const -> std::string override;
    };

R module-db/queries/sms/QuerySMSSearch.cpp => module-db/queries/messages/threads/QueryThreadsSearch.cpp +8 -8
@@ 1,32 1,32 @@
#include "SMSTable.hpp"
#include "QuerySMSSearch.hpp"
#include "QueryThreadsSearch.hpp"

namespace db::query
{
    SMSSearch::SMSSearch(std::string text_to_search, unsigned int starting_position, unsigned int depth)
        : Query(Query::Type::Read), text(text_to_search), starting_postion(starting_position), depth(depth)
    ThreadsSearch::ThreadsSearch(std::string text_to_search, unsigned int starting_position, unsigned int depth)
        : Query(Query::Type::Read), text(text_to_search), startingPosition(starting_position), depth(depth)
    {}

    auto SMSSearch::debugInfo() const -> std::string
    auto ThreadsSearch::debugInfo() const -> std::string
    {
        return "SMSSearch";
    }

    SMSSearchResult::SMSSearchResult(unsigned int results_max_depth, std::vector<ThreadsTableRow> result_rows)
    ThreadsSearchResult::ThreadsSearchResult(unsigned int results_max_depth, std::vector<ThreadsTableRow> result_rows)
        : results_max_depth(results_max_depth), results(result_rows)
    {}

    auto SMSSearchResult::getMax() const -> unsigned int
    auto ThreadsSearchResult::getMax() const -> unsigned int
    {
        return results_max_depth;
    }

    auto SMSSearchResult::getResults() const -> std::vector<ThreadsTableRow>
    auto ThreadsSearchResult::getResults() const -> std::vector<ThreadsTableRow>
    {
        return results;
    }

    [[nodiscard]] auto SMSSearchResult::debugInfo() const -> std::string
    [[nodiscard]] auto ThreadsSearchResult::debugInfo() const -> std::string
    {
        return "SMSSearchResult";
    }

R module-db/queries/sms/QuerySMSSearch.hpp => module-db/queries/messages/threads/QueryThreadsSearch.hpp +5 -5
@@ 7,24 7,24 @@
namespace db::query
{
    /// implements search for SMS by text
    class SMSSearch : public Query
    class ThreadsSearch : public Query
    {
      public:
        std::string text;
        unsigned int starting_postion;
        unsigned int startingPosition;
        unsigned int depth;
        SMSSearch(std::string text_to_search, unsigned int starting_position, unsigned int depth);
        ThreadsSearch(std::string text_to_search, unsigned int starting_position, unsigned int depth);

        [[nodiscard]] auto debugInfo() const -> std::string override;
    };

    class SMSSearchResult : public QueryResult
    class ThreadsSearchResult : public QueryResult
    {
        unsigned int results_max_depth = 0;
        std::vector<ThreadsTableRow> results;

      public:
        SMSSearchResult(unsigned int results_max_depth, std::vector<ThreadsTableRow> result_rows);
        ThreadsSearchResult(unsigned int results_max_depth, std::vector<ThreadsTableRow> result_rows);
        [[nodiscard]] auto getMax() const -> unsigned int;
        [[nodiscard]] auto getResults() const -> std::vector<ThreadsTableRow>;
        [[nodiscard]] auto debugInfo() const -> std::string override;

M module-db/tests/QueryInterface.cpp => module-db/tests/QueryInterface.cpp +7 -7
@@ 6,13 6,13 @@
#include "Databases/SmsDB.hpp"
#include "SMSRecord.hpp"
#include "ThreadRecord.hpp"
#include "queries/sms/QuerySMSSearch.hpp"
#include "queries/sms/QuerySMSAdd.hpp"
#include "queries/sms/QuerySMSRemove.hpp"
#include "queries/sms/QuerySMSUpdate.hpp"
#include "queries/messages/threads/QueryThreadsSearch.hpp"
#include "queries/messages/sms/QuerySMSAdd.hpp"
#include "queries/messages/sms/QuerySMSRemove.hpp"
#include "queries/messages/sms/QuerySMSUpdate.hpp"

#include <memory>
#include <module-db/queries/sms/QuerySMSGetCount.hpp>
#include <module-db/queries/messages/sms/QuerySMSGetCount.hpp>
#include <module-utils/json/json11.hpp>

namespace db


@@ 48,7 48,7 @@ TEST_CASE("Query interface")
        REQUIRE(smsInterface->runQuery(std::make_shared<db::TestQuery>()) == nullptr);
    }

    auto query = std::make_shared<db::query::SMSSearch>("a", 0, 10);
    auto query = std::make_shared<db::query::ThreadsSearch>("a", 0, 10);

    SECTION("known query, wrong interface")
    {


@@ 59,7 59,7 @@ TEST_CASE("Query interface")
    SECTION("proper result returned")
    {
        auto result = threadInterface->runQuery(query);
        REQUIRE(dynamic_cast<db::query::SMSSearchResult *>(result.get()));
        REQUIRE(dynamic_cast<db::query::ThreadsSearchResult *>(result.get()));
    }

    SECTION("Endpoint callback test")

M module-db/tests/ThreadRecord_tests.cpp => module-db/tests/ThreadRecord_tests.cpp +11 -11
@@ 6,11 6,11 @@
#include "Interface/ContactRecord.hpp"
#include "Interface/SMSRecord.hpp"
#include "Interface/ThreadRecord.hpp"
#include "queries/sms/QuerySmsThreadMarkAsRead.hpp"
#include "queries/sms/QuerySMSSearch.hpp"
#include "queries/sms/QueryThreadGetByID.hpp"
#include "queries/sms/QueryThreadGetByContactID.hpp"
#include "queries/sms/QueryThreadRemove.hpp"
#include "queries/messages/threads/QueryThreadMarkAsRead.hpp"
#include "queries/messages/threads/QueryThreadsSearch.hpp"
#include "queries/messages/threads/QueryThreadGetByID.hpp"
#include "queries/messages/threads/QueryThreadGetByContactID.hpp"
#include "queries/messages/threads/QueryThreadRemove.hpp"
#include "vfs.hpp"

#include <algorithm>


@@ 81,9 81,9 @@ TEST_CASE("Thread Record tests")
    }
    SECTION("Get all available records with query")
    {
        auto query  = std::make_shared<db::query::SMSThreadsGet>(0, 100);
        auto query  = std::make_shared<db::query::ThreadsGet>(0, 100);
        auto ret    = threadRecordInterface1.runQuery(query);
        auto result = dynamic_cast<db::query::SMSThreadsGetResults *>(ret.get());
        auto result = dynamic_cast<db::query::ThreadsGetResults *>(ret.get());
        REQUIRE(result != nullptr);
        auto results = result->getResults();
        REQUIRE(results.size() == 2);


@@ 212,18 212,18 @@ TEST_CASE("Thread Record tests")
        REQUIRE(smsRecInterface.Add(recordIN));

        {
            auto query  = std::make_shared<db::query::SMSSearch>("A", 0, 10);
            auto query  = std::make_shared<db::query::ThreadsSearch>("A", 0, 10);
            auto ret    = threadRecordInterface1.runQuery(query);
            auto result = dynamic_cast<db::query::SMSSearchResult *>(ret.get());
            auto result = dynamic_cast<db::query::ThreadsSearchResult *>(ret.get());
            REQUIRE(result != nullptr);
            auto results = result->getResults();
            REQUIRE(results.size() == 2);
        }

        {
            auto query  = std::make_shared<db::query::SMSSearch>("O", 0, 10);
            auto query  = std::make_shared<db::query::ThreadsSearch>("O", 0, 10);
            auto ret    = threadRecordInterface1.runQuery(query);
            auto result = dynamic_cast<db::query::SMSSearchResult *>(ret.get());
            auto result = dynamic_cast<db::query::ThreadsSearchResult *>(ret.get());
            REQUIRE(result != nullptr);
            auto results = result->getResults();
            REQUIRE(results.size() == 1);

M module-services/service-cellular/ServiceCellular.cpp => module-services/service-cellular/ServiceCellular.cpp +1 -1
@@ 52,7 52,7 @@
#include <country.hpp>
#include <PhoneNumber.hpp>
#include <module-db/queries/notifications/QueryNotificationsIncrement.hpp>
#include <module-db/queries/sms/QuerySMSSearchByType.hpp>
#include <module-db/queries/messages/sms/QuerySMSSearchByType.hpp>

#include <log/log.hpp>


M module-services/service-db/api/DBServiceAPI.cpp => module-services/service-db/api/DBServiceAPI.cpp +1 -1
@@ 14,7 14,7 @@

#include <Common/Query.hpp>
#include <queries/phonebook/QueryNumberGetByID.hpp>
#include <queries/sms/QueryThreadGetByNumber.hpp>
#include <queries/messages/threads/QueryThreadGetByNumber.hpp>

#include <ServiceDB.hpp>
#include <includes/DBServiceName.hpp>

M module-services/service-desktop/endpoints/DBHelper.hpp => module-services/service-desktop/endpoints/DBHelper.hpp +1 -1
@@ 4,7 4,7 @@
#include "Context.hpp"
#include "ParserFSM.hpp"
#include "messages/QueryMessage.hpp"
#include "queries/sms/QuerySMSSearch.hpp"
#include "queries/messages/threads/QueryThreadsSearch.hpp"
#include <Service/Common.hpp>
#include <Service/Service.hpp>
#include "Endpoint.hpp"

M module-services/service-desktop/endpoints/messages/MessageHelper.cpp => module-services/service-desktop/endpoints/messages/MessageHelper.cpp +15 -15
@@ 7,21 7,21 @@
#include "Service/Common.hpp"
#include "ThreadRecord.hpp"
#include "api/DBServiceAPI.hpp"
#include "queries/sms/QuerySMSGet.hpp"
#include "queries/sms/QuerySMSGetByContactID.hpp"
#include "queries/sms/QuerySMSGetByThreadID.hpp"
#include "queries/sms/QuerySMSGetByID.hpp"
#include "queries/sms/QuerySMSGetByText.hpp"
#include "queries/sms/QuerySMSGetCount.hpp"
#include "queries/sms/QuerySMSSearch.hpp"
#include "queries/sms/QuerySMSRemove.hpp"
#include "queries/sms/QuerySMSTemplateGet.hpp"
#include "queries/sms/QuerySMSTemplateRemove.hpp"
#include "queries/sms/QuerySMSTemplateUpdate.hpp"
#include "queries/sms/QuerySMSTemplateAdd.hpp"
#include "queries/sms/QuerySMSTemplateGetByID.hpp"
#include "queries/sms/QuerySMSTemplateGetCount.hpp"
#include "queries/sms/QuerySmsThreadMarkAsRead.hpp"
#include "queries/messages/sms/QuerySMSGet.hpp"
#include "queries/messages/sms/QuerySMSGetByContactID.hpp"
#include "queries/messages/sms/QuerySMSGetByThreadID.hpp"
#include "queries/messages/sms/QuerySMSGetByID.hpp"
#include "queries/messages/sms/QuerySMSGetByText.hpp"
#include "queries/messages/sms/QuerySMSGetCount.hpp"
#include "queries/messages/threads/QueryThreadsSearch.hpp"
#include "queries/messages/sms/QuerySMSRemove.hpp"
#include "queries/messages/templates/QuerySMSTemplateGet.hpp"
#include "queries/messages/templates/QuerySMSTemplateRemove.hpp"
#include "queries/messages/templates/QuerySMSTemplateUpdate.hpp"
#include "queries/messages/templates/QuerySMSTemplateAdd.hpp"
#include "queries/messages/templates/QuerySMSTemplateGetByID.hpp"
#include "queries/messages/templates/QuerySMSTemplateGetCount.hpp"
#include "queries/messages/threads/QueryThreadMarkAsRead.hpp"
#include "utf8/UTF8.hpp"
#include "json/json11.hpp"
#include <memory>

M module-services/service-desktop/endpoints/messages/MessagesEndpoint.cpp => module-services/service-desktop/endpoints/messages/MessagesEndpoint.cpp +1 -1
@@ 1,6 1,6 @@

#include "MessagesEndpoint.hpp"
#include "queries/sms/QuerySMSTemplateGetByID.hpp"
#include "module-db/queries/messages/templates/QuerySMSTemplateGetByID.hpp"

using namespace parserFSM;


M module-services/service-desktop/tests/unittest.cpp => module-services/service-desktop/tests/unittest.cpp +1 -1
@@ 6,7 6,7 @@
#include "ParserFSM.hpp"
#include "contacts/ContactHelper.hpp"
#include "messages/MessageHelper.hpp"
#include "queries/sms/QuerySMSSearchByType.hpp"
#include "queries/messages/sms/QuerySMSSearchByType.hpp"
#include "EndpointFactory.hpp"
#include "contacts/ContactsEndpoint.hpp"
#include "json/json11.hpp"