def setup(self): self.api.app.url_map.converters['region'] = RegionConverter self.api.app.url_map.converters['lon'] = LonConverter self.api.app.url_map.converters['lat'] = LatConverter self.api.app.url_map.converters['uri'] = UriConverter self.api.app.url_map.converters['id'] = IdConverter self.api.app.url_map.strict_slashes = False self.module_resources_manager.register_resource(Index.Index()) self.add_resource(Index.Index, '/', '', endpoint='index') self.module_resources_manager.register_resource( Index.TechnicalStatus()) self.add_resource(Index.TechnicalStatus, '/status', endpoint='technical_status') lon_lat = '<lon:lon>;<lat:lat>/' coverage = '/coverage/' region = coverage + '<region:region>/' coord = coverage + lon_lat self.add_resource(Coverage.Coverage, coverage, region, coord, endpoint='coverage') self.add_resource( Coord.Coord, '/coord/' + lon_lat, '/coords/' + lon_lat, region + 'coord/' + lon_lat + 'addresses', region + 'coords/' + lon_lat + 'addresses', endpoint='coord', ) collecs = list( converters_collection_type.collections_to_resource_type.keys()) for collection in collecs: # we want to hide the connections apis, as they are only for debug hide = collection == 'connections' self.add_resource( getattr(Uri, collection)(True), region + collection, coord + collection, region + '<uri:uri>/' + collection, coord + '<uri:uri>/' + collection, endpoint=collection + '.collection', hide=hide, ) if collection == 'connections': # connections api cannot be query by id continue self.add_resource( getattr(Uri, collection)(False), region + collection + '/<id:id>', coord + collection + '/<id:id>', region + '<uri:uri>/' + collection + '/<id:id>', coord + '<uri:uri>/' + collection + '/<id:id>', endpoint=collection + '.id', hide=hide, ) collecs = [ "routes", "lines", "line_groups", "networks", "stop_areas", "stop_points", "vehicle_journeys" ] for collection in collecs: self.add_resource(getattr(Uri, collection)(True), '/' + collection, endpoint=collection + '.external_codes') self.add_resource(Places.Places, region + 'places', coord + 'places', '/places', endpoint='places') self.add_resource(Ptobjects.Ptobjects, region + 'pt_objects', coord + 'pt_objects', endpoint='pt_objects') self.add_resource( Places.PlaceUri, '/places/<id:id>', region + 'places/<id:id>', coord + 'places/<id:id>', endpoint='place_uri', ) self.add_resource( Places.PlacesNearby, region + 'places_nearby', coord + 'places_nearby', region + '<uri:uri>/places_nearby', coord + '<uri:uri>/places_nearby', '/coord/' + lon_lat + 'places_nearby', '/coords/' + lon_lat + 'places_nearby', endpoint='places_nearby', ) self.add_resource( Journeys.Journeys, region + '<uri:uri>/journeys', coord + '<uri:uri>/journeys', region + 'journeys', coord + 'journeys', '/journeys', endpoint='journeys', # we don't want to document those routes as we consider them deprecated hide_routes=(region + '<uri:uri>/journeys', coord + '<uri:uri>/journeys'), ) if app.config['GRAPHICAL_ISOCHRONE']: self.add_resource( GraphicalIsochrone.GraphicalIsochrone, region + 'isochrones', coord + 'isochrones', endpoint='isochrones', ) if app.config.get('HEAT_MAP'): self.add_resource(HeatMap.HeatMap, region + 'heat_maps', coord + 'heat_maps', endpoint='heat_maps') self.add_resource( Schedules.RouteSchedules, region + '<uri:uri>/route_schedules', coord + '<uri:uri>/route_schedules', '/route_schedules', endpoint='route_schedules', ) self.add_resource( Schedules.NextArrivals, region + '<uri:uri>/arrivals', coord + '<uri:uri>/arrivals', region + 'arrivals', coord + 'arrivals', endpoint='arrivals', ) self.add_resource( Schedules.NextDepartures, region + '<uri:uri>/departures', coord + '<uri:uri>/departures', region + 'departures', coord + 'departures', endpoint='departures', ) self.add_resource( Schedules.StopSchedules, region + '<uri:uri>/stop_schedules', coord + '<uri:uri>/stop_schedules', '/stop_schedules', endpoint='stop_schedules', ) self.add_resource( Disruptions.TrafficReport, region + 'traffic_reports', coord + 'traffic_reports', region + '<uri:uri>/traffic_reports', coord + '<uri:uri>/traffic_reports', endpoint='traffic_reports', ) self.add_resource( LineReports.LineReports, region + 'line_reports', coord + 'line_reports', region + '<uri:uri>/line_reports', coord + '<uri:uri>/line_reports', endpoint='line_reports', ) self.add_resource( EquipmentReports.EquipmentReports, region + 'equipment_reports', coord + 'equipment_reports', region + '<uri:uri>/equipment_reports', coord + '<uri:uri>/equipment_reports', '/coord/' + lon_lat + 'equipment_reports', '/coords/' + lon_lat + 'equipment_reports', endpoint='equipment_reports', ) self.add_resource(Status.Status, region + 'status', coord + 'status', endpoint='status') self.add_resource(GeoStatus.GeoStatus, region + '_geo_status', coord + '_geo_status', endpoint='geo_status') self.add_resource( Calendars.Calendars, region + 'calendars', coord + 'calendars', region + '<uri:uri>/calendars', coord + '<uri:uri>/calendars', region + "calendars/<id:id>", coord + "calendars/<id:id>", endpoint="calendars", ) self.add_resource( Schedules.TerminusSchedules, region + '<uri:uri>/terminus_schedules', coord + '<uri:uri>/terminus_schedules', '/terminus_schedules', endpoint='terminus_schedules', ) self.add_resource(JSONSchema.Schema, '/schema', endpoint="schema")
def setup(self): self.api.app.url_map.converters['region'] = RegionConverter self.api.app.url_map.converters['lon'] = LonConverter self.api.app.url_map.converters['lat'] = LatConverter self.api.app.url_map.converters['uri'] = UriConverter self.api.app.url_map.converters['id'] = IdConverter self.api.app.url_map.strict_slashes = False self.module_resources_manager.register_resource(Index.Index()) self.add_resource(Index.Index, '/', '', endpoint='index') self.module_resources_manager.register_resource( Index.TechnicalStatus()) self.add_resource(Index.TechnicalStatus, '/status', endpoint='technical_status') lon_lat = '<lon:lon>;<lat:lat>/' coverage = '/coverage/' region = coverage + '<region:region>/' coord = coverage + lon_lat self.add_resource(Coverage.Coverage, coverage, region, coord, endpoint='coverage') self.add_resource(Coord.Coord, '/coord/' + lon_lat, '/coords/' + lon_lat, endpoint='coord') collecs = converters_collection_type.collections_to_resource_type.keys( ) for collection in collecs: self.add_resource(getattr(Uri, collection)(True), region + collection, coord + collection, region + '<uri:uri>/' + collection, coord + '<uri:uri>/' + collection, endpoint=collection + '.collection') self.add_resource(getattr(Uri, collection)(False), region + collection + '/<id:id>', coord + collection + '/<id:id>', region + '<uri:uri>/' + collection + '/<id:id>', coord + '<uri:uri>/' + collection + '/<id:id>', endpoint=collection + '.id') collecs = [ "routes", "lines", "line_groups", "networks", "stop_areas", "stop_points", "vehicle_journeys" ] for collection in collecs: self.add_resource(getattr(Uri, collection)(True), '/' + collection, endpoint=collection + '.external_codes') self.add_resource(Places.Places, region + 'places', coord + 'places', '/places', endpoint='places') self.add_resource(Ptobjects.Ptobjects, region + 'pt_objects', coord + 'pt_objects', endpoint='pt_objects') self.add_resource(Places.PlaceUri, '/places/<id:id>', region + 'places/<id:id>', coord + 'places/<id:id>', endpoint='place_uri') self.add_resource(Places.PlacesNearby, region + 'places_nearby', coord + 'places_nearby', region + '<uri:uri>/places_nearby', coord + '<uri:uri>/places_nearby', '/coord/' + lon_lat + 'places_nearby', '/coords/' + lon_lat + 'places_nearby', endpoint='places_nearby') self.add_resource(Journeys.Journeys, region + '<uri:uri>/journeys', coord + '<uri:uri>/journeys', region + 'journeys', coord + 'journeys', '/journeys', endpoint='journeys') if app.config['GRAPHICAL_ISOCHRONE']: self.add_resource(GraphicalIsochrone.GraphicalIsochrone, region + 'isochrones', endpoint='isochrones') if app.config.get('HEAT_MAP'): self.add_resource(HeatMap.HeatMap, region + 'heat_maps', endpoint='heat_maps') self.add_resource(Schedules.RouteSchedules, region + '<uri:uri>/route_schedules', coord + '<uri:uri>/route_schedules', '/route_schedules', endpoint='route_schedules') self.add_resource(Schedules.NextArrivals, region + '<uri:uri>/arrivals', coord + '<uri:uri>/arrivals', region + 'arrivals', coord + 'arrivals', endpoint='arrivals') self.add_resource(Schedules.NextDepartures, region + '<uri:uri>/departures', coord + '<uri:uri>/departures', region + 'departures', coord + 'departures', endpoint='departures') self.add_resource(Schedules.StopSchedules, region + '<uri:uri>/stop_schedules', coord + '<uri:uri>/stop_schedules', '/stop_schedules', endpoint='stop_schedules') self.add_resource(Disruptions.TrafficReport, region + 'traffic_reports', region + '<uri:uri>/traffic_reports', endpoint='traffic_reports') self.add_resource(Status.Status, region + 'status', endpoint='status') self.add_resource(GeoStatus.GeoStatus, region + '_geo_status', endpoint='geo_status') self.add_resource(Calendars.Calendars, region + 'calendars', region + '<uri:uri>/calendars', region + "calendars/<id:id>", endpoint="calendars")