class ChatRoomSchema(ModelSchema):
    admin = fields.Function(
        lambda obj: SessionSchema(many=False).dump(obj.admin).data)
    members = fields.Function(
        lambda obj: SessionSchema(many=True).dump(obj.members).data)
    pending_members = fields.Function(
        lambda obj: SessionSchema(many=True).dump(obj.pending_members).data)

    class Meta:
        model = ChatRoomDocument
        exclude = ['expiration']
class Client(ModelSchema):
    full_name = fields.Function(
        lambda obj: (obj.first_name and obj.first_name + ' ' or '') +
        (obj.middle_name and obj.middle_name + ' ' or '') +
        (obj.last_name and obj.last_name or ''))
    total_balance = fields.Function(lambda obj: float(
        (obj.balance.bonus or 0) + (obj.balance.referral or 0) +
        (obj.balance.referral or 0)))

    class Meta:
        model = ClientDocument
        exclude = ['password']
class Admin(ModelSchema):
    full_name = fields.Function(
        lambda obj: (obj.first_name and obj.first_name + ' ' or '') +
        (obj.last_name and obj.last_name or ''))

    class Meta:
        model = AdminDocument
        exclude = ['password']
Ejemplo n.º 4
0
class Session(ModelSchema):
    user = fields.Function(lambda obj: (obj.client and ClientSchema(
        many=False).dump(obj.client).data) or (obj.admin and AdminSchema(
            many=False).dump(obj.admin).data) or None)

    class Meta:
        model = SessionDocument
        exclude = ['admin', 'client', 'password']
        class ChildCustomStudentSchema(CustomStudentSchema):
            age = fields.Function(lambda v: 'child-custom-' + str(v.age))

            class Meta:
                fields = ('full_name', 'age', 'custom_field')
                model_fields_kwargs = {'full_name': {'load_only': True}}
        class CustomStudentSchema(schemas.StudentSchema):
            age = fields.Function(lambda v: 'custom-' + str(v.age))
            custom_field = fields.Function(lambda v: 'custom-field')

            class Meta:
                fields = ('full_name', 'age')
        class StudentSchema(ModelSchema):
            uppername = fields.Function(lambda x: x.full_name.upper())

            class Meta:
                model = models.Student
                additional = ('date_created', )
class MessageSchema(ModelSchema):
    session = fields.Function(
        lambda obj: SessionSchema(many=False).dump(obj.session).data)

    class Meta:
        model = MessageDocument
Ejemplo n.º 9
0
class Session(ModelSchema):
    user = fields.Function(
        lambda obj: UserSchema().dump(obj.user).data) or None

    class Meta:
        model = SessionDocument