diff options
author | MetroWind <chris.corsair@gmail.com> | 2025-09-21 21:34:34 -0700 |
---|---|---|
committer | MetroWind <chris.corsair@gmail.com> | 2025-09-21 21:34:34 -0700 |
commit | e9686b6ab684785d5f9acbc98942beae94817562 (patch) | |
tree | 10ffe1b7b209aee2f0513cd0c42def2c07272ea2 /src/data.hpp | |
parent | b2e812941766e11394bdb124ff73d1fe544849a2 (diff) |
Diffstat (limited to 'src/data.hpp')
-rw-r--r-- | src/data.hpp | 27 |
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 @@ | |||
12 | struct LinkItem | 12 | struct 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 | ||
49 | protected: | 60 | protected: |
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; |