Esempio n. 1
0
class InitPostSchema(BaseSchema):

    username = fields.String(validate=validate.Length(min=1, max=256), required=True)
    password = fields.String(validate=validate.Length(min=1), required=True)
    key = fields.String(validate=validate.Length(equal=20), required=True)
    purpose = fields.String(
        missing='internal',
        validate=validate.OneOf(['user', 'internal', 'external_api'])
    )
Esempio n. 2
0
class _BaseUserSchema(BaseSchema):

    username = fields.String(validate=validate.Length(min=1, max=256),
                             required=True)
    firstname = fields.String(missing=None, allow_none=True)
    lastname = fields.String(missing=None, allow_none=True)
    purpose = fields.String(missing='user',
                            validate=validate.OneOf(
                                ['user', 'internal', 'external_api']))
    enabled = fields.Boolean(missing=True)
Esempio n. 3
0
class MessageListRequestSchema(_ListSchema):
    default_sort_column = 'created_at'
    sort_columns = ['created_at']
    searchable_columns = []
    default_direction = 'desc'

    search = fields.String()
    distinct = fields.String(validate=validate.OneOf(['room_uuid']))

    @validates_schema
    def search_or_distinct(self, data, **kwargs):
        if not data.get('search') and not data.get('distinct'):
            raise ValidationError('Missing search or distinct')
Esempio n. 4
0
    class ListSchema(BaseSchema):

        direction = fields.String(validate=validate.OneOf(['asc', 'desc']),
                                  missing='asc')
        order = fields.String(validate=validate.Length(min=1),
                              missing=default_sort_column)
        limit = fields.Integer(validate=validate.Range(min=0), missing=None)
        offset = fields.Integer(validate=validate.Range(min=0), missing=0)
        search = fields.String(missing=None)
        recurse = fields.Boolean(missing=False)

        @post_load(pass_original=True)
        def add_arbitrary_fields(self, data, original_data):
            for key, value in original_data.items():
                data.setdefault(key, value)
            return data
Esempio n. 5
0
class SetupSchema(Schema):

    engine_language = fields.String(required=True,
                                    validate=validate.OneOf(['en_US',
                                                             'fr_FR']))
    engine_password = fields.String(required=True)
    engine_license = fields.Boolean(required=True,
                                    validate=validate.Equal(True))
    engine_internal_address = fields.String()
    engine_instance_uuid = fields.UUID(missing=None)
    engine_rtp_icesupport = fields.Boolean(required=False, missing=False)
    engine_rtp_stunaddr = fields.String(validate=validate.Length(min=1,
                                                                 max=1024),
                                        missing=None)
    nestbox_host = fields.String()
    nestbox_port = fields.Integer(
        validate=validate.Range(min=0,
                                max=65535,
                                error='Not a valid TCP/IP port number.'),
        missing=443,
    )
    nestbox_verify_certificate = fields.Boolean(missing=True)
    nestbox_service_id = fields.String()
    nestbox_service_key = fields.String()
    nestbox_instance_name = fields.String()
    nestbox_engine_host = fields.String()
    nestbox_engine_port = fields.Integer(
        validate=validate.Range(min=0,
                                max=65535,
                                error='Not a valid TCP/IP port number.'),
        missing=443,
    )

    @validates_schema
    def nestbox_all_or_nothing(self, data):
        if not data.get('nestbox_host'):
            return

        if 'nestbox_service_id' not in data:
            raise ValidationError(
                'Missing keys for Nestbox configuration: nestbox_service_id')
        if 'nestbox_service_key' not in data:
            raise ValidationError(
                'Missing keys for Nestbox configuration: nestbox_service_key')
        if 'nestbox_instance_name' not in data:
            raise ValidationError(
                'Missing keys for Nestbox configuration: nestbox_instance_name'
            )
        if 'nestbox_engine_host' not in data:
            raise ValidationError(
                'Missing keys for Nestbox configuration: nestbox_engine_host')
        if 'engine_internal_address' not in data:
            raise ValidationError(
                'Missing keys for Nestbox configuration: engine_internal_address'
            )

    @validates_schema
    def check_rtp_fields(self, data):
        if not data.get('engine_rtp_icesupport'):
            return

        required_field = 'engine_rtp_stunaddr'
        if not data.get(required_field):
            raise ValidationError(
                'Missing keys for rtp configuration: {}'.format(
                    required_field),
                field_name=required_field,
            )