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())
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())
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())