split into workspace so CLI can be a standalone crate
This commit is contained in:
@ -9,8 +9,9 @@ use crate::shortcuts::{self, ShortcutAction};
|
||||
use crate::state::AppState;
|
||||
use super::{
|
||||
CloseWaiter,
|
||||
Request,
|
||||
Response,
|
||||
CliCredential,
|
||||
CliRequest,
|
||||
CliResponse,
|
||||
Stream,
|
||||
};
|
||||
|
||||
@ -43,13 +44,12 @@ async fn handle(
|
||||
let waiter = CloseWaiter { stream: &mut stream };
|
||||
|
||||
|
||||
let req: Request = serde_json::from_slice(&buf)?;
|
||||
let req: CliRequest = serde_json::from_slice(&buf)?;
|
||||
let res = match req {
|
||||
Request::GetAwsCredentials { name, base } => get_aws_credentials(
|
||||
CliRequest::GetCredential{ name, base } => get_aws_credentials(
|
||||
name, base, client, app_handle, waiter
|
||||
).await,
|
||||
Request::InvokeShortcut(action) => invoke_shortcut(action).await,
|
||||
Request::GetSshSignature(_) => return Err(HandlerError::Denied),
|
||||
CliRequest::InvokeShortcut(action) => invoke_shortcut(action).await,
|
||||
};
|
||||
|
||||
// doesn't make sense to send the error to the client if the client has already left
|
||||
@ -63,9 +63,9 @@ async fn handle(
|
||||
}
|
||||
|
||||
|
||||
async fn invoke_shortcut(action: ShortcutAction) -> Result<Response, HandlerError> {
|
||||
async fn invoke_shortcut(action: ShortcutAction) -> Result<CliResponse, HandlerError> {
|
||||
shortcuts::exec_shortcut(action);
|
||||
Ok(Response::Empty)
|
||||
Ok(CliResponse::Empty)
|
||||
}
|
||||
|
||||
|
||||
@ -75,7 +75,7 @@ async fn get_aws_credentials(
|
||||
client: Client,
|
||||
app_handle: AppHandle,
|
||||
mut waiter: CloseWaiter<'_>,
|
||||
) -> Result<Response, HandlerError> {
|
||||
) -> Result<CliResponse, HandlerError> {
|
||||
let state = app_handle.state::<AppState>();
|
||||
let rehide_ms = {
|
||||
let config = state.config.read().await;
|
||||
@ -108,11 +108,11 @@ async fn get_aws_credentials(
|
||||
Approval::Approved => {
|
||||
if response.base {
|
||||
let creds = state.get_aws_base(name).await?;
|
||||
Ok(Response::AwsBase(creds))
|
||||
Ok(CliResponse::Credential(CliCredential::AwsBase(creds)))
|
||||
}
|
||||
else {
|
||||
let creds = state.get_aws_session(name).await?;
|
||||
Ok(Response::AwsSession(creds.clone()))
|
||||
let creds = state.get_aws_session(name).await?.clone();
|
||||
Ok(CliResponse::Credential(CliCredential::AwsSession(creds)))
|
||||
}
|
||||
},
|
||||
Approval::Denied => Err(HandlerError::Denied),
|
||||
@ -129,4 +129,4 @@ async fn get_aws_credentials(
|
||||
|
||||
lease.release();
|
||||
result
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user