2021-05-05 20:21:04 +00:00
|
|
|
from marshmallow import Schema, fields
|
|
|
|
|
|
|
|
|
|
|
|
class UserSchema(Schema):
|
|
|
|
email = fields.String(description="The user's email.")
|
|
|
|
username = fields.String(description="The user's username.")
|
|
|
|
isAdmin = fields.Boolean(description="True if the user is an administrator.")
|
|
|
|
|
|
|
|
|
|
|
|
class LoginSchema(Schema):
|
|
|
|
access_token = fields.String(description="The access token that authorizes the user to proceed.")
|
|
|
|
expiration = fields.DateTime(description="The expiration date of the authorization code.")
|
|
|
|
user = fields.Nested(UserSchema)
|
|
|
|
|
|
|
|
|
|
|
|
class InputLoginSchema(Schema):
|
|
|
|
email = fields.String(description="The user's email.")
|
|
|
|
password = fields.String(description="The user's password.")
|
|
|
|
|
|
|
|
|
|
|
|
class ErrorSchema(Schema):
|
|
|
|
result = fields.String(description="Contains a string that informs if the procedure was successful.")
|
|
|
|
msg = fields.String(description="Contains a description of the error.")
|
2021-05-17 14:19:32 +00:00
|
|
|
code = fields.String(description="Error code")
|
2021-05-05 20:21:04 +00:00
|
|
|
|
|
|
|
|
2021-05-20 11:48:15 +00:00
|
|
|
class AuthorizationSchema(Schema):
|
|
|
|
rid = fields.Integer(description="The repository id.")
|
|
|
|
email = fields.String(description="The user's email.")
|
|
|
|
|
|
|
|
|
|
|
|
class AuthorizationParameterSchema(Schema):
|
|
|
|
rid = fields.Integer(description="The repository id.")
|
|
|
|
email = fields.String(description="The user's email.")
|
|
|
|
|
|
|
|
|
|
|
|
class CreateAuthorizationSchema(Schema):
|
|
|
|
email = fields.String(description="The user's email")
|
|
|
|
|
|
|
|
|
2021-05-05 20:21:04 +00:00
|
|
|
class SuccesSchema(Schema):
|
|
|
|
result = fields.String(description="Contains a string that informs if the procedure was successful.")
|
|
|
|
data = fields.String(description="The content of the response.")
|
|
|
|
|
|
|
|
|
|
|
|
class EmailParameterSchema(Schema):
|
|
|
|
email = fields.String(description="The target user's email.")
|
|
|
|
|
|
|
|
|
2021-05-05 20:45:36 +00:00
|
|
|
class IntegerParameterSchema(Schema):
|
2021-05-06 09:25:39 +00:00
|
|
|
rid = fields.Integer(description="The target numeric id.")
|
2021-05-05 20:45:36 +00:00
|
|
|
|
|
|
|
|
2021-05-07 17:31:57 +00:00
|
|
|
class AlertParameterSchema(Schema):
|
|
|
|
rid = fields.Integer(description="The target numeric id.")
|
|
|
|
|
|
|
|
|
2021-05-05 20:21:04 +00:00
|
|
|
class CreateUser(Schema):
|
|
|
|
email = fields.String(description="The new user's email.")
|
|
|
|
username = fields.String(description="The new user's username.")
|
2021-05-05 20:45:36 +00:00
|
|
|
password = fields.String(description="The new user's password.")
|
|
|
|
|
|
|
|
|
2021-05-06 15:20:07 +00:00
|
|
|
class ConditionSchema(Schema):
|
|
|
|
id = fields.Integer(description="The condition id.")
|
|
|
|
type = fields.Integer(description="The condition type.")
|
|
|
|
content = fields.String(description="The condition content. Meaning may change according to type.")
|
|
|
|
|
|
|
|
|
2021-05-05 20:45:36 +00:00
|
|
|
class RepositorySchema(Schema):
|
|
|
|
id = fields.Integer(description="The repository id.")
|
|
|
|
name = fields.String(description="The repository name.")
|
|
|
|
start = fields.DateTime(description="The start date of the repository.")
|
2021-05-06 15:20:07 +00:00
|
|
|
is_active = fields.Boolean(description="True if the repository is active.")
|
2021-05-05 20:45:36 +00:00
|
|
|
end = fields.DateTime(description="The end date of the repository")
|
|
|
|
owner = fields.Nested(UserSchema)
|
2021-05-20 11:56:23 +00:00
|
|
|
spectators = fields.Nested(AuthorizationSchema, many=True)
|
2021-05-06 15:20:07 +00:00
|
|
|
conditions = fields.Nested(ConditionSchema, many=True)
|
|
|
|
evaluation_mode = fields.Integer(description="The mode with which conditions are evaluated.")
|
2021-05-05 20:45:36 +00:00
|
|
|
|
|
|
|
|
2021-05-13 09:40:15 +00:00
|
|
|
class TweetSchema(Schema):
|
|
|
|
snowflake = fields.String(description="The tweet identifier.")
|
|
|
|
content = fields.String(description="The content of the tweet.")
|
|
|
|
location = fields.String(description="The location (coordinates) from which the tweet was tweeted.")
|
|
|
|
place = fields.String(description="The place from which the tweet was tweeted.")
|
|
|
|
poster = fields.String(default="The one that created the tweet.")
|
|
|
|
insert_time = fields.DateTime(default="The time on which the tweet was captured.")
|
|
|
|
conditions = fields.Nested(ConditionSchema, many=True)
|
|
|
|
|
|
|
|
|
2021-05-06 09:25:39 +00:00
|
|
|
class CreateRepository(Schema):
|
|
|
|
name = fields.String(description="The repository name.")
|
|
|
|
|
|
|
|
|
2021-05-05 20:45:36 +00:00
|
|
|
class RepositoryUpdate(Schema):
|
|
|
|
name = fields.String(description="If present, it changes the name of the repository.")
|
|
|
|
close = fields.String(description="If present, it closes the repository.")
|
2021-05-06 00:57:26 +00:00
|
|
|
open = fields.String(description="If present, it opens the repository.")
|
2021-05-06 15:20:07 +00:00
|
|
|
evaluation_mode = fields.Integer(description="If present, it alters the Condition evaluation mode.")
|
2021-05-06 09:25:39 +00:00
|
|
|
|
|
|
|
|
|
|
|
class CreateCondition(Schema):
|
|
|
|
type = fields.Integer(description="The condition type.")
|
2021-05-06 12:12:11 +00:00
|
|
|
content = fields.String(description="The condition content. Meaning may change according to type.")
|
|
|
|
|
|
|
|
|
2021-05-07 17:15:14 +00:00
|
|
|
class CreateAlert(Schema):
|
|
|
|
name = fields.String(description="The name of the alert.")
|
|
|
|
limit = fields.Integer(description="The number of tweets in a time window.")
|
|
|
|
window_size = fields.Integer(description="The size of the time window.")
|
2021-05-17 13:29:08 +00:00
|
|
|
repository_id = fields.Integer(description="The id of the related repository.")
|
|
|
|
evaluation_mode = fields.Integer(description="How the conditions have to be evaluated.")
|
|
|
|
conditions = fields.Nested(ConditionSchema, many=True)
|
2021-05-07 17:15:14 +00:00
|
|
|
|
|
|
|
|
|
|
|
class Operations(Schema):
|
|
|
|
id = fields.Integer(description="The operation id.")
|
|
|
|
operation = fields.Integer(description="The type of the operation.")
|
|
|
|
is_root = fields.Boolean(description="If true, the operation is the root of the operation tree.")
|
|
|
|
node_1 = fields.Nested('self')
|
|
|
|
node_2 = fields.Nested('self')
|
|
|
|
condition = fields.Nested(ConditionSchema)
|
|
|
|
alert_id = fields.Integer(description="The id of the related alert.")
|
|
|
|
|
|
|
|
|
|
|
|
class Notification(Schema):
|
|
|
|
id = fields.Integer(description="The notification id.")
|
|
|
|
ora = fields.DateTime(description="Muda muda muda.")
|
|
|
|
repository_id = fields.Integer(description="The id of the related repository.")
|
|
|
|
|
|
|
|
|
|
|
|
class Alert(Schema):
|
|
|
|
id = fields.Integer(description="The alert id.")
|
|
|
|
name = fields.String(description="The name of the alert.")
|
|
|
|
limit = fields.Integer(description="The number of tweets in a time window.")
|
|
|
|
window_size = fields.Integer(description="The size of the time window.")
|
|
|
|
repository_id = fields.Integer(description="The id of the related repository.")
|
2021-05-17 13:29:08 +00:00
|
|
|
evaluation_mode = fields.Integer(description="How the conditions have to be evaluated.")
|
|
|
|
conditions = fields.Nested(ConditionSchema, many=True)
|
2021-05-07 17:15:14 +00:00
|
|
|
notifications = fields.Nested(Notification, many=True)
|
|
|
|
|
|
|
|
|
2021-05-06 12:12:11 +00:00
|
|
|
class ConditionParameterSchema(Schema):
|
2021-05-06 15:20:07 +00:00
|
|
|
cid = fields.Integer(description="The condition id.")
|