aboutsummaryrefslogtreecommitdiff
path: root/src/data.hpp
diff options
context:
space:
mode:
authorMetroWind <chris.corsair@gmail.com>2025-09-21 21:34:34 -0700
committerMetroWind <chris.corsair@gmail.com>2025-09-21 21:34:34 -0700
commite9686b6ab684785d5f9acbc98942beae94817562 (patch)
tree10ffe1b7b209aee2f0513cd0c42def2c07272ea2 /src/data.hpp
parentb2e812941766e11394bdb124ff73d1fe544849a2 (diff)
Implement dir handler. Unit test WIP.HEADmaster
Diffstat (limited to 'src/data.hpp')
-rw-r--r--src/data.hpp27
1 files changed, 23 insertions, 4 deletions
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 @@
12struct LinkItem 12struct LinkItem
13{ 13{
14 enum Visibility {PUBLIC, PRIVATE}; 14 enum Visibility {PUBLIC, PRIVATE};
15 static std::string visibilityToStr(Visibility v);
15 16
16 int64_t id; 17 int64_t id;
17 int64_t owner_id; 18 int64_t owner_id;
@@ -43,8 +44,18 @@ public:
43 // help with database migration. 44 // help with database migration.
44 virtual mw::E<int64_t> getSchemaVersion() const = 0; 45 virtual mw::E<int64_t> getSchemaVersion() const = 0;
45 46
46 virtual mw::E<std::vector<LinkItem>> items(std::optional<int64_t> parent) = 0; 47 virtual mw::E<std::optional<User>>
47 virtual mw::E<int64_t> addLink(LinkItem&& link) = 0; 48 userByOpenIDUID(const std::string& uid) const = 0;
49 virtual mw::E<int64_t> addUser(User&& u) const = 0;
50 virtual mw::E<std::optional<User>> userByID(const int64_t) const = 0;
51 virtual mw::E<std::optional<User>> userByName(const std::string& name) const = 0;
52 virtual mw::E<std::optional<LinkItem>> itemByID(int64_t id) const = 0;
53 // Get all children of “parent”.
54 virtual mw::E<std::vector<LinkItem>> itemsByParent(int64_t parent) const = 0;
55 // Get all top-level items owned by “username”.
56 virtual mw::E<std::vector<LinkItem>>
57 itemsTopLevelByUser(int64_t user_id) const = 0;
58 virtual mw::E<int64_t> addLink(LinkItem&& link) const = 0;
48 59
49protected: 60protected:
50 virtual mw::E<void> setSchemaVersion(int64_t v) const = 0; 61 virtual mw::E<void> setSchemaVersion(int64_t v) const = 0;
@@ -63,8 +74,16 @@ public:
63 74
64 mw::E<int64_t> getSchemaVersion() const override; 75 mw::E<int64_t> getSchemaVersion() const override;
65 76
66 mw::E<std::vector<LinkItem>> items(std::optional<int64_t> parent) override; 77 mw::E<std::optional<User>>
67 mw::E<int64_t> addLink(LinkItem&& link) override; 78 userByOpenIDUID(const std::string& uid) const override;
79 mw::E<int64_t> addUser(User&& u) const override;
80 mw::E<std::optional<User>> userByID(const int64_t) const override;
81 mw::E<std::optional<User>> userByName(const std::string& name) const override;
82 mw::E<std::optional<LinkItem>> itemByID(int64_t id) const override;
83 mw::E<std::vector<LinkItem>> itemsByParent(int64_t parent) const override;
84 mw::E<std::vector<LinkItem>> itemsTopLevelByUser(int64_t user_id) const override;
85
86 mw::E<int64_t> addLink(LinkItem&& link) const override;
68 87
69 // Do not use. 88 // Do not use.
70 DataSourceSQLite() = default; 89 DataSourceSQLite() = default;