From c6d975799ac875b200da804febd982e462544ab6 Mon Sep 17 00:00:00 2001 From: Fintan Halpenny Date: Wed, 6 Nov 2024 14:59:11 +0000 Subject: [PATCH] cli: verification of project for json errors only An `xyz.radicle.project` payload is allowed to not be defined, so report the error if the project resulted in a JSON error. --- radicle-cli/examples/rad-id-update-delete-field.md | 2 +- radicle-cli/src/commands/id.rs | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/radicle-cli/examples/rad-id-update-delete-field.md b/radicle-cli/examples/rad-id-update-delete-field.md index 7f80573c..843d4652 100644 --- a/radicle-cli/examples/rad-id-update-delete-field.md +++ b/radicle-cli/examples/rad-id-update-delete-field.md @@ -74,5 +74,5 @@ Note that we cannot delete mandatory fields: ``` (fails) $ rad id update --title "Delete default branch" --payload xyz.radicle.project defaultBranch null -✗ Error: failed to verify `xyz.radicle.project`, json: missing field `defaultBranch` +✗ Error: failed to verify `xyz.radicle.project`, missing field `defaultBranch` ``` diff --git a/radicle-cli/src/commands/id.rs b/radicle-cli/src/commands/id.rs index 694ae23e..0931474b 100644 --- a/radicle-cli/src/commands/id.rs +++ b/radicle-cli/src/commands/id.rs @@ -460,13 +460,13 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> { anyhow::bail!("payload `{id}` not found in identity document"); } } - // Verify that the project payload can still be parsed into the - // `Project` type. - if let Err(e) = proposal.project() { - anyhow::bail!("failed to verify `xyz.radicle.project`, {e}"); - } proposal }; + // Verify that the project payload can still be parsed into the + // `Project` type. + if let Err(PayloadError::Json(e)) = proposal.project() { + anyhow::bail!("failed to verify `xyz.radicle.project`, {e}"); + } let proposal = proposal.verified()?; if proposal == current.doc { if !options.quiet {