From e9686b6ab684785d5f9acbc98942beae94817562 Mon Sep 17 00:00:00 2001 From: MetroWind Date: Sun, 21 Sep 2025 21:34:34 -0700 Subject: Implement dir handler. Unit test WIP. --- src/data.hpp | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'src/data.hpp') diff --git a/src/data.hpp b/src/data.hpp index 006f1f2..45e867a 100644 --- a/src/data.hpp +++ b/src/data.hpp @@ -12,6 +12,7 @@ struct LinkItem { enum Visibility {PUBLIC, PRIVATE}; + static std::string visibilityToStr(Visibility v); int64_t id; int64_t owner_id; @@ -43,8 +44,18 @@ public: // help with database migration. virtual mw::E getSchemaVersion() const = 0; - virtual mw::E> items(std::optional parent) = 0; - virtual mw::E addLink(LinkItem&& link) = 0; + virtual mw::E> + userByOpenIDUID(const std::string& uid) const = 0; + virtual mw::E addUser(User&& u) const = 0; + virtual mw::E> userByID(const int64_t) const = 0; + virtual mw::E> userByName(const std::string& name) const = 0; + virtual mw::E> itemByID(int64_t id) const = 0; + // Get all children of “parent”. + virtual mw::E> itemsByParent(int64_t parent) const = 0; + // Get all top-level items owned by “username”. + virtual mw::E> + itemsTopLevelByUser(int64_t user_id) const = 0; + virtual mw::E addLink(LinkItem&& link) const = 0; protected: virtual mw::E setSchemaVersion(int64_t v) const = 0; @@ -63,8 +74,16 @@ public: mw::E getSchemaVersion() const override; - mw::E> items(std::optional parent) override; - mw::E addLink(LinkItem&& link) override; + mw::E> + userByOpenIDUID(const std::string& uid) const override; + mw::E addUser(User&& u) const override; + mw::E> userByID(const int64_t) const override; + mw::E> userByName(const std::string& name) const override; + mw::E> itemByID(int64_t id) const override; + mw::E> itemsByParent(int64_t parent) const override; + mw::E> itemsTopLevelByUser(int64_t user_id) const override; + + mw::E addLink(LinkItem&& link) const override; // Do not use. DataSourceSQLite() = default; -- cgit v1.2.3-70-g09d2