1+ use crate :: database:: db_manger:: ColumnFamilyOperations ;
12use crate :: database:: db_manger:: RocksDB ;
23use crate :: model:: poolswap_aggregated:: PoolSwapAggregated ;
34use anyhow:: { anyhow, Result } ;
45use serde:: { Deserialize , Serialize } ;
56
6- pub struct PoolSwapAggregatedDb { }
7+ pub struct PoolSwapAggregatedDb {
8+ pub db : RocksDB ,
9+ }
710
811impl PoolSwapAggregatedDb {
912 pub async fn query (
@@ -15,12 +18,31 @@ impl PoolSwapAggregatedDb {
1518 todo ! ( )
1619 }
1720 pub async fn put ( & self , aggregated : PoolSwapAggregated ) -> Result < ( ) > {
18- todo ! ( )
21+ match serde_json:: to_string ( & aggregated) {
22+ Ok ( value) => {
23+ let key = aggregated. id . clone ( ) ;
24+ self . db
25+ . put ( "pool_swap_aggregated" , key. as_bytes ( ) , value. as_bytes ( ) ) ?;
26+ Ok ( ( ) )
27+ }
28+ Err ( e) => Err ( anyhow ! ( e) ) ,
29+ }
1930 }
2031 pub async fn get ( & self , id : String ) -> Result < PoolSwapAggregated > {
21- todo ! ( )
32+ match self . db . get ( "pool_swap_aggregated" , id. as_bytes ( ) ) {
33+ Ok ( Some ( value) ) => {
34+ let pool_swap: PoolSwapAggregated =
35+ serde_json:: from_slice ( & value) . map_err ( |e| anyhow ! ( e) ) ?;
36+ Ok ( pool_swap)
37+ }
38+ Ok ( None ) => Err ( anyhow ! ( "No data found for the given ID" ) ) ,
39+ Err ( e) => Err ( anyhow ! ( e) ) ,
40+ }
2241 }
2342 pub async fn delete ( & self , id : String ) -> Result < ( ) > {
24- todo ! ( )
43+ match self . db . delete ( "pool_swap_aggregated" , id. as_bytes ( ) ) {
44+ Ok ( _) => Ok ( ( ) ) ,
45+ Err ( e) => Err ( anyhow ! ( e) ) ,
46+ }
2547 }
2648}
0 commit comments