relay_knowledge/storage/sqlite/code/
repository_set_store.rs1use 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}