from apollo_utils.service.schemas.base import RequestSchema from marshmallow import Schema, fields from server.schemas.events.base import BaseEventBulkCreateRequest, BaseEventListRequest, BaseEventMixin, \ ExistingEventMixin from server.schemas.messages.base import BaseMessageBulkCreateResponse from server.schemas.messages.mixins import ListToDataDumpMixin, MessageIncludeMixin, PublicMixin class Events: """Schemas class for events api.""" class Get: class Request(MessageIncludeMixin, RequestSchema): id = fields.Int(required=True) class Response(ExistingEventMixin, Schema): pass class List: class Request(BaseEventListRequest): pass class Response(ListToDataDumpMixin, Schema): class Item(ExistingEventMixin, Schema): pass data = fields.List(fields.Nested(Item)) class Create: class Request(PublicMixin, BaseEventMixin, RequestSchema): pass class Response(Schema): id = fields.Int() app = fields.String(attribute="app_slug") class CreateBulk: class Request(BaseEventBulkCreateRequest): pass class Response(BaseMessageBulkCreateResponse): pass