class TaxiApprovalSchema(ma.Schema): name = ma.String(attribute='approval_name') original = ma.String(attribute='approval_original_name') class Meta: include_fk = True model = TaxiApprovalsModel fields = ('id', 'name', 'original')
class UserSchema(ma.Schema): id = ma.Integer() username = ma.String(required=True) email = ma.Email(required=True) password = ma.String(required=True) profile_pic = ma.String() bio = ma.String() location = ma.String() website = ma.Url() is_active = ma.Boolean() is_admin = ma.Boolean() joined_date = ma.DateTime()
class TaxiRequestSchema(ma.Schema): description = ma.String(attribute='comment') creator = ma.String(attribute='taxi_creator.full_name') approval_data = ma.Nested('TaxiApprovalSchema') class Meta: include_fk = True model = TaxiRequestModel fields = ('id', 'creator', 'datenow', 'taxi_company', 'ticket_n', 'dateoftrip', 'timeoftrip', 'reason', 'destination', 'expance', 'description', 'status', 'email', 'admin_comment', 'approval_data')
class UserSchema(ma.Schema): public_id = ma.UUID() first_name = ma.String(required=True) last_name = ma.String(required=True) email = ma.Email(required=True) password = ma.String(required=True) profile_pic = ma.String() active = ma.Boolean() todos = ma.Nested(TodoSchema, many=True) @validates('password') def validate_password(self, password): if len(password) < 5: raise ValidationError('Password min character is 5.')
class ShorturlSchema(BaseSchema): url = ma.URL(load_only=True, required=True) shortcode = ma.String(missing=None) class Meta: model = Shorturl fields = ('url', 'shortcode')
class FeatureRequestListArgsSchema(ma.Schema): limit = ma.Integer(required=False, validate=[validate.Range(1, 100)], missing=20) offset = ma.Integer(required=False, validate=[validate.Range(0)], missing=0) include_archived = ma.Boolean(required=False, missing=False) area = ma.Function(deserialize=load_from_id(Area), required=False) client = ma.Function(deserialize=load_from_id(Client), required=True, validate=[validate.NoneOf([None])]) search = ma.String(required=False) sort = ma.String( required=False, validate=[validate.OneOf(['priority', 'id', 'target_date'])], missing='priority')
class PostGetQueryParameterValidateSchema(ma.Schema): page = ma.Integer(required=False, validate=Range(min=1)) per_page = ma.Integer(required=False, validate=Range(min=1), data_key="per-page") username = ma.Str(required=False, validate=Length(min=2, max=20)) gallery_id = ma.String(required=False, validate=Length(min=1, max=30), data_key="gallery-id")
class PostValidateSchema(ma.Schema): id = ma.Integer() user_id = ma.Integer(required=True) body = ma.String(required=True) @validates('body') def validate_body(self, body): if len(body) <= 0: raise ValidationError("This field can't be empty.") elif len(body) > 255: raise ValidationError('max character of 255 characters exceeded.')
class ProductDeserializeSchema(ProductSchema): class Meta: model = models.Product fields = ('name', 'description', 'price', 'category', 'status', 'tags') category = ma.Function(deserialize=lambda v: models.Category.query.get( v), required=True, validate=[validate.NoneOf([None])]) status = ma.Function(deserialize=models.ProductStatusEnum.find, required=True, validate=[validate.NoneOf([None])]) tags = ma.List(ma.String(), required=True)
class TodoSchema(ma.Schema): id = ma.Integer() title = ma.String(required=True) done = ma.Boolean() created_by = ma.UUID() @validates('title') def validate_title(self, title): if len(title) <= 0: raise ValidationError("This field can't be empty.") elif len(title) > 120: raise ValidationError('max character of 120 characters exceeded.')
class NotificationSchema(ma.Schema): id = ma.Integer() body = ma.String(required=True) created_by = ma.Integer(required=True) target_user = ma.Integer(required=True) notification_date = ma.DateTime() @validates('body') def validate_body(self, body): if len(body) <= 0: raise ValidationError("This field can't be empty.") elif len(body) > 255: raise ValidationError('max character of 255 characters exceeded.')
class EntitySchema(ma.ModelSchema): class Meta: model = Entity surname = ma.String(required=True) name = ma.String(required=True) phone = ma.String() citizenship = ma.String() marital_status = EnumField(MaritalStatus) country = EnumField(Country) cellphone = ma.String() birth_date = ma.Date(required=True) address = ma.String() city = ma.String() analysis = ma.Nested(AnalysisSchema, many=True) id_number = ma.String(required=True)
class PostSchema(ma.Schema): id = ma.Integer() body = ma.String(required=True) created_by = ma.Integer() no_likes = ma.Integer() no_comments = ma.Integer() posted_date = ma.DateTime() liked = ma.Boolean() @validates('body') def validate_body(self, body): if len(body) <= 0: raise ValidationError("This field can't be empty.") elif len(body) > 255: raise ValidationError('max character of 255 characters exceeded.')
class ProjectSchema(ma.SQLAlchemySchema): """User Marshmallow Schema""" class Meta: model = Project created_at = ma.auto_field() updated_at = ma.auto_field() title = ma.auto_field() description = ma.auto_field() start_date = ma.auto_field() due_date = ma.auto_field() rate_cents = ma.auto_field() rate_units = ma.auto_field() completed_date = ma.auto_field() invoice_frequency = ma.String(validate=validate.OneOf("weekly" "biweekly" "monthly" "one-time" "adhoc")) user_id = ma.auto_field(dump_only=True)
class UserSchema(ma.SQLAlchemySchema): """User Marshmallow Schema""" class Meta: model = User exclude = "password_hash" public_id = ma.auto_field(dump_only=True) firstname = ma.auto_field() lastname = ma.auto_field() company = ma.auto_field() email = ma.Email(required=True) phone = ma.auto_field() personal_url_1 = ma.URL() personal_url_2 = ma.URL() personal_url_3 = ma.URL() password = ma.String( required=True, validate=validate_password_constraints, load_only=True ) projects = ma.auto_field()
class UserSchema(ma.SQLAlchemySchema): class Meta: model = User unknown = EXCLUDE id = ma.auto_field() username = ma.String( required=True, validate=[validate.Length(min=1, max=80), validate_unique_username]) email = ma.Email( required=True, validate=[validate.Length(min=1, max=120), validate_unique_email]) password = ma.auto_field(column_name='password_hash', load_only=True, required=True, validate=[validate.Length(min=8, max=128)]) created_at = ma.auto_field(dump_only=True) updated_at = ma.auto_field(dump_only=True) @post_load def create_user(self, data, **kwargs): user = User(**data) user.set_password(data['password_hash']) return user
class LoginSchema(ma.Schema): email = ma.Email(required=True) password = ma.String(required=True)
class NameCountSchema(ma.SQLAlchemyAutoSchema): username = ma.String() count = ma.Integer()
class UserPutInputSchema(ma.Schema): username = ma.Str(required=True, validate=validate.Length(min=2, max=20)) user_explain = ma.Str(required=True, validate=validate.Length(max=400)) profile_image = ma.String(required=False, allow_null=True, validate=validate.Length(max=100))
class UnitsDeliveredByProductByCountrySchema(ma.Schema): product_name = ma.String() product_id = ma.Integer() country_name = ma.String() country_id = ma.Integer() units = ma.Integer()
class LoginSchema(ma.Schema): email = ma.String() password = ma.String() remember_me = ma.Boolean()
class PostPatchInputValidateSchema(ma.Schema): content = ma.Str(required=False, validate=Length(min=1)) title = ma.Str(required=False, validate=Length(min=1, max=30)) images = ma.List(ma.String(validate=Length(max=100)), required=False)
class RegisterSchema(ma.Schema): email = ma.Email() first_name = ma.String() last_name = ma.String() password = ma.String()
class PostResourceQueryParameterValidateSchema(ma.Schema): gallery_id = ma.String(data_key="gallery-id", required=True, validate=Length(min=1, max=30))
class PostPostInputValidateSchema(ma.Schema): content = ma.Str(required=True, validate=Length(min=1)) title = ma.Str(required=True, validate=Length(min=1, max=30)) images = ma.List(ma.String(validate=Length(max=100), required=True)) is_anonymous = ma.Boolean(required=True)
class Meta: # model = ProductModel name = ma.String(required=True, validate=Length(min=2)) brand = ma.String(required=True, validate=Length(min=2))
class CommentSchema(ma.Schema): id = ma.Integer() body = ma.String(required=True) post_id = ma.Integer() commented_by = ma.Integer(required=True) comment_date = ma.DateTime()
class UserPasswordChangeSchema(ma.Schema): email = ma.Email(required=True) password = ma.String(required=True)
class UserBioSchema(ma.Schema): bio = ma.String() location = ma.String() website = ma.String()