DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/RPC/CocoonService/Secret/
GetSecret.rs1use tonic::{Response, Status};
5use CommonLibrary::Secret::SecretProvider::SecretProvider;
6
7use crate::{
8 RPC::CocoonService::CocoonServiceImpl,
9 Vine::Generated::{GetSecretRequest, GetSecretResponse},
10 dev_log,
11};
12
13pub async fn Fn(Service:&CocoonServiceImpl, Request:GetSecretRequest) -> Result<Response<GetSecretResponse>, Status> {
14 dev_log!("cocoon", "[CocoonService] get_secret: key={}", Request.key);
15
16 match Service.environment.GetSecret(String::new(), Request.key.clone()).await {
17 Ok(Some(Value)) => Ok(Response::new(GetSecretResponse { value:Value })),
18
19 Ok(None) => Ok(Response::new(GetSecretResponse { value:String::new() })),
20
21 Err(Error) => {
22 dev_log!(
23 "cocoon",
24 "warn: [CocoonService] get_secret failed key={}: {}",
25 Request.key,
26 Error
27 );
28
29 Err(Status::internal(format!("get_secret: {}", Error)))
30 },
31 }
32}