Example #1
0
def worlds():
    if request.method == 'POST':
        world = worldclient.issue_world_command({'command': 'create_new_world'})
        return Response(json.dumps({'world_id': world['world_id'],
                                   'uri': url_for('worlds.get_world', world_id=world['world_id'])}), 202, json_headers())
    else:  # if request.method == 'GET':
        current_worlds = worldclient.issue_world_command({'command': 'list_worlds'})
        worlds_list = [{'world_id': world_id, 'name': world.get('name', 'Hepatitis'),
                        'uri' : url_for('worlds.get_world', world_id=world_id)} for world_id, world in current_worlds['worlds'].iteritems()]
        return Response(json.dumps(worlds_list), 200, json_headers())
Example #2
0
def get_world(world_id=None):
    if request.method == 'PUT':
        try:
            user_data = request.get_json()
        except Exception as e:
            return Response(json.dumps({'error' : 'Bad Request', 'message' : u"Malformed JSON? {}".format(e)}), 400, json_headers())
        world_update = {}
        if 'name' in user_data:
            world_update['name'] = user_data['name']
        if 'properties' in user_data:
            world_update['properties'] = user_data['properties']
        if 'geography' in user_data:
            world_update['geography'] = user_data['geography']

        result = worldclient.issue_world_command({'command': 'update_world', 'world_id': world_id, 'update' : world_update})
        if result['result'] == 'success':
            return Response("", 204, json_headers())
        else:
            return Response(json.dumps({'error' : result.get('error', "Unable to update")}), 422, json_headers())
    got_world = worldclient.issue_world_command({'command': 'get_world', 'world_id': world_id})
    if got_world['result'] == 'success':
        return Response(json.dumps(got_world), 200, json_headers())
    else:
        return Response(json.dumps(got_world), 404, json_headers())
Example #3
0
def get_world_cell(world_id=None, lat=0.0, lon=0.0):
    return Response(json.dumps(worldclient.issue_world_command({'command': 'get_world_cell', 'world_id': world_id, 'lat' : lat, 'lon' : lon})), 200, json_headers())