Skip to content

Commit 0d9f702

Browse files
authored
Merge pull request #195 from telekom-mms/fix/api-filter
fix: fixing not working fortigate api filters on get requests
2 parents e418e53 + a078ab5 commit 0d9f702

2 files changed

Lines changed: 11 additions & 6 deletions

File tree

fortilib/fortigateapi.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -715,10 +715,13 @@ def does_exist(self, object_url: str) -> bool:
715715
return True
716716
return False
717717

718-
def get(self, url):
718+
def get(self, url, params: Optional[dict] = None):
719+
params = params or dict()
720+
params.update(vdom=self.vdom)
721+
719722
return self.client.get(
720723
url,
721-
params=f"vdom={self.vdom}",
724+
params=params,
722725
)
723726

724727
def put(self, url, data: Dict):
@@ -771,16 +774,18 @@ def query_api_get(
771774
self, uri: str, specific=False, filters=False
772775
) -> Union[dict, int]:
773776
api_url = self.urlbase + uri
777+
params = dict()
778+
774779
if specific:
775780
api_url += specific
776781
if filters:
777-
api_url += "?filter=" + filters
782+
params.update(filter=filters)
778783

779784
self.operations.append(
780785
FortiGateOperation(api_url, FortiGateQueryType.GET, "", "")
781786
)
782787

783-
result = self.get(api_url)
788+
result = self.get(api_url, params)
784789
self.check_response_code(result)
785790
return result.json()["results"]
786791

tests/tests_fortilib_firewall_read/test_fortilib_firewall.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def test_query_api_get(self):
5353
)
5454

5555
fortigate_api.client.get.assert_called_once_with(
56-
"https://127.0.0.1:443/api/v2/cmdb/firewall/policy/1/?filter=skip=1",
57-
params="vdom=root",
56+
"https://127.0.0.1:443/api/v2/cmdb/firewall/policy/1/",
57+
params={'filter': 'skip=1', 'vdom': 'root'},
5858
)
5959
self.assertEqual("test result", result)

0 commit comments

Comments
 (0)