Ejemplo n.º 1
0
def get_levels(policy):
    ''' Returns all karma info '''
    try:
        result = LEVEL_PROVIDER.get_levels(policy)
        return serialize_response(200, 'OK', 'Correct', result)
    except PolicyNotExistsException:
        return serialize_response(404, 'NOT FOUND',
                                  f'Policy {policy} could not be found')
Ejemplo n.º 2
0
def get_level(policy, user_points):
    ''' Returns karma info for the points passed'''
    try:
        result = LEVEL_PROVIDER.get_level(policy, user_points)
        return serialize_response(200, 'OK', 'Correct', result)
    except PolicyNotExistsException:
        return serialize_response(404, 'NOT FOUND',
                                  f'Policy {policy} could not be found')
Ejemplo n.º 3
0
def get_observation_info(observation_id):
    ''' Returns the information for the id passed '''
    try:
        observation = VALIDATION_PROVIDER.get_observation_data(observation_id)
    except ObservationNotFoundException:
        return serialize_response(404, 'NOT FOUND',
                                  f'Observation {observation_id} not found')
    return serialize_response(200, 'OK', f'Observation Fetched Correctly',
                              observation.serialize())
Ejemplo n.º 4
0
def post_vote():
    ''' Updates the info for the observation passed '''
    request_data = request.get_json()
    if not request_data:
        return serialize_response(400, 'BAD REQUEST', 'Empty request')
    result = VALIDATION_PROVIDER.post_vote(request_data)
    if not result:
        return serialize_response(400, 'BAD REQUEST', 'Repeated vote for user')
    return serialize_response(200, 'OK', 'Vote added', result.serialize())
Ejemplo n.º 5
0
def delete_policy(policy_id):
    ''' Returns all karma info '''
    try:
        LEVEL_PROVIDER.delete_policy(policy_id)
        return serialize_response(200, 'DELETED',
                                  f'Deleted policy {policy_id}')
    except PolicyNotExistsException:
        return serialize_response(404, 'NOT FOUND',
                                  f'Policy {policy_id} could not be found')
Ejemplo n.º 6
0
def create_policy(policy_id):
    ''' Returns all karma info '''
    formula, max_level, errors = __check_request_data(request.get_json())
    if errors:
        return serialize_response(400, 'BAD REQUEST', errors)
    try:
        LEVEL_PROVIDER.create_policy(policy_id, formula, max_level)
        return serialize_response(201, 'CREATED',
                                  'Policy Created Successfully')
    except InvalidFormulaException as exception:
        return serialize_response(400, 'BAD REQUEST', 'Malformed Formula',
                                  json.loads(str(exception))['errors'])
    except PolicyExistsException:
        return serialize_response(400, 'BAD REQUEST',
                                  f'Policy {policy_id} Already Exists')
Ejemplo n.º 7
0
 def __shutdown():
     ''' Shutdown the server '''
     func = request.environ.get('werkzeug.server.shutdown')
     if func is None:
         raise RuntimeError('Not running with the Werkzeug Server')
     func()
     return serialize_response(200, 'OK', 'Server Shutting Down')
Ejemplo n.º 8
0
def update_policy(policy_id):
    ''' Returns all karma info '''
    formula, max_level, errors = __check_request_data(request.get_json(),
                                                      update=True)
    if errors:
        return serialize_response(400, 'BAD REQUEST', errors)
    try:
        LEVEL_PROVIDER.update_policy(policy_id,
                                     formula=formula,
                                     max_level=max_level)
        return serialize_response(200, 'UPDATED',
                                  f'Updated policy {policy_id}')
    except PolicyNotExistsException:
        return serialize_response(404, 'NOT FOUND',
                                  f'Policy {policy_id} could not be found')
    except InvalidFormulaException as exception:
        return serialize_response(400, 'BAD REQUEST', 'Malformed Formula',
                                  json.loads(str(exception))['errors'])
Ejemplo n.º 9
0
 def __exception(exception):
     return make_response(
         serialize_response(500, 'Internal Error', str(exception)), 405)
Ejemplo n.º 10
0
 def __not_allowed(error):
     ''' Not Allowed Handler '''
     return make_response(
         serialize_response(405, 'Method not allowed', error.description),
         405)
Ejemplo n.º 11
0
 def __not_found(error):
     ''' Not Found Handler '''
     return make_response(
         serialize_response(404, 'Not Found', error.description), 404)
Ejemplo n.º 12
0
 def __bad_request(error):
     ''' Bad Request Handler '''
     return make_response(
         serialize_response(400, 'Bad Request', error.description), 400)