Skip to content

Commit b9bcfba

Browse files
jayy-77jshcodes
authored andcommitted
Fix: Add pagination support to NGSIEM GetSearchStatusV1
- Add paginationLimit and paginationOffset query parameters to GetSearchStatusV1 endpoint - Add pythonic aliases (pagination_limit, pagination_offset) in NGSIEM.get_search_status() - Add test coverage for pagination parameters - Resolves CrowdStrike#1383
1 parent c7cf666 commit b9bcfba

3 files changed

Lines changed: 41 additions & 0 deletions

File tree

src/falconpy/_endpoint/_ngsiem.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,18 @@
192192
"name": "id",
193193
"in": "path",
194194
"required": True
195+
},
196+
{
197+
"type": "integer",
198+
"description": "pagination limit",
199+
"name": "paginationLimit",
200+
"in": "query"
201+
},
202+
{
203+
"type": "integer",
204+
"description": "pagination offset",
205+
"name": "paginationOffset",
206+
"in": "query"
195207
}
196208
]
197209
],

src/falconpy/ngsiem.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,10 @@ def get_search_status(self: object,
364364
repository -- Name of repository. String.
365365
id -- ID of the query. String. Can be used instead of search_id keyword.
366366
search_id -- ID of the query. String. Can be used instead of id keyword.
367+
paginationLimit -- Optional pagination limit. Integer.
368+
paginationOffset -- Optional pagination offset. Integer.
369+
pagination_limit -- Optional pagination limit (alias for paginationLimit). Integer.
370+
pagination_offset -- Optional pagination offset (alias for paginationOffset). Integer.
367371
parameters -- Full parameters payload dictionary. Not required if using other keywords.
368372
369373
This method only supports keywords for providing arguments.
@@ -377,6 +381,11 @@ def get_search_status(self: object,
377381
"""
378382
repository = kwargs.get("repository", None)
379383
search_id = kwargs.get("id", kwargs.get("search_id", None))
384+
# Allow pythonic aliasing for query string parameters (Issue #1383)
385+
if "pagination_limit" in kwargs and "paginationLimit" not in kwargs:
386+
kwargs["paginationLimit"] = kwargs.pop("pagination_limit")
387+
if "pagination_offset" in kwargs and "paginationOffset" not in kwargs:
388+
kwargs["paginationOffset"] = kwargs.pop("pagination_offset")
380389
if repository and search_id:
381390
# Pop the path variables from the keywords dictionary
382391
# before processing query string arguments.

tests/test_ngsiem.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,3 +149,23 @@ def test_stop_search_parameter_handling(self):
149149

150150
def test_all_functionality(self):
151151
assert self.run_all_tests() is True
152+
153+
def test_pagination_params(self):
154+
"""Test that pagination parameters are properly handled (Issue #1383)."""
155+
# Test with camelCase parameters
156+
result = falcon.get_search_status(
157+
repository="search-all",
158+
id="test-id",
159+
paginationLimit=100,
160+
paginationOffset=0
161+
)
162+
assert result["status_code"] in AllowedResponses
163+
164+
# Test with pythonic parameters
165+
result = falcon.get_search_status(
166+
repository="search-all",
167+
id="test-id",
168+
pagination_limit=100,
169+
pagination_offset=0
170+
)
171+
assert result["status_code"] in AllowedResponses

0 commit comments

Comments
 (0)