indexdb_es/
view_repository.rs

1use std::marker::PhantomData;
2
3// use async_trait::async_trait;
4// use cqrs_es::persist::{PersistenceError, ViewContext, ViewRepository};
5// use cqrs_es::{Aggregate, View};
6
7// use crate::error::IndexDBAggregateError;
8
9// /// A postgres backed query repository for use in backing a `GenericQuery`.
10pub struct IndexDBViewRepository<V, A> {
11    insert_sql: String,
12    update_sql: String,
13    select_sql: String,
14    // pool: Pool<IndexDB>,
15    _phantom: PhantomData<(V, A)>,
16}
17
18// impl<V, A> IndexDBViewRepository<V, A>
19// where
20//     V: View<A>,
21//     A: Aggregate,
22// {
23//     /// Creates a new `IndexDBViewRepository` that will store serialized views in a IndexDB table named
24//     /// identically to the `view_name` value provided. This table should be created by the user
25//     /// before using this query repository (see `/db/init.sql` sql initialization file).
26//     ///
27//     /// ```
28//     /// # use cqrs_es::doc::MyAggregate;
29//     /// # use cqrs_es::persist::doc::MyView;
30//     /// use sqlx::{Pool, IndexDB};
31//     /// use postgres_es::IndexDBViewRepository;
32//     ///
33//     /// fn configure_view_repo(pool: Pool<IndexDB>) -> IndexDBViewRepository<MyView,MyAggregate> {
34//     ///     IndexDBViewRepository::new("my_view_table", pool)
35//     /// }
36//     /// ```
37//     pub fn new(view_name: &str) -> Self {
38//         todo!()
39//     }
40// }
41
42// #[async_trait]
43// impl<V, A> ViewRepository<V, A> for IndexDBViewRepository<V, A>
44// where
45//     V: View<A>,
46//     A: Aggregate,
47// {
48//     async fn load(&self, view_id: &str) -> Result<Option<V>, PersistenceError> {
49//         todo!()
50//     }
51
52//     async fn load_with_context(
53//         &self,
54//         view_id: &str,
55//     ) -> Result<Option<(V, ViewContext)>, PersistenceError> {
56//         todo!()
57//     }
58
59//     async fn update_view(&self, view: V, context: ViewContext) -> Result<(), PersistenceError> {
60//         todo!()
61//     }
62// }