Source code for ace.models.graphql_message

from dataclasses import dataclass, field, asdict
from typing import Dict, Any
from ace.core.constants import MessageRequest, APIMessage


[docs] @dataclass class GraphQLRequestData: query: str = "" variables: Dict[str, Any] = field(default_factory=dict)
[docs] def to_dict(self) -> Dict[str, Any]: return asdict(self)
[docs] @dataclass class GraphQLMessageBody: url: str auth_service: str = APIMessage.AuthService.CENTRALIZE method: str = "POST" params: str = "" headers: Dict[str, str] = field(default_factory=lambda: {"Content-Type": APIMessage.ContentType.Application.JSON}) data: GraphQLRequestData = field(default_factory=GraphQLRequestData) # A.K.A. BODY
[docs] def to_dict(self) -> Dict[str, Any]: return { **asdict(self), "data": self.data.to_dict() # Convert the nested data object }
[docs] @dataclass class GraphQLMessage: message_type: str = MessageRequest.Type.GRAPHQL message_body: GraphQLMessageBody = field(default_factory=GraphQLMessageBody)
[docs] def to_dict(self) -> Dict[str, Any]: return asdict(self)