def email_rule(self, field, values): """Valid email""" if self.input.get(field) and not self.valid_email( self.input.get(field) ): msg = error_messages.INVALID_EMAIL_ERROR self.errors.append(errors.Error(msg))
def not_with_rule(self, field, values): """Not with other field""" other_field = values[0] if self.input.get(field) and self.input.get(other_field): msg = error_messages.NOT_WITH_ERROR.format(field, other_field) self.errors.append(errors.Error(msg)) self.stop = True
def required_with_rule(self, field, values): """Required with other field""" other_field = values[0] if self.missing(field) and self.input.get(other_field): msg = error_messages.REQUIRED_WITH_ERROR.format(field, other_field) self.errors.append(errors.Error(msg)) self.stop = True
def exists_rule(self, field, values): """Exists in database""" if self.input.get(field): table, col, *extra = values[0].split(',') model = getattr(entities, table.capitalize()) # Check if extra where is set if extra: whereCol = extra[0] whereVal = extra[1] msg = error_messages.EXISTS_WHERE_ERROR.format( field, whereCol ) exists = self.session.query(model).filter( getattr(model, col) == self.input.get(field) ).filter( getattr(model, whereCol) == whereVal ).first() else: msg = error_messages.EXISTS_ERROR.format(field) exists = self.session.query(model).filter( getattr(model, col) == self.input.get(field) ).first() if not exists: self.errors.append(errors.Error(msg))
def max_rule(self, field, values): """Max length""" if self.input.get(field): length = int(values[0]) msg = error_messages.MAX_ERROR.format(field, length) if len(self.input.get(field)) > length: self.errors.append(errors.Error(msg))
def alpha_num_space_rule(self, field, values): """Only letters, numbers and spaces""" if self.input.get(field): if not re.match('^[a-zA-Z0-9 ]+$', self.input.get(field)): msg = error_messages.ALPHA_NUM_SPACE_ERROR.format( field ) self.errors.append(errors.Error(msg))
def required_without_rule(self, field, values): """Required if other field is not present""" other_field = values[0] if self.missing(field) and self.missing(other_field): msg = error_messages.REQUIRED_WITHOUT_ERROR.format( field, other_field ) self.errors.append(errors.Error(msg)) self.stop = True
def in_rule(self, field, values): """ In: The field under validation must be included in the given list of values """ if self.input.get(field): _values = values[0].split(',') msg = error_messages.IN_ERROR.format(field) if self.input.get(field) not in _values: self.errors.append(errors.Error(msg))
def required_if_rule(self, field, values): """Required if other field equals certain value""" other_field, val = values[0].split(',') if self.missing(field) and str( self.input.get(other_field) ).lower() == str(val).lower(): msg = error_messages.REQUIRED_IF_ERROR.format( field, other_field, val ) self.errors.append(errors.Error(msg)) self.stop = True
def url_rule(self, field, values): """Valid URL""" if self.input.get(field) and not self.valid_url(self.input.get(field)): msg = error_messages.INVALID_URL_ERROR self.errors.append(errors.Error(msg))
def filled_rule(self, field, values): """Not empty when present""" if self.input.get(field) == '': msg = error_messages.FILLED_ERROR.format(field) self.errors.append(errors.Error(msg)) self.stop = True
def required_rule(self, field, values): """Required field""" if self.missing(field): msg = error_messages.REQUIRED_ERROR.format(field) self.errors.append(errors.Error(msg)) self.stop = True
def ip_rule(self, field, values): """Valid IP""" if self.input.get(field) and not self.valid_ip(self.input.get(field)): msg = error_messages.INVALID_IP_ERROR self.errors.append(errors.Error(msg))