@@ -34,7 +34,7 @@ pub struct DeleteChargerSchema {
3434 charger : i32 ,
3535}
3636
37- async fn delete_all_keys ( cid : i32 , state : & web:: Data < AppState > ) -> Result < ( ) , actix_web:: Error > {
37+ pub async fn delete_all_keys ( cid : i32 , state : & web:: Data < AppState > ) -> Result < ( ) , actix_web:: Error > {
3838 use db_connector:: schema:: wg_keys:: dsl:: * ;
3939
4040 let mut conn = get_connection ( state) ?;
@@ -49,7 +49,7 @@ async fn delete_all_keys(cid: i32, state: &web::Data<AppState>) -> Result<(), ac
4949 Ok ( ( ) )
5050}
5151
52- async fn delete_all_allowed_users (
52+ pub async fn delete_all_allowed_users (
5353 cid : i32 ,
5454 state : & web:: Data < AppState > ,
5555) -> Result < ( ) , actix_web:: Error > {
@@ -67,6 +67,20 @@ async fn delete_all_allowed_users(
6767 Ok ( ( ) )
6868}
6969
70+ pub async fn delete_charger ( charger : i32 , state : & web:: Data < AppState > ) -> actix_web:: Result < ( ) > {
71+ use db_connector:: schema:: chargers:: dsl:: * ;
72+ let mut conn = get_connection ( & state) ?;
73+ web_block_unpacked ( move || {
74+ match diesel:: delete ( chargers. filter ( id. eq ( charger) ) ) . execute ( & mut conn) {
75+ Ok ( _) => Ok ( ( ) ) ,
76+ Err ( _err) => Err ( Error :: InternalError ) ,
77+ }
78+ } )
79+ . await ?;
80+
81+ Ok ( ( ) )
82+ }
83+
7084#[ utoipa:: path(
7185 context_path = "/charger" ,
7286 request_body = DeleteChargerSchema ,
@@ -84,23 +98,14 @@ pub async fn remove(
8498 uid : crate :: models:: uuid:: Uuid ,
8599 data : web:: Json < DeleteChargerSchema > ,
86100) -> Result < impl Responder , actix_web:: Error > {
87- use db_connector:: schema:: chargers:: dsl:: * ;
88101
89102 if !charger_belongs_to_user ( & state, uid. clone ( ) . into ( ) , data. charger . clone ( ) ) . await ? {
90103 return Err ( Error :: UserIsNotOwner . into ( ) ) ;
91104 }
92105
93106 delete_all_keys ( data. charger . clone ( ) , & state) . await ?;
94107 delete_all_allowed_users ( data. charger . clone ( ) , & state) . await ?;
95-
96- let mut conn = get_connection ( & state) ?;
97- web_block_unpacked ( move || {
98- match diesel:: delete ( chargers. filter ( id. eq ( data. charger . clone ( ) ) ) ) . execute ( & mut conn) {
99- Ok ( _) => Ok ( ( ) ) ,
100- Err ( _err) => Err ( Error :: InternalError ) ,
101- }
102- } )
103- . await ?;
108+ delete_charger ( data. charger , & state) . await ?;
104109
105110 Ok ( HttpResponse :: Ok ( ) )
106111}
@@ -124,16 +129,17 @@ pub(crate) mod tests {
124129 tests:: configure,
125130 } ;
126131
127- pub fn remove_test_keys ( mail : & str ) {
132+ pub fn remove_test_keys ( mail : & str ) -> anyhow :: Result < ( ) > {
128133 use db_connector:: schema:: wg_keys:: dsl:: * ;
129134
130- let uid = get_test_uuid ( mail) ;
135+ let uid = get_test_uuid ( mail) ? ;
131136
132137 let pool = test_connection_pool ( ) ;
133138 let mut conn = pool. get ( ) . unwrap ( ) ;
134139 diesel:: delete ( wg_keys. filter ( user_id. eq ( uid) ) )
135- . execute ( & mut conn)
136- . unwrap ( ) ;
140+ . execute ( & mut conn) ?;
141+
142+ Ok ( ( ) )
137143 }
138144
139145 pub fn remove_allowed_test_users ( cid : i32 ) {
0 commit comments