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

from typing import List, Optional

from pydantic import BaseModel
from satosa.response import Created

from pyeudiw.satosa.frontends.openid4vci.models.auhtorization_detail import AuthorizationDetail
from pyeudiw.tools.content_type import APPLICATION_JSON


[docs] class TokenResponse(BaseModel): """ Pydantic model representing the response returned from the token endpoint. """ access_token: str refresh_token: str token_type: str expires_in: int authorization_details: Optional[List[AuthorizationDetail]] = None
[docs] @staticmethod def to_created_response(access_token: str, refresh_token: str, expires_in: int, authorization_details: List[AuthorizationDetail]) -> Created: """ Converts the token response to a `Created` HTTP response object. Returns: Created: An HTTP 201 Created response containing the JSON-serialized token response. """ data = TokenResponse( access_token=access_token, refresh_token=refresh_token, token_type="DPOP", # nosec B106 expires_in=expires_in, authorization_details= None if not authorization_details and len(authorization_details) == 0 else authorization_details ) return Created( message=data.model_dump_json(), content=APPLICATION_JSON, )