feat(backend-api): Add get_app_by_id_opt

This commit is contained in:
Christoph Herzog
2024-02-07 11:00:04 +01:00
committed by Christoph Herzog
parent f3f38df4e2
commit 088196a334

View File

@@ -275,17 +275,31 @@ pub async fn get_app_by_id(
client: &WasmerClient,
app_id: String,
) -> Result<DeployApp, anyhow::Error> {
client
get_app_by_id_opt(client, app_id)
.await?
.context("app not found")
}
/// Retrieve an app by its global id.
pub async fn get_app_by_id_opt(
client: &WasmerClient,
app_id: String,
) -> Result<Option<DeployApp>, anyhow::Error> {
let app_opt = client
.run_graphql(types::GetDeployAppById::build(
types::GetDeployAppByIdVars {
app_id: app_id.into(),
},
))
.await?
.app
.context("app not found")?
.into_deploy_app()
.context("app conversion failed")
.app;
if let Some(app) = app_opt {
let app = app.into_deploy_app().context("app conversion failed")?;
Ok(Some(app))
} else {
Ok(None)
}
}
/// Retrieve an app together with a specific version.