Skip to content

Commit e2a8ebd

Browse files
authored
Merge pull request #130 from gicait/dev
close #87, keycolumn in sqlview
2 parents 0780cbf + 3e1d76d commit e2a8ebd

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

geo/Geoserver.py

+17-7
Original file line numberDiff line numberDiff line change
@@ -1926,6 +1926,7 @@ def publish_featurestore_sqlview(
19261926
name: str,
19271927
store_name: str,
19281928
sql: str,
1929+
key_column: Optional[str] = None,
19291930
geom_name: str = "geom",
19301931
geom_type: str = "Geometry",
19311932
srid: Optional[int] = 4326,
@@ -1938,16 +1939,16 @@ def publish_featurestore_sqlview(
19381939
name : str
19391940
store_name : str
19401941
sql : str
1941-
geom_name : str
1942-
geom_type : str
1942+
key_column : str, optional
1943+
geom_name : str, optional
1944+
geom_type : str, optional
19431945
workspace : str, optional
19441946
19451947
"""
19461948
if workspace is None:
19471949
workspace = "default"
19481950

1949-
layer_xml = """<featureType>
1950-
<name>{0}</name>
1951+
layer_xml = """<name>{0}</name>
19511952
<enabled>true</enabled>
19521953
<namespace>
19531954
<name>{4}</name>
@@ -1967,20 +1968,29 @@ def publish_featurestore_sqlview(
19671968
</geometry>
19681969
</virtualTable>
19691970
</entry>
1970-
</metadata>
1971-
</featureType>""".format(
1971+
</metadata>""".format(
19721972
name, sql, geom_name, geom_type, workspace, srid
19731973
)
19741974

1975+
# issue #87
1976+
if key_column is not None:
1977+
layer_xml += """<keyColumn>{}</keyColumn>""".format(key_column)
1978+
1979+
# final xml structure to post
1980+
layer_xml_post = """<featureType>{}</featureType>""".format(layer_xml)
1981+
1982+
# rest API url
19751983
url = "{}/rest/workspaces/{}/datastores/{}/featuretypes".format(
19761984
self.service_url, workspace, store_name
19771985
)
19781986

1987+
# headers
19791988
headers = {"content-type": "text/xml"}
19801989

1990+
# request
19811991
r = requests.post(
19821992
url,
1983-
data=layer_xml,
1993+
data=layer_xml_post,
19841994
auth=(self.username, self.password),
19851995
headers=headers,
19861996
)

0 commit comments

Comments
 (0)