Skip to main content

relay_knowledge/storage/sqlite/code/
repository_set_store.rs

1use crate::storage::{
2    CodeRepositorySetEdgeSelector, CodeRepositorySetMemberSeed,
3    CodeRepositorySetRefreshPublication, CodeRepositorySetRefreshTaskClaimRequest,
4    CodeRepositorySetRefreshTaskCompletion, CodeRepositorySetRefreshTaskFailure,
5    CodeRepositorySetRefreshTaskSeed, CodeRepositorySetSeed, CodeRepositorySetStore, StorageFuture,
6};
7
8use super::{SqliteGraphStore, set};
9
10impl CodeRepositorySetStore for SqliteGraphStore {
11    fn create_code_repository_set(
12        &self,
13        seed: CodeRepositorySetSeed,
14    ) -> StorageFuture<'_, crate::domain::CodeRepositorySet> {
15        self.run(move |connection| set::create_set(connection, seed))
16    }
17
18    fn add_code_repository_set_member(
19        &self,
20        seed: CodeRepositorySetMemberSeed,
21    ) -> StorageFuture<'_, crate::domain::CodeRepositorySetMember> {
22        self.run(move |connection| set::add_member(connection, seed))
23    }
24
25    fn remove_code_repository_set_member(
26        &self,
27        set_alias: String,
28        repository_alias: String,
29    ) -> StorageFuture<'_, crate::domain::CodeRepositorySetMember> {
30        self.run(move |connection| set::remove_member(connection, &set_alias, &repository_alias))
31    }
32
33    fn code_repository_set(
34        &self,
35        set_alias: String,
36    ) -> StorageFuture<'_, Option<crate::domain::CodeRepositorySet>> {
37        self.run_read(move |connection| set::set_by_alias(connection, &set_alias))
38    }
39
40    fn code_repository_set_status(
41        &self,
42        set_alias: String,
43    ) -> StorageFuture<'_, Option<crate::domain::CodeRepositorySetStatus>> {
44        self.run_read_snapshot(move |connection| set::set_status(connection, &set_alias))
45    }
46
47    fn refresh_code_repository_set_overlay(
48        &self,
49        set_alias: String,
50        publication: CodeRepositorySetRefreshPublication,
51    ) -> StorageFuture<'_, crate::domain::CodeRepositorySetRefreshSummary> {
52        self.run(move |connection| {
53            set::refresh_overlay_for_task(connection, &set_alias, publication)
54        })
55    }
56
57    fn code_repository_set_cross_edges(
58        &self,
59        set_id: String,
60    ) -> StorageFuture<'_, Vec<crate::domain::CodeRepositoryCrossEdge>> {
61        self.run_read_snapshot(move |connection| set::cross_edges_for_set(connection, &set_id))
62    }
63
64    fn code_repository_set_cross_edges_for_selector(
65        &self,
66        set_id: String,
67        selector: CodeRepositorySetEdgeSelector,
68    ) -> StorageFuture<'_, Vec<crate::domain::CodeRepositoryCrossEdge>> {
69        self.run_read_snapshot(move |connection| {
70            set::cross_edges_for_selector(connection, &set_id, &selector)
71        })
72    }
73
74    fn queue_code_repository_set_refresh_task(
75        &self,
76        task: CodeRepositorySetRefreshTaskSeed,
77    ) -> StorageFuture<'_, crate::domain::CodeRepositorySetRefreshTaskRecord> {
78        self.run(move |connection| set::refresh_tasks::queue_refresh_task(connection, task))
79    }
80
81    fn claim_code_repository_set_refresh_task(
82        &self,
83        request: CodeRepositorySetRefreshTaskClaimRequest,
84    ) -> StorageFuture<'_, Option<crate::domain::CodeRepositorySetRefreshTaskRecord>> {
85        self.run(move |connection| set::refresh_tasks::claim_refresh_task(connection, request))
86    }
87
88    fn complete_code_repository_set_refresh_task(
89        &self,
90        request: CodeRepositorySetRefreshTaskCompletion,
91    ) -> StorageFuture<'_, crate::domain::CodeRepositorySetRefreshTaskRecord> {
92        self.run(move |connection| set::refresh_tasks::complete_refresh_task(connection, request))
93    }
94
95    fn fail_code_repository_set_refresh_task(
96        &self,
97        request: CodeRepositorySetRefreshTaskFailure,
98    ) -> StorageFuture<'_, crate::domain::CodeRepositorySetRefreshTaskRecord> {
99        self.run(move |connection| set::refresh_tasks::fail_refresh_task(connection, request))
100    }
101}