Files
MuditaOS/module-db/Interface/Record.hpp
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

56 lines
1.2 KiB
C++

#pragma once
#include "../Database/Database.hpp"
#include "BaseInterface.hpp"
template <typename T, typename F> class RecordInterface : public db::Interface
{
public:
RecordInterface() = default;
virtual ~RecordInterface() = default;
virtual bool Add(const T &)
{
return true;
};
virtual bool RemoveByID(uint32_t id)
{
return true;
};
virtual bool RemoveByField(F field, const char *str)
{
return true;
};
virtual bool Update(const T &)
{
return true;
};
virtual T GetByID(uint32_t id)
{
return T{};
};
virtual uint32_t GetCount()
{
return 0;
}
virtual std::unique_ptr<std::vector<T>> GetLimitOffset(uint32_t offset, uint32_t limit)
{
return std::make_unique<std::vector<T>>();
}
virtual std::unique_ptr<std::vector<T>> GetLimitOffsetByField(uint32_t offset,
uint32_t limit,
F field,
const char *str)
{
return std::make_unique<std::vector<T>>();
}
};