bios_iam/console_app/api/
iam_ca_cert_manage_api.rs1use tardis::web::context_extractor::TardisContextExtractor;
2use tardis::web::poem_openapi;
3use tardis::web::poem_openapi::{param::Path, payload::Json};
4use tardis::web::web_resp::{TardisApiResult, TardisResp, Void};
5
6use bios_basic::rbum::dto::rbum_cert_dto::RbumCertSummaryWithSkResp;
7use bios_basic::rbum::dto::rbum_rel_dto::RbumRelBoneResp;
8
9use crate::basic::dto::iam_cert_dto::IamCertModifyVisibilityRequest;
10use crate::basic::serv::iam_cert_serv::IamCertServ;
11use crate::iam_constants;
12use bios_basic::helper::request_helper::try_set_real_ip_from_req_to_ctx;
13use tardis::web::poem::Request;
14#[derive(Clone, Default)]
15pub struct IamCaCertManageApi;
16
17#[poem_openapi::OpenApi(prefix_path = "/ca/cert/manage", tag = "bios_basic::ApiTag::Tenant")]
20impl IamCaCertManageApi {
21 #[oai(path = "/:id", method = "get")]
24 async fn get_manage_cert(&self, id: Path<String>, ctx: TardisContextExtractor, request: &Request) -> TardisApiResult<RbumCertSummaryWithSkResp> {
25 try_set_real_ip_from_req_to_ctx(request, &ctx.0).await?;
26 let funs = iam_constants::get_tardis_inst();
27 let ctx = IamCertServ::use_sys_or_tenant_ctx_unsafe(ctx.0)?;
28 let cert = IamCertServ::get_3th_kind_cert_by_id(&id.0, true, &funs, &ctx).await?;
29 ctx.execute_task().await?;
30 TardisResp::ok(cert)
31 }
32
33 #[oai(path = "/:id", method = "put")]
36 async fn modify_sk_visibility(&self, id: Path<String>, body: Json<IamCertModifyVisibilityRequest>, ctx: TardisContextExtractor, request: &Request) -> TardisApiResult<Void> {
37 try_set_real_ip_from_req_to_ctx(request, &ctx.0).await?;
38 let mut funs = iam_constants::get_tardis_inst();
39 let ctx = IamCertServ::use_sys_or_tenant_ctx_unsafe(ctx.0)?;
40 funs.begin().await?;
41 IamCertServ::modify_sk_visibility(&id.0, body.0, &funs, &ctx).await?;
42 funs.commit().await?;
43 ctx.execute_task().await?;
44 TardisResp::ok(Void)
45 }
46
47 #[oai(path = "/rel/:item_id", method = "get")]
50 async fn find_certs(&self, item_id: Path<String>, ctx: TardisContextExtractor, request: &Request) -> TardisApiResult<Vec<RbumRelBoneResp>> {
51 try_set_real_ip_from_req_to_ctx(request, &ctx.0).await?;
52 let funs = iam_constants::get_tardis_inst();
53 let ctx = IamCertServ::use_sys_or_tenant_ctx_unsafe(ctx.0)?;
54 let rbum_certs = IamCertServ::find_to_simple_rel_cert(&item_id.0, None, None, &funs, &ctx).await?;
55 ctx.execute_task().await?;
56 TardisResp::ok(rbum_certs)
57 }
58}