use serde_json::{Value, json};
use super::{ENROLLED, LOGIN, obj_reply};
pub(super) fn outcome_reply(outcome: &crate::actions::verbs::Outcome) -> Value {
json!({
"ok": outcome.ok(), "kind": "outcome", "exit": outcome.exit,
"stdout": outcome.stdout, "stderr": outcome.stderr,
})
}
pub(super) fn delivered(delivery: &crate::fan::Delivery) -> Value {
let mut map = obj_reply("delivered");
map.insert("target".to_owned(), json!(delivery.target));
map.insert("base".to_owned(), json!(delivery.base));
if let Some(source) = &delivery.source {
map.insert("source".to_owned(), json!(source));
}
if let Some(commit) = &delivery.commit {
map.insert("commit".to_owned(), json!(commit));
}
Value::Object(map)
}
pub(super) fn enrolled_reply(enrolled: &crate::registry::enroll::Enrolled) -> Value {
json!({
"ok": true, "kind": ENROLLED, "grade": enrolled.grade.word(),
"name": enrolled.name, "address": enrolled.address,
"ca": enrolled.ca, "cert": enrolled.cert, "key": enrolled.key,
})
}
pub(super) fn governing(gov: &crate::config_edit::branch::GoverningConfig) -> Value {
json!({
"ok": true, "kind": "governing",
"oid": gov.oid, "short_oid": gov.short_oid,
"follows": gov.followed_lineage(),
"diverged_lineages": gov.diverged_lineages(),
"files": gov.files,
})
}
pub(super) fn login_reply(view: &crate::login::LoginView) -> Value {
let mut map = obj_reply(LOGIN);
map.append(&mut crate::login::wire::body(view));
Value::Object(map)
}