diff --git a/src/server.py b/src/server.py index 308f9f68ed67cbdb4d72a6a1c15a2a8d8e01d811..dd4f69bd3e9caf90b3791087d8596751e621ab48 100755 --- a/src/server.py +++ b/src/server.py @@ -70,7 +70,6 @@ class mapfiles(object): "layergroups": href("%s/maps/%s/layergroups.%s" % (web.ctx.home, filename, format)), "styles": href("%s/maps/%s/styles.%s" % (web.ctx.home, filename, format)), "map_file": href("%s/maps/%s.%s" % (web.ctx.home, filename, format)), - "wms_capabilities": href("%smap=%s&REQUEST=GetCapabilities&VERSION=%s&SERVICE=WMS" % ( get_config("mapserver")["url"], mf.path, get_config("mapserver")["wms_version"])), "wfs_capabilities": href("%smap=%s&REQUEST=GetCapabilities&VERSION=%s&SERVICE=WFS" % ( @@ -120,8 +119,9 @@ class workspace(object): href("%s/maps/%s/workspaces/%s/datastores.%s" % (web.ctx.home, map_name, ws.name, format)), "coverageStores": href("%s/maps/%s/workspaces/%s/coveragestores.%s" % (web.ctx.home, map_name, ws.name, format)), - "wmsStores": - href("%s/maps/%s/workspaces/%s/wmsstores.%s" % (web.ctx.home, map_name, ws.name, format)) + # TODO + # "wmsStores": + # href("%s/maps/%s/workspaces/%s/wmsstores.%s" % (web.ctx.home, map_name, ws.name, format)) }) } @@ -169,7 +169,7 @@ class datastore(object): data = get_data(name="dataStore", mandatory=["name", "connectionParameters"], forbidden=["href"]) if ds_name != data.pop("name"): - raise webapp.Forbidden("Can't change the name of a dataStore.") + raise webapp.Forbidden("Can't change the name of a data store.") with webapp.mightNotFound("dataStore", workspace=ws_name): ws.update_datastore(ds_name, data) @@ -214,7 +214,7 @@ class featuretype(object): ft = ws.get_featuretype(ft_name, ds_name) ds = ws.get_datastore(ds_name) - with webapp.mightNotFound("dataStore entry", datastore=ds_name): + with webapp.mightNotFound("dataStore", datastore=ds_name): dsft = ds[ft_name] extent = dsft.get_extent() @@ -268,18 +268,18 @@ class featuretype(object): def PUT(self, map_name, ws_name, ds_name, ft_name, format): mf, ws = get_mapfile_workspace(map_name, ws_name) - data = get_data(name="featuretype", mandatory=["name"]) + data = get_data(name="featureType", mandatory=["name"]) if ft_name != data["name"]: - raise webapp.Forbidden("Can't change the name of a featuretype.") + raise webapp.Forbidden("Can't change the name of a feature type.") - with webapp.mightNotFound("featuretype", datastore=ds_name): + with webapp.mightNotFound("featureType", datastore=ds_name): ws.update_featuretype(ft_name, ds_name, data) ws.save() def DELETE(self, map_name, ws_name, ds_name, ft_name, format): mf, ws = get_mapfile_workspace(map_name, ws_name) - with webapp.mightNotFound("featuretype", datastore=ds_name): + with webapp.mightNotFound("featureType", datastore=ds_name): ws.delete_featuretype(ft_name, ds_name) ws.save() @@ -327,7 +327,7 @@ class coveragestore(object): data = get_data(name="coverageStore", mandatory=["name", "type", "connectionParameters"], forbidden=["href"]) if cs_name != data.pop("name"): - raise webapp.Forbidden("Can't change the name of a coverageStore.") + raise webapp.Forbidden("Can't change the name of a coverage store.") with webapp.mightNotFound("coverageStore", workspace=ws_name): ws.update_coveragestore(cs_name, data) @@ -540,10 +540,10 @@ class style(object): return { "name": s_name, - "sldVersions": [ + "sldVersion": Entries([ #TODO: Return the correct value... "1.0.0" - ], + ], tag_name="version"), "filename": s_name + ".sld", "href": "%s/maps/%s/styles/%s.sld" % (web.ctx.home, map_name, s_name) } @@ -637,10 +637,9 @@ class layer(object): }[layer.get_mra_metadata("type")] return {"layer" : ({ - "id": layer.ms.index, "name": l_name, "path": "/", - "type": layer.get_type_name(), + "type": "VECTOR", "defaultStyle": { "name": layer.ms.classgroup, "href": "%s/maps/%s/styles/%s.%s" % (web.ctx.home, map_name, layer.ms.classgroup, format), @@ -649,15 +648,14 @@ class layer(object): "name": s_name, "href": "%s/maps/%s/styles/%s.%s" % (web.ctx.home, map_name, s_name, format), } for s_name in layer.iter_styles()], - "resources": { + "resource": { "name": layer.get_mra_metadata("name"), - "@class": data_type, "href": "%s/maps/%s/workspaces/%s/%ss/%s/%ss/%s.%s" % ( web.ctx.home, map_name, layer.get_mra_metadata("workspace"), store_type, layer.get_mra_metadata("storage"), data_type, layer.get_mra_metadata("name"), format), }, "enabled": bool(layer.ms.status), - "attributions": {"logoWidth": 10, "logoHeight": 10} + "attribution": {"logoWidth": 0, "logoHeight": 0} }) } @@ -761,7 +759,7 @@ class layerfields(object): return {"fields": [{ "name": layer.get_metadata("gml_%s_alias" % field, None), - "fieldtype": layer.get_metadata("gml_%s_type" % field, None), + "fieldType": layer.get_metadata("gml_%s_type" % field, None), } for field in layer.iter_fields(mf)] } @@ -771,7 +769,7 @@ class layergroups(object): def GET(self, map_name, format): mf = get_mapfile(map_name) - return {"layergroups" : [{ + return {"layerGroups" : [{ "name": lg.name, "href": "%s/maps/%s/layergroups/%s.%s" % (web.ctx.home, map_name, lg.name, format) } for lg in mf.iter_layergroups()] @@ -780,11 +778,11 @@ class layergroups(object): def POST(self, map_name, format): mf = get_mapfile(map_name) - data = get_data(name="layergroup", mandatory=["name"]) + data = get_data(name="layerGroup", mandatory=["name"]) lg_name = data.pop("name") layers = data.pop("layers", []) - with webapp.mightConflict("layergroup", mapfile=map_name): + with webapp.mightConflict("layerGroup", mapfile=map_name): lg = mf.create_layergroup(lg_name, data) lg.add(*layers) @@ -803,12 +801,10 @@ class layergroup(object): extent = lg.get_extent() - return {"layergroup": ({ + return {"layerGroup": ({ "name": lg.name, "layers": [{ - "id": layer.ms.index, "name": layer.ms.name, - "type": layer.ms.type, "href": "%s/maps/%s/layers/%s.%s" % (web.ctx.home, map_name, layer.ms.name, format), # Do we implement styler or not ? # "styler_href": "%s/styler/?namespace=%s&layer=%s" % ( @@ -820,16 +816,18 @@ class layergroup(object): "maxx": extent.maxX(), "maxy": extent.maxY(), }, + # TODO: "metadata" + # TODO: "styles" }) } def PUT(self, map_name, lg_name, format): mf = get_mapfile(map_name) - with webapp.mightNotFound("layergroup", mapfile=map_name): + with webapp.mightNotFound("layerGroup", mapfile=map_name): lg = mf.get_layergroup(lg_name) - data = get_data(name="layergroup", mandatory=["name"]) + data = get_data(name="layerGroup", mandatory=["name"]) if lg_name != data.pop("name"): raise webapp.Forbidden("Can't change the name of a layergroup.") @@ -841,7 +839,7 @@ class layergroup(object): def DELETE(self, map_name, lg_name, format): mf = get_mapfile(map_name) - with webapp.mightNotFound("layergroup", mapfile=map_name): + with webapp.mightNotFound("layerGroup", mapfile=map_name): mf.delete_layergroup(lg_name)