531 lines
12 KiB
Python
531 lines
12 KiB
Python
|
from marshmallow import EXCLUDE, fields
|
||
|
from marshmallow.schema import Schema
|
||
|
|
||
|
|
||
|
class TrelloLabelSchema(Schema):
|
||
|
"""
|
||
|
Trello label schema.
|
||
|
"""
|
||
|
|
||
|
id = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The label's unique identifier.",
|
||
|
"example": "5d62808da5d6a95a3a3e4f2f",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
name = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The label's name.",
|
||
|
"example": "My Label",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
color = fields.String(
|
||
|
metadata={
|
||
|
"description": "The label's color.",
|
||
|
"example": "green",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
|
||
|
class TrelloUserSchema(Schema):
|
||
|
"""
|
||
|
Trello user schema.
|
||
|
"""
|
||
|
|
||
|
id = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The user's unique identifier.",
|
||
|
"example": "5d62808da5d6a95a3a3e4f2f",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
username = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The user's username.",
|
||
|
"example": "myusername",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
fullname = fields.String(
|
||
|
metadata={
|
||
|
"description": "The user's full name.",
|
||
|
"example": "My Full Name",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
initials = fields.String(
|
||
|
metadata={
|
||
|
"description": "The user's initials.",
|
||
|
"example": "MFN",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
avatar_url = fields.Url(
|
||
|
metadata={
|
||
|
"description": "The user's avatar URL.",
|
||
|
"example": "https://trello-avatars.s3.amazonaws.com/5d62808da5d6a95a3a3e4f2f/50.png",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
|
||
|
class TrelloMemberSchema(Schema):
|
||
|
"""
|
||
|
Trello member schema.
|
||
|
"""
|
||
|
|
||
|
id = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The user's unique identifier.",
|
||
|
"example": "5d62808da5d6a95a3a3e4f2f",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
username = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The user's username.",
|
||
|
"example": "myusername",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
fullname = fields.String(
|
||
|
metadata={
|
||
|
"description": "The user's full name.",
|
||
|
"example": "My Full Name",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
initials = fields.String(
|
||
|
metadata={
|
||
|
"description": "The user's initials.",
|
||
|
"example": "MFN",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
bio = fields.String(
|
||
|
metadata={
|
||
|
"description": "The user's bio.",
|
||
|
"example": "My bio.",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
member_type = fields.String(
|
||
|
metadata={
|
||
|
"description": "The user's type.",
|
||
|
"example": "admin",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
|
||
|
class TrelloCommentSchema(Schema):
|
||
|
"""
|
||
|
Trello comment schema.
|
||
|
"""
|
||
|
|
||
|
id = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The comment's unique identifier.",
|
||
|
"example": "5d62808da5d6a95a3a3e4f2f",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
text = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The comment's text.",
|
||
|
"example": "My comment's text.",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
type = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The comment's type.",
|
||
|
"example": "commentCard",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
creator = fields.Nested(TrelloUserSchema)
|
||
|
date = fields.DateTime(
|
||
|
metadata={
|
||
|
"description": "The comment's date.",
|
||
|
"example": "2019-08-25T15:32:13.000Z",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
|
||
|
class TrelloListSchema(Schema):
|
||
|
"""
|
||
|
Trello list schema.
|
||
|
"""
|
||
|
|
||
|
class Meta: # pylint: disable=too-few-public-methods
|
||
|
"""
|
||
|
Meta class.
|
||
|
"""
|
||
|
|
||
|
unknown = EXCLUDE
|
||
|
|
||
|
id = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The list's unique identifier.",
|
||
|
"example": "5d62808da5d6a95a3a3e4f2f",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
name = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The list's name.",
|
||
|
"example": "My List",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
closed = fields.Boolean(
|
||
|
missing=False,
|
||
|
metadata={
|
||
|
"description": "Whether the list is closed.",
|
||
|
"example": False,
|
||
|
},
|
||
|
)
|
||
|
|
||
|
subscribed = fields.Boolean(
|
||
|
missing=False,
|
||
|
metadata={
|
||
|
"description": "Whether the list is subscribed.",
|
||
|
"example": False,
|
||
|
},
|
||
|
)
|
||
|
|
||
|
|
||
|
class TrelloBoardSchema(Schema):
|
||
|
"""
|
||
|
Trello board schema.
|
||
|
"""
|
||
|
|
||
|
class Meta: # pylint: disable=too-few-public-methods
|
||
|
"""
|
||
|
Meta class.
|
||
|
"""
|
||
|
|
||
|
unknown = EXCLUDE
|
||
|
|
||
|
id = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The board's unique identifier.",
|
||
|
"example": "5d62808da5d6a95a3a3e4f2f",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
name = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The board's name.",
|
||
|
"example": "My Board",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
url = fields.Url(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The board's URL.",
|
||
|
"example": "https://trello.com/b/5d62808da5d6a95a3a3e4f2f/my-board",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
closed = fields.Boolean(
|
||
|
missing=False,
|
||
|
metadata={
|
||
|
"description": "Whether the board is closed.",
|
||
|
"example": False,
|
||
|
},
|
||
|
)
|
||
|
|
||
|
lists = fields.Nested(
|
||
|
TrelloListSchema,
|
||
|
many=True,
|
||
|
metadata={
|
||
|
"description": "The board's lists.",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
date_last_activity = fields.DateTime(
|
||
|
metadata={
|
||
|
"description": "The board's last activity date.",
|
||
|
"example": "2019-08-25T15:52:45.000Z",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
|
||
|
class TrelloPreviewSchema(Schema):
|
||
|
"""
|
||
|
Trello attachment preview schema.
|
||
|
"""
|
||
|
|
||
|
id = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The preview's unique identifier.",
|
||
|
"example": "5d62808da5d6a95a3a3e4f2f",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
url = fields.Url(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The preview's URL.",
|
||
|
"example": "https://trello.com/c/5d62808da5d6a95a3a3e4f2f/my-attachment-txt.jpg",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
scaled = fields.Boolean(
|
||
|
metadata={
|
||
|
"description": "Whether the preview is scaled.",
|
||
|
"example": True,
|
||
|
},
|
||
|
)
|
||
|
|
||
|
size = fields.Integer(
|
||
|
metadata={
|
||
|
"description": "The preview's size, in bytes.",
|
||
|
"example": 10000,
|
||
|
},
|
||
|
)
|
||
|
|
||
|
width = fields.Integer(
|
||
|
metadata={
|
||
|
"description": "The preview's width, in pixels.",
|
||
|
"example": 100,
|
||
|
},
|
||
|
)
|
||
|
|
||
|
height = fields.Integer(
|
||
|
metadata={
|
||
|
"description": "The preview's height, in pixels.",
|
||
|
"example": 100,
|
||
|
},
|
||
|
)
|
||
|
|
||
|
|
||
|
class TrelloChecklistItemSchema(Schema):
|
||
|
"""
|
||
|
Trello checklist item schema.
|
||
|
"""
|
||
|
|
||
|
id = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The checklist item's unique identifier.",
|
||
|
"example": "5d62808da5d6a95a3a3e4f2f",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
name = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The checklist item's name.",
|
||
|
"example": "My Checklist Item",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
checked = fields.Boolean(
|
||
|
metadata={
|
||
|
"description": "Whether the checklist item is checked.",
|
||
|
"example": True,
|
||
|
},
|
||
|
)
|
||
|
|
||
|
|
||
|
class TrelloChecklistSchema(Schema):
|
||
|
"""
|
||
|
Trello checklist schema.
|
||
|
"""
|
||
|
|
||
|
id = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The checklist's unique identifier.",
|
||
|
"example": "5d62808da5d6a95a3a3e4f2f",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
name = fields.String(
|
||
|
metadata={
|
||
|
"description": "The checklist's name.",
|
||
|
"example": "My Checklist",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
items = fields.Nested(TrelloChecklistItemSchema, many=True)
|
||
|
|
||
|
|
||
|
class TrelloAttachmentSchema(Schema):
|
||
|
"""
|
||
|
Trello attachment schema.
|
||
|
"""
|
||
|
|
||
|
id = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The attachment's unique identifier.",
|
||
|
"example": "5d62808da5d6a95a3a3e4f2f",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
name = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The attachment's name.",
|
||
|
"example": "My Attachment.txt",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
url = fields.Url(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The attachment's URL.",
|
||
|
"example": "https://trello.com/c/5d62808da5d6a95a3a3e4f2f/my-attachment.txt",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
size = fields.Integer(
|
||
|
metadata={
|
||
|
"description": "The attachment's size, in bytes.",
|
||
|
"example": 1024,
|
||
|
},
|
||
|
)
|
||
|
|
||
|
date = fields.DateTime(
|
||
|
metadata={
|
||
|
"description": "The attachment's date.",
|
||
|
"example": "2019-08-25T15:32:13.000Z",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
edge_color = fields.String(
|
||
|
metadata={
|
||
|
"description": "The attachment's edge color.",
|
||
|
"example": "#000000",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
member_id = fields.String(
|
||
|
metadata={
|
||
|
"description": "The ID of the member who created the attachment.",
|
||
|
"example": "5d62808da5d6a95a3a3e4f2f",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
is_upload = fields.Boolean(
|
||
|
metadata={
|
||
|
"description": "Whether the attachment is an upload.",
|
||
|
"example": True,
|
||
|
},
|
||
|
)
|
||
|
|
||
|
mime_type = fields.String(
|
||
|
metadata={
|
||
|
"description": "The attachment's MIME type.",
|
||
|
"example": "text/plain",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
previews = fields.Nested(TrelloPreviewSchema, many=True)
|
||
|
|
||
|
|
||
|
class TrelloCardSchema(Schema):
|
||
|
"""
|
||
|
Trello card schema.
|
||
|
"""
|
||
|
|
||
|
class Meta: # pylint: disable=too-few-public-methods
|
||
|
"""
|
||
|
Meta class.
|
||
|
"""
|
||
|
|
||
|
unknown = EXCLUDE
|
||
|
|
||
|
id = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The card's unique identifier.",
|
||
|
"example": "5d62808da5d6a95a3a3e4f2f",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
name = fields.String(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The card's name.",
|
||
|
"example": "My Card",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
description = fields.String(
|
||
|
metadata={
|
||
|
"description": "The card's description.",
|
||
|
"example": "My card's description.",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
url = fields.Url(
|
||
|
required=True,
|
||
|
metadata={
|
||
|
"description": "The card's URL.",
|
||
|
"example": "https://trello.com/c/5d62808da5d6a95a3a3e4f2f/my-card",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
due_date = fields.DateTime(
|
||
|
metadata={
|
||
|
"description": "The card's due date.",
|
||
|
"example": "2019-08-25T15:52:45.000Z",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
latest_card_move_date = fields.DateTime(
|
||
|
metadata={
|
||
|
"description": "The card's latest move date.",
|
||
|
"example": "2019-08-25T15:52:45.000Z",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
date_last_activity = fields.DateTime(
|
||
|
metadata={
|
||
|
"description": "The card's last activity date.",
|
||
|
"example": "2019-08-25T15:52:45.000Z",
|
||
|
},
|
||
|
)
|
||
|
|
||
|
closed = fields.Boolean(
|
||
|
missing=False,
|
||
|
metadata={
|
||
|
"description": "Whether the card is closed.",
|
||
|
"example": False,
|
||
|
},
|
||
|
)
|
||
|
|
||
|
is_due_complete = fields.Boolean(
|
||
|
metadata={
|
||
|
"description": "Whether the card is due complete.",
|
||
|
"example": False,
|
||
|
},
|
||
|
)
|
||
|
|
||
|
board = fields.Nested(TrelloBoardSchema)
|
||
|
list = fields.Nested(TrelloListSchema)
|
||
|
comments = fields.Nested(TrelloCommentSchema, many=True)
|
||
|
labels = fields.Nested(TrelloLabelSchema, many=True)
|
||
|
attachments = fields.Nested(TrelloAttachmentSchema, many=True)
|
||
|
checklists = fields.Nested(TrelloChecklistSchema, many=True)
|