Source code for pyeudiw.satosa.frontends.openid4vci.models.deferred_credential_endpoint_response

from typing import Optional, List

from pydantic import BaseModel
from satosa.response import Response

from pyeudiw.tools.content_type import APPLICATION_JSON


[docs] class CredentialItem(BaseModel): """ Represents a single credential used in the credential request payload. Attributes: credential (str): REQUIRED. A string containing one issued PID/(Q)EAA. - If the requested format is 'dc+sd-jwt', this string MUST NOT be re-encoded. - If the requested format is 'mso_mdoc', it MUST be a base64url-encoded CBOR-encoded IssuerSigned structure (per ISO 18013-5). """ credential: str
[docs] class DeferredCredentialEndpointResponse(BaseModel): """ Represents a response returned for deferred credential issuance. Attributes: credentials (Optional[List[CredentialItem]]): A list of credentials that are ready to be retrieved. May be None if no credentials are available yet. notification_id (Optional[str]): An optional identifier for tracking the notification related to this deferred response. """ credentials: Optional[List[CredentialItem]] = None notification_id: Optional[str] = None
[docs] @staticmethod def to_response(credentials: List[CredentialItem]) -> Response: """ Create a SATOSA Response with a JSON payload. A `DeferredCredentialEndpointResponse` instance is created and wrapped in a SATOSA `Response` object with appropriate headers. Returns: Response: A SATOSA Response object with: - application/json content type - payload """ data = DeferredCredentialEndpointResponse(credentials = credentials) return Response( message=data.model_dump_json(), content=APPLICATION_JSON, )