working on pack installation.
This commit is contained in:
@@ -48,10 +48,15 @@ pub struct CreatePackRequest {
|
||||
#[schema(example = json!(["messaging", "collaboration"]))]
|
||||
pub tags: Vec<String>,
|
||||
|
||||
/// Runtime dependencies (refs of required packs)
|
||||
/// Runtime dependencies (e.g., shell, python, nodejs)
|
||||
#[serde(default)]
|
||||
#[schema(example = json!(["shell", "python"]))]
|
||||
pub runtime_deps: Vec<String>,
|
||||
|
||||
/// Pack dependencies (refs of required packs)
|
||||
#[serde(default)]
|
||||
#[schema(example = json!(["core"]))]
|
||||
pub runtime_deps: Vec<String>,
|
||||
pub dependencies: Vec<String>,
|
||||
|
||||
/// Whether this is a standard/built-in pack
|
||||
#[serde(default)]
|
||||
@@ -152,10 +157,14 @@ pub struct UpdatePackRequest {
|
||||
#[schema(example = json!(["messaging", "collaboration", "webhooks"]))]
|
||||
pub tags: Option<Vec<String>>,
|
||||
|
||||
/// Runtime dependencies
|
||||
#[schema(example = json!(["core", "http"]))]
|
||||
/// Runtime dependencies (e.g., shell, python, nodejs)
|
||||
#[schema(example = json!(["shell", "python"]))]
|
||||
pub runtime_deps: Option<Vec<String>>,
|
||||
|
||||
/// Pack dependencies (refs of required packs)
|
||||
#[schema(example = json!(["core", "http"]))]
|
||||
pub dependencies: Option<Vec<String>>,
|
||||
|
||||
/// Whether this is a standard pack
|
||||
#[schema(example = false)]
|
||||
pub is_standard: Option<bool>,
|
||||
@@ -200,10 +209,14 @@ pub struct PackResponse {
|
||||
#[schema(example = json!(["messaging", "collaboration"]))]
|
||||
pub tags: Vec<String>,
|
||||
|
||||
/// Runtime dependencies
|
||||
#[schema(example = json!(["core"]))]
|
||||
/// Runtime dependencies (e.g., shell, python, nodejs)
|
||||
#[schema(example = json!(["shell", "python"]))]
|
||||
pub runtime_deps: Vec<String>,
|
||||
|
||||
/// Pack dependencies (refs of required packs)
|
||||
#[schema(example = json!(["core"]))]
|
||||
pub dependencies: Vec<String>,
|
||||
|
||||
/// Is standard pack
|
||||
#[schema(example = false)]
|
||||
pub is_standard: bool,
|
||||
@@ -271,6 +284,7 @@ impl From<attune_common::models::Pack> for PackResponse {
|
||||
meta: pack.meta,
|
||||
tags: pack.tags,
|
||||
runtime_deps: pack.runtime_deps,
|
||||
dependencies: pack.dependencies,
|
||||
is_standard: pack.is_standard,
|
||||
created: pack.created,
|
||||
updated: pack.updated,
|
||||
@@ -803,6 +817,7 @@ mod tests {
|
||||
assert_eq!(req.version, "1.0.0");
|
||||
assert!(req.tags.is_empty());
|
||||
assert!(req.runtime_deps.is_empty());
|
||||
assert!(req.dependencies.is_empty());
|
||||
assert!(!req.is_standard);
|
||||
}
|
||||
|
||||
@@ -818,6 +833,7 @@ mod tests {
|
||||
meta: default_empty_object(),
|
||||
tags: vec![],
|
||||
runtime_deps: vec![],
|
||||
dependencies: vec![],
|
||||
is_standard: false,
|
||||
};
|
||||
|
||||
|
||||
@@ -139,6 +139,7 @@ pub async fn create_pack(
|
||||
meta: request.meta,
|
||||
tags: request.tags,
|
||||
runtime_deps: request.runtime_deps,
|
||||
dependencies: request.dependencies,
|
||||
is_standard: request.is_standard,
|
||||
installers: serde_json::json!({}),
|
||||
};
|
||||
@@ -222,6 +223,7 @@ pub async fn update_pack(
|
||||
meta: request.meta,
|
||||
tags: request.tags,
|
||||
runtime_deps: request.runtime_deps,
|
||||
dependencies: request.dependencies,
|
||||
is_standard: request.is_standard,
|
||||
installers: None,
|
||||
};
|
||||
@@ -522,6 +524,15 @@ async fn register_pack_internal(
|
||||
})
|
||||
.unwrap_or_default(),
|
||||
runtime_deps: pack_yaml
|
||||
.get("runtime_deps")
|
||||
.and_then(|v| v.as_sequence())
|
||||
.map(|seq| {
|
||||
seq.iter()
|
||||
.filter_map(|v| v.as_str().map(|s| s.to_string()))
|
||||
.collect()
|
||||
})
|
||||
.unwrap_or_default(),
|
||||
dependencies: pack_yaml
|
||||
.get("dependencies")
|
||||
.and_then(|v| v.as_sequence())
|
||||
.map(|seq| {
|
||||
|
||||
@@ -433,6 +433,7 @@ pub async fn create_test_pack(pool: &PgPool, ref_name: &str) -> Result<Pack> {
|
||||
}),
|
||||
tags: vec!["test".to_string()],
|
||||
runtime_deps: vec![],
|
||||
dependencies: vec![],
|
||||
is_standard: false,
|
||||
installers: json!({}),
|
||||
};
|
||||
|
||||
@@ -41,6 +41,7 @@ async fn setup_test_pack_and_action(pool: &PgPool) -> Result<(Pack, Action)> {
|
||||
meta: json!({"author": "test"}),
|
||||
tags: vec!["test".to_string()],
|
||||
runtime_deps: vec![],
|
||||
dependencies: vec![],
|
||||
is_standard: false,
|
||||
installers: json!({}),
|
||||
};
|
||||
|
||||
@@ -39,6 +39,7 @@ async fn create_test_pack(state: &AppState, name: &str) -> i64 {
|
||||
meta: serde_json::json!({}),
|
||||
tags: vec![],
|
||||
runtime_deps: vec![],
|
||||
dependencies: vec![],
|
||||
is_standard: false,
|
||||
installers: json!({}),
|
||||
};
|
||||
|
||||
@@ -47,6 +47,7 @@ async fn create_test_pack(state: &AppState, name: &str) -> i64 {
|
||||
meta: serde_json::json!({}),
|
||||
tags: vec![],
|
||||
runtime_deps: vec![],
|
||||
dependencies: vec![],
|
||||
is_standard: false,
|
||||
installers: json!({}),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user