in source/backend/chalicelib/framework.py [0:0]
def create_challenge():
blueprint.log.debug('create_challenge')
client_metadata = blueprint.current_request.json_body
# Validating client metadata input
if 'imageWidth' not in client_metadata or 'imageHeight' not in client_metadata:
raise BadRequestError('Missing imageWidth and imageHeight')
try:
int(client_metadata['imageWidth'])
except ValueError:
raise BadRequestError('Invalid imageWidth')
try:
int(client_metadata['imageHeight'])
except ValueError:
raise BadRequestError('Invalid imageHeight')
blueprint.log.debug('client_metadata: %s', client_metadata)
# Saving challenge on DynamoDB table
challenge = dict()
challenge_id = str(uuid.uuid1())
challenge['id'] = challenge_id
challenge['token'] = _jwt_manager.get_jwt_token(challenge_id)
challenge['type'] = _challenge_type_selector_func[0](client_metadata)
challenge['params'] = _challenge_params_funcs[challenge['type']](client_metadata)
blueprint.log.debug('challenge: %s', challenge)
_table.put_item(Item=challenge)
return challenge