Files
MuditaOS/module-db/queries/sms/QuerySMSSearch.hpp
T
pholat 23df384c55 EGD-3087 SMS Search implemented (#374)
* EGD-3087 WIP adding SMS Querry

* EGD-3087 Added query virtual interface on Service top layer

Service shouldn't implement query logic and should be proxying that.

additionally:
- small fixes in includes
- shared service db name same way as apps and event manager

* EGD-3087 Query - want to work on interface not on db

* EGD-3087 Query gluecode works fine. Our query in SMS search calls getBySMSQuery

Changes cut off before any potential orm interface layer

* EGD-3087 WIP Interface in use

* EGD-3087 Query for SMS search works as designed

* EGD-3087 Query results should be on screen

* EGD-3087 BUG workaround - need to deep refresh display to show data

* EGD-3087 Searching for text from input works fine

* EGD-3087 Showing results / or empty results depending on query

* EGD-3087 Pre PR fixups

* EGD-3087 Empty search - getting back to prewious window ignore current

* EGD-3087 PR applied

* EGD-3087 PR - style fixed

* EGD-3087 Review - DB ListView handling moved to separate function

* EGD-3087 Workaround: crash on use after free fix

* EGD-3087 PR stylistic changes

* EGD-3087 PR cleanup applied

* EGD-3087 Added test for Query interface

* EGD-3087 renamed getByQuery to getQuery & finished tests

* EGD-3087 Post rebase fixup

* EGD-3087 PR - moved ListView request part to separate function

* EGD-3087 PR Fixups

* EGD-3087 Post rebase style fix

* EGD-3087 Added variable for DB service stack & const to getter function
2020-05-27 13:49:50 +02:00

34 lines
985 B
C++

#pragma once
#include <Tables/ThreadsTable.hpp>
#include <Common/Query.hpp>
#include <string>
namespace db::query
{
/// implements search for SMS by text
class SMSSearch : public Query
{
public:
std::string text;
unsigned int starting_postion;
unsigned int depth;
SMSSearch(std::string text_to_search, unsigned int starting_position, unsigned int depth);
[[nodiscard]] auto debugInfo() const -> std::string override;
};
class SMSSearchResult : public QueryResult
{
unsigned int results_max_depth = 0;
std::vector<ThreadsTableRow> results;
public:
SMSSearchResult(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;
};
}; // namespace db::query