diff --git a/agent_api_rest/src/holder/holder/presentations/mod.rs b/agent_api_rest/src/holder/holder/presentations/mod.rs index 2d477e93..6125f731 100644 --- a/agent_api_rest/src/holder/holder/presentations/mod.rs +++ b/agent_api_rest/src/holder/holder/presentations/mod.rs @@ -10,6 +10,7 @@ use axum::{ Json, }; use hyper::StatusCode; +use identity_credential::credential::Jwt; use serde::{Deserialize, Serialize}; use serde_json::{json, Value}; use tracing::info; @@ -43,19 +44,24 @@ pub(crate) async fn presentation(State(state): State, Path(presenta #[derive(Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct PresentationsEndpointRequest { + #[serde(default)] pub credential_ids: Vec, + #[serde(default)] + pub credentials: Vec, } #[axum_macros::debug_handler] pub(crate) async fn post_presentations(State(state): State, Json(payload): Json) -> Response { info!("Request Body: {}", payload); - let Ok(PresentationsEndpointRequest { credential_ids }) = serde_json::from_value(payload) else { + let Ok(PresentationsEndpointRequest { + credential_ids, + mut credentials, + }) = serde_json::from_value(payload) + else { return (StatusCode::BAD_REQUEST, "invalid payload").into_response(); }; - let mut credentials = vec![]; - // Get all the credentials. for credential_id in credential_ids { match query_handler(&credential_id, &state.query.holder_credential).await {