mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-04-10 03:13:33 +02:00
cli: prep 0.4.0 stable release
This commit is contained in:
@@ -2,8 +2,8 @@ use crate::cli::{RequestArgs, RequestCommands, RequestSchemaType};
|
||||
use crate::context::CliContext;
|
||||
use crate::utils::confirm::confirm_delete;
|
||||
use crate::utils::json::{
|
||||
apply_merge_patch, is_json_shorthand, parse_optional_json, parse_required_json, require_id,
|
||||
validate_create_id,
|
||||
apply_merge_patch, is_json_shorthand, merge_workspace_id_arg, parse_optional_json,
|
||||
parse_required_json, require_id, validate_create_id,
|
||||
};
|
||||
use crate::utils::schema::append_agent_hints;
|
||||
use schemars::schema_for;
|
||||
@@ -11,8 +11,8 @@ use serde_json::{Map, Value, json};
|
||||
use std::collections::HashMap;
|
||||
use std::io::Write;
|
||||
use tokio::sync::mpsc;
|
||||
use yaak_http::sender::HttpResponseEvent as SenderHttpResponseEvent;
|
||||
use yaak::send::{SendHttpRequestByIdWithPluginsParams, send_http_request_by_id_with_plugins};
|
||||
use yaak_http::sender::HttpResponseEvent as SenderHttpResponseEvent;
|
||||
use yaak_models::models::{GrpcRequest, HttpRequest, WebsocketRequest};
|
||||
use yaak_models::queries::any_request::AnyRequest;
|
||||
use yaak_models::util::UpdateSource;
|
||||
@@ -336,15 +336,11 @@ fn create(
|
||||
url: Option<String>,
|
||||
json: Option<String>,
|
||||
) -> CommandResult {
|
||||
if json.is_some() && workspace_id.as_deref().is_some_and(|v| !is_json_shorthand(v)) {
|
||||
return Err("request create cannot combine workspace_id with --json payload".to_string());
|
||||
}
|
||||
let json_shorthand =
|
||||
workspace_id.as_deref().filter(|v| is_json_shorthand(v)).map(str::to_owned);
|
||||
let workspace_id_arg = workspace_id.filter(|v| !is_json_shorthand(v));
|
||||
|
||||
let payload = parse_optional_json(
|
||||
json,
|
||||
workspace_id.clone().filter(|v| is_json_shorthand(v)),
|
||||
"request create",
|
||||
)?;
|
||||
let payload = parse_optional_json(json, json_shorthand, "request create")?;
|
||||
|
||||
if let Some(payload) = payload {
|
||||
if name.is_some() || method.is_some() || url.is_some() {
|
||||
@@ -352,12 +348,13 @@ fn create(
|
||||
}
|
||||
|
||||
validate_create_id(&payload, "request")?;
|
||||
let request: HttpRequest = serde_json::from_value(payload)
|
||||
let mut request: HttpRequest = serde_json::from_value(payload)
|
||||
.map_err(|e| format!("Failed to parse request create JSON: {e}"))?;
|
||||
|
||||
if request.workspace_id.is_empty() {
|
||||
return Err("request create JSON requires non-empty \"workspaceId\"".to_string());
|
||||
}
|
||||
merge_workspace_id_arg(
|
||||
workspace_id_arg.as_deref(),
|
||||
&mut request.workspace_id,
|
||||
"request create",
|
||||
)?;
|
||||
|
||||
let created = ctx
|
||||
.db()
|
||||
@@ -368,7 +365,7 @@ fn create(
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let workspace_id = workspace_id.ok_or_else(|| {
|
||||
let workspace_id = workspace_id_arg.ok_or_else(|| {
|
||||
"request create requires workspace_id unless JSON payload is provided".to_string()
|
||||
})?;
|
||||
let name = name.unwrap_or_default();
|
||||
|
||||
Reference in New Issue
Block a user