Skip to content

Commit 11c7e59

Browse files
Merge pull request #64 from GeoNodeUserGroup-DE/issue_#63_Bug_no_unified_handling_of_page_page_size_and_filter_refactoring_required
[Fixes #63] Bug: no unified handling of page, page_size and filter refactoring required
2 parents 7fd3de0 + 9c94714 commit 11c7e59

File tree

3 files changed

+23
-17
lines changed

3 files changed

+23
-17
lines changed

geonoderest/geonodeobject.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,19 @@ class GeonodeObjectHandler(GeonodeRest):
2222
ENDPOINT_NAME: str = ""
2323
SINGULAR_RESOURCE_NAME: str = ""
2424

25+
def __handle_http_params__(self, params: Dict, kwargs: Dict) -> Dict:
26+
if "page_size" in kwargs:
27+
params["page_size"] = kwargs["page_size"]
28+
if "page" in kwargs:
29+
params["page"] = kwargs["page"]
30+
31+
if "filter" in kwargs and kwargs["filter"] is not None:
32+
for field, value in kwargs["filter"].items():
33+
field = "filter{" + field + "}"
34+
params[field] = value
35+
36+
return params
37+
2538
def cmd_list(self, **kwargs):
2639
"""show list of geonode obj on the cmdline"""
2740
obj = self.list(**kwargs)
@@ -37,17 +50,8 @@ def list(self, **kwargs) -> Dict:
3750
Dict: request response
3851
"""
3952
endpoint = f"{self.ENDPOINT_NAME}/"
40-
params = {}
41-
42-
if "page_size" in kwargs:
43-
params["page_size"] = kwargs["page_size"]
44-
if "page" in kwargs:
45-
params["page"] = kwargs["page"]
4653

47-
if "filter" in kwargs and kwargs["filter"] is not None:
48-
for field, value in kwargs["filter"].items():
49-
field = "filter{" + field + "}"
50-
params[field] = value
54+
params = self.__handle_http_params__({}, kwargs)
5155

5256
r = self.http_get(endpoint=endpoint, params=params)
5357
return r[self.JSON_OBJECT_NAME]

geonoderest/rest.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,8 @@ def http_delete(self, endpoint: str, params: Dict = {}) -> Dict:
181181
try:
182182
r = requests.delete(url, headers=self.header, verify=self.verify)
183183
r.raise_for_status()
184+
if r.status_code in [204]:
185+
return {}
184186
except requests.exceptions.HTTPError as err:
185187
raise SystemExit(err)
186188
return r.json()

geonoderest/users.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,19 +77,19 @@ def get(
7777
"cannot handle user_resources and user_groups True at the same time ..."
7878
)
7979
r: Dict
80+
params = self.__handle_http_params__({}, kwargs)
81+
8082
if user_groups is True:
81-
r = self.http_get(
82-
endpoint=f"{self.ENDPOINT_NAME}/{pk}/groups?page_size={kwargs['page_size']}&page={kwargs['page']}"
83-
)
83+
r = self.http_get(endpoint=f"{self.ENDPOINT_NAME}/{pk}/groups")
8484
return r
8585
elif user_resources is True:
86-
endpoint = f"{GeonodeResourceHandler.ENDPOINT_NAME}?page_size={kwargs['page_size']}&page={kwargs['page']}"
87-
endpoint += "&filter{owner.pk}=" + str(pk)
88-
r = self.http_get(endpoint=endpoint)
86+
endpoint = f"{GeonodeResourceHandler.ENDPOINT_NAME}"
87+
r = self.http_get(endpoint=endpoint, params=params)
8988
return r
9089
else:
9190
r = self.http_get(
92-
endpoint=f"{self.ENDPOINT_NAME}/{pk}?page_size={kwargs['page_size']}&page={kwargs['page']}"
91+
endpoint=f"{self.ENDPOINT_NAME}/{pk}",
92+
params=params,
9393
)
9494
return r[self.SINGULAR_RESOURCE_NAME]
9595

0 commit comments

Comments
 (0)