Source code for zemfrog.models

from marshmallow import Schema, ValidationError, fields, validates

from .validators import validate_password_length, validate_username


[docs]class DefaultResponseSchema(Schema):
[docs] message = fields.String()
[docs] code = fields.Integer()
[docs]class LoginSuccessSchema(Schema):
[docs] access_token = fields.String()
[docs]class LoginSchema(Schema):
[docs] username = fields.Email(required=True)
[docs] password = fields.String(required=True)
[docs] grant_type = fields.String(default="password")
[docs]class RegisterSchema(Schema):
[docs] first_name = fields.String(required=True)
[docs] last_name = fields.String(required=True)
[docs] username = fields.Email(required=True)
[docs] password = fields.String(required=True)
@validates("first_name")
[docs] def validate_first_name(self, value): if not validate_username(value, silently=True): raise ValidationError("First name must be a character [a-zA-Z]")
@validates("last_name")
[docs] def validate_last_name(self, value): if not validate_username(value, silently=True): raise ValidationError("Last name must be a character [a-zA-Z]")
@validates("password")
[docs] def validate_password(self, value): if not validate_password_length(value, silently=True): raise ValidationError("Password length must be greater than or equal to 8")
[docs]class RequestPasswordResetSchema(Schema):
[docs] username = fields.Email(required=True)
[docs]class PasswordResetSchema(Schema):
[docs] password = fields.String(required=True)
@validates("password")
[docs] def validate_password(self, value): if not validate_password_length(value, silently=True): raise ValidationError("Password length must be greater than or equal to 8")