109898688: Refactor the validate codes logic to be more susinct and easier to read.

This commit is contained in:
Rebecca Law
2015-12-17 15:09:12 +00:00
parent 010be66d31
commit fe8a1a10c5

View File

@@ -95,21 +95,18 @@ class AddServiceForm(Form):
def validate_codes(field, code_type):
codes = verify_codes_dao.get_codes(user_id=session['user_id'], code_type=code_type)
for code in codes:
if validate_code(field, code):
if code.expiry_datetime <= datetime.now():
field.errors.append('Code has expired')
return False
return True
field.errors.append('Code does not match')
return False
is_valid = len([code for code in codes if validate_code(field, code)]) == 1
if is_valid:
field.errors.clear()
return is_valid
def validate_code(field, code):
if field.data is not None:
if check_hash(field.data, code.code) is False:
if field.data and check_hash(field.data, code.code):
if code.expiry_datetime <= datetime.now():
field.errors.append('Code has expired')
return False
else:
return True
return True
else:
field.errors.append('Code does not match')
return False