Skip to content
This repository was archived by the owner on Dec 5, 2025. It is now read-only.

Commit 237a2b6

Browse files
committed
[client] Handle get_all and search on labels (#467)
1 parent b4eea51 commit 237a2b6

File tree

1 file changed

+30
-4
lines changed

1 file changed

+30
-4
lines changed

pycti/entities/opencti_label.py

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def generate_id(value):
3838

3939
def list(self, **kwargs):
4040
filters = kwargs.get("filters", None)
41+
search = kwargs.get("search", None)
4142
first = kwargs.get("first", 500)
4243
after = kwargs.get("after", None)
4344
order_by = kwargs.get("orderBy", None)
@@ -46,13 +47,13 @@ def list(self, **kwargs):
4647
get_all = kwargs.get("getAll", False)
4748
with_pagination = kwargs.get("withPagination", False)
4849
if get_all:
49-
first = 500
50+
first = 100
5051

5152
LOGGER.info("Listing Labels with filters %s.", json.dumps(filters))
5253
query = (
5354
"""
54-
query Labels($filters: [LabelsFiltering], $first: Int, $after: ID, $orderBy: LabelsOrdering, $orderMode: OrderingMode) {
55-
labels(filters: $filters, first: $first, after: $after, orderBy: $orderBy, orderMode: $orderMode) {
55+
query Labels($filters: [LabelsFiltering], search: $search, $first: Int, $after: ID, $orderBy: LabelsOrdering, $orderMode: OrderingMode) {
56+
labels(filters: $filters, search: $search, first: $first, after: $after, orderBy: $orderBy, orderMode: $orderMode) {
5657
edges {
5758
node {
5859
"""
@@ -75,13 +76,38 @@ def list(self, **kwargs):
7576
query,
7677
{
7778
"filters": filters,
79+
"search": search,
7880
"first": first,
7981
"after": after,
8082
"orderBy": order_by,
8183
"orderMode": order_mode,
8284
},
8385
)
84-
return self.opencti.process_multiple(result["data"]["labels"], with_pagination)
86+
if get_all:
87+
final_data = []
88+
data = self.opencti.process_multiple(result["data"]["labels"])
89+
final_data = final_data + data
90+
while result["data"]["labels"]["pageInfo"]["hasNextPage"]:
91+
after = result["data"]["labels"]["pageInfo"]["endCursor"]
92+
LOGGER.info("Listing Labels after " + after)
93+
result = self.opencti.query(
94+
query,
95+
{
96+
"filters": filters,
97+
"search": search,
98+
"first": first,
99+
"after": after,
100+
"orderBy": order_by,
101+
"orderMode": order_mode,
102+
},
103+
)
104+
data = self.opencti.process_multiple(result["data"]["labels"])
105+
final_data = final_data + data
106+
return final_data
107+
else:
108+
return self.opencti.process_multiple(
109+
result["data"]["labels"], with_pagination
110+
)
85111

86112
"""
87113
Read a Label object

0 commit comments

Comments
 (0)