@@ -254,26 +254,21 @@ impl RbumItemCrudOperation<iam_res::ActiveModel, IamResAddReq, IamResModifyReq,
254
254
}
255
255
256
256
async fn before_delete_item ( id : & str , funs : & TardisFunsInst , ctx : & TardisContext ) -> TardisResult < Option < IamResDetailResp > > {
257
- let deleted_item = Self :: get_item (
258
- id,
259
- & IamResFilterReq {
260
- basic : RbumBasicFilterReq {
261
- with_sub_own_paths : true ,
257
+ Ok ( Some (
258
+ Self :: get_item (
259
+ id,
260
+ & IamResFilterReq {
261
+ basic : RbumBasicFilterReq {
262
+ with_sub_own_paths : true ,
263
+ ..Default :: default ( )
264
+ } ,
262
265
..Default :: default ( )
263
266
} ,
264
- ..Default :: default ( )
265
- } ,
266
- funs,
267
- ctx,
268
- )
269
- . await ?;
270
- if deleted_item. kind == IamResKind :: Ele || deleted_item. kind == IamResKind :: Menu {
271
- let delete_api_res = IamResServ :: find_to_simple_rel_roles ( & IamRelKind :: IamResApi , id, None , None , funs, ctx) . await ?. into_iter ( ) . map ( |rel| rel. rel_id ) . collect_vec ( ) ;
272
- for delete_api_id in delete_api_res {
273
- IamRelServ :: delete_simple_rel ( & IamRelKind :: IamResApi , & delete_api_id, id, funs, ctx) . await ?;
274
- }
275
- }
276
- Ok ( Some ( deleted_item) )
267
+ funs,
268
+ ctx,
269
+ )
270
+ . await ?,
271
+ ) )
277
272
}
278
273
279
274
async fn after_delete_item ( _: & str , deleted_item : & Option < IamResDetailResp > , funs : & TardisFunsInst , ctx : & TardisContext ) -> TardisResult < ( ) > {
@@ -623,6 +618,29 @@ impl IamResServ {
623
618
}
624
619
Ok ( result)
625
620
}
621
+
622
+ pub async fn delete_res ( id : & str , funs : & TardisFunsInst , ctx : & TardisContext ) -> TardisResult < u64 > {
623
+ let item_detail = Self :: get_item (
624
+ id,
625
+ & IamResFilterReq {
626
+ basic : RbumBasicFilterReq {
627
+ with_sub_own_paths : true ,
628
+ ..Default :: default ( )
629
+ } ,
630
+ ..Default :: default ( )
631
+ } ,
632
+ funs,
633
+ ctx,
634
+ )
635
+ . await ?;
636
+ if item_detail. kind == IamResKind :: Ele || item_detail. kind == IamResKind :: Menu {
637
+ let delete_api_res = IamResServ :: find_to_simple_rel_roles ( & IamRelKind :: IamResApi , id, None , None , funs, ctx) . await ?. into_iter ( ) . map ( |rel| rel. rel_id ) . collect_vec ( ) ;
638
+ for delete_api_id in delete_api_res {
639
+ IamRelServ :: delete_simple_rel ( & IamRelKind :: IamResApi , & delete_api_id, id, funs, ctx) . await ?;
640
+ }
641
+ }
642
+ Self :: delete_item_with_all_rels ( id, funs, ctx) . await
643
+ }
626
644
}
627
645
628
646
impl IamMenuServ {
0 commit comments