57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
from marshmallow import Schema, fields, validate, EXCLUDE
|
|
|
|
|
|
class LoginSchema(Schema):
|
|
"""Validation schema for user login"""
|
|
class Meta:
|
|
unknown = EXCLUDE
|
|
|
|
username = fields.Str(
|
|
required=True,
|
|
validate=validate.Length(min=3, max=100),
|
|
error_messages={"required": "Username is required"}
|
|
)
|
|
password = fields.Str(
|
|
required=True,
|
|
validate=validate.Length(min=6, max=200),
|
|
error_messages={"required": "Password is required"}
|
|
)
|
|
|
|
|
|
class RegisterSchema(Schema):
|
|
"""Validation schema for user registration"""
|
|
class Meta:
|
|
unknown = EXCLUDE
|
|
|
|
username = fields.Str(
|
|
required=True,
|
|
validate=validate.Length(min=3, max=100),
|
|
error_messages={"required": "Username is required"}
|
|
)
|
|
password = fields.Str(
|
|
required=True,
|
|
validate=validate.Length(min=6, max=200),
|
|
error_messages={"required": "Password is required"}
|
|
)
|
|
email = fields.Email(
|
|
required=True,
|
|
error_messages={"required": "Email is required"}
|
|
)
|
|
|
|
|
|
class ChangePasswordSchema(Schema):
|
|
"""Validation schema for password change"""
|
|
class Meta:
|
|
unknown = EXCLUDE
|
|
|
|
new_password = fields.Str(
|
|
required=True,
|
|
validate=validate.Length(min=6, max=200),
|
|
error_messages={"required": "New password is required"}
|
|
)
|
|
password_confirm = fields.Str(
|
|
required=True,
|
|
validate=validate.Length(min=6, max=200),
|
|
error_messages={"required": "Password confirmation is required"}
|
|
)
|