mirror of
				https://github.com/brygphilomena/pyhuntress.git
				synced 2025-11-04 08:17:29 +00:00 
			
		
		
		
	made pagination work
This commit is contained in:
		
							parent
							
								
									146431e818
								
							
						
					
					
						commit
						e2bb030b71
					
				@ -37,16 +37,16 @@ class HuntressClient(ABC):
 | 
				
			|||||||
    def _get_url(self) -> str:
 | 
					    def _get_url(self) -> str:
 | 
				
			||||||
        pass
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _make_request(
 | 
					    def _make_request(  # noqa: C901
 | 
				
			||||||
        self,
 | 
					        self,
 | 
				
			||||||
        method: RequestMethod,
 | 
					        method: RequestMethod,
 | 
				
			||||||
        url: str,
 | 
					        url: str,
 | 
				
			||||||
        data: RequestData | None = None,
 | 
					        data: RequestData | None = None,
 | 
				
			||||||
        rawdata: RequestData | None = None,
 | 
					#        rawdata: RequestData | None = None,
 | 
				
			||||||
        params: RequestParams | None = None,
 | 
					        params: RequestParams | None = None,
 | 
				
			||||||
        headers: dict[str, str] | None = None,
 | 
					        headers: dict[str, str] | None = None,
 | 
				
			||||||
        retry_count: int = 0,
 | 
					        retry_count: int = 0,
 | 
				
			||||||
        stream: bool = False,
 | 
					        stream: bool = False,  # noqa: FBT001, FBT002
 | 
				
			||||||
    ) -> Response:
 | 
					    ) -> Response:
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        Make an API request using the specified method, endpoint, data, and parameters.
 | 
					        Make an API request using the specified method, endpoint, data, and parameters.
 | 
				
			||||||
@ -76,19 +76,19 @@ class HuntressClient(ABC):
 | 
				
			|||||||
                method,
 | 
					                method,
 | 
				
			||||||
                url,
 | 
					                url,
 | 
				
			||||||
                headers=headers,
 | 
					                headers=headers,
 | 
				
			||||||
                json=data,
 | 
					                data=data,
 | 
				
			||||||
                params=cast(dict[str, Any], params or {}),
 | 
					 | 
				
			||||||
                stream=stream,
 | 
					 | 
				
			||||||
            )
 | 
					 | 
				
			||||||
        elif rawdata:
 | 
					 | 
				
			||||||
            response = requests.request(
 | 
					 | 
				
			||||||
                method,
 | 
					 | 
				
			||||||
                url,
 | 
					 | 
				
			||||||
                headers=headers,
 | 
					 | 
				
			||||||
                data=rawdata,
 | 
					 | 
				
			||||||
                params=cast(dict[str, Any], params or {}),
 | 
					                params=cast(dict[str, Any], params or {}),
 | 
				
			||||||
                stream=stream,
 | 
					                stream=stream,
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
 | 
					#        elif rawdata:
 | 
				
			||||||
 | 
					#            response = requests.request(
 | 
				
			||||||
 | 
					#                method,
 | 
				
			||||||
 | 
					#                url,
 | 
				
			||||||
 | 
					#                headers=headers,
 | 
				
			||||||
 | 
					#                data=rawdata,
 | 
				
			||||||
 | 
					#                params=cast(dict[str, Any], params or {}),
 | 
				
			||||||
 | 
					#                stream=stream,
 | 
				
			||||||
 | 
					#            )
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            response = requests.request(
 | 
					            response = requests.request(
 | 
				
			||||||
                method,
 | 
					                method,
 | 
				
			||||||
 | 
				
			|||||||
@ -135,7 +135,7 @@ class HuntressSATAPIClient(HuntressClient):
 | 
				
			|||||||
        auth_response = self._make_request(
 | 
					        auth_response = self._make_request(
 | 
				
			||||||
            "POST",
 | 
					            "POST",
 | 
				
			||||||
            token_url,
 | 
					            token_url,
 | 
				
			||||||
            rawdata={
 | 
					            data={
 | 
				
			||||||
                "grant_type": "client_credentials",
 | 
					                "grant_type": "client_credentials",
 | 
				
			||||||
                "client_id": self.client_id,
 | 
					                "client_id": self.client_id,
 | 
				
			||||||
                "client_secret": self.client_secret,
 | 
					                "client_secret": self.client_secret,
 | 
				
			||||||
 | 
				
			|||||||
@ -52,10 +52,10 @@ class AccountsEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATData]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATData]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATAccounts,
 | 
					            SATAccounts,
 | 
				
			||||||
 | 
				
			|||||||
@ -38,10 +38,10 @@ class AccountsIdAssignmentsEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATAssignments]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATAssignments]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATAssignments,
 | 
					            SATAssignments,
 | 
				
			||||||
 | 
				
			|||||||
@ -38,10 +38,10 @@ class AccountsIdUsersEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATUsers]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATUsers]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATUsers,
 | 
					            SATUsers,
 | 
				
			||||||
 | 
				
			|||||||
@ -52,10 +52,10 @@ class AssignmentsEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATData]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATData]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATAssignments,
 | 
					            SATAssignments,
 | 
				
			||||||
 | 
				
			|||||||
@ -49,10 +49,10 @@ class AssignmentsIdEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATAssignments]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATAssignments]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATAssignments,
 | 
					            SATAssignments,
 | 
				
			||||||
 | 
				
			|||||||
@ -38,10 +38,10 @@ class AssignmentsIdLearnerActivityEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATLearnerActivities]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATLearnerActivities]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATLearnerActivities,
 | 
					            SATLearnerActivities,
 | 
				
			||||||
 | 
				
			|||||||
@ -38,10 +38,10 @@ class AssignmentsIdLearnersEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATLearners]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATLearners]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATLearners,
 | 
					            SATLearners,
 | 
				
			||||||
 | 
				
			|||||||
@ -52,10 +52,10 @@ class DepartmentsEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATDepartments]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATDepartments]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATDepartments,
 | 
					            SATDepartments,
 | 
				
			||||||
 | 
				
			|||||||
@ -38,10 +38,10 @@ class DepartmentsIdEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATDepartments]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATDepartments]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATDepartments,
 | 
					            SATDepartments,
 | 
				
			||||||
 | 
				
			|||||||
@ -52,10 +52,10 @@ class EpisodesEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATData]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATData]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATEpisodes,
 | 
					            SATEpisodes,
 | 
				
			||||||
 | 
				
			|||||||
@ -38,10 +38,10 @@ class EpisodesIdEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATEpisodes]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATEpisodes]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATEpisodes,
 | 
					            SATEpisodes,
 | 
				
			||||||
 | 
				
			|||||||
@ -52,10 +52,10 @@ class GroupsEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATGroups]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATGroups]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATGroups,
 | 
					            SATGroups,
 | 
				
			||||||
 | 
				
			|||||||
@ -38,10 +38,10 @@ class GroupsIdEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATGroups]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATGroups]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATGroups,
 | 
					            SATGroups,
 | 
				
			||||||
 | 
				
			|||||||
@ -52,10 +52,10 @@ class LearnersEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATLearners]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATLearners]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATLearners,
 | 
					            SATLearners,
 | 
				
			||||||
 | 
				
			|||||||
@ -38,10 +38,10 @@ class LearnersIdEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATLearners]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATLearners]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATLearners,
 | 
					            SATLearners,
 | 
				
			||||||
 | 
				
			|||||||
@ -52,10 +52,10 @@ class PhishingCampaignScenariosEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATData]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATData]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATPhishingScenarios,
 | 
					            SATPhishingScenarios,
 | 
				
			||||||
 | 
				
			|||||||
@ -45,10 +45,10 @@ class PhishingCampaignScenariosIdEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATPhishingScenarios]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATPhishingScenarios]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATPhishingScenarios,
 | 
					            SATPhishingScenarios,
 | 
				
			||||||
 | 
				
			|||||||
@ -52,10 +52,10 @@ class PhishingCampaignsEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATData]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATData]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATPhishingCampaigns,
 | 
					            SATPhishingCampaigns,
 | 
				
			||||||
 | 
				
			|||||||
@ -43,10 +43,10 @@ class PhishingCampaignsIdEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATPhishingCampaigns]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATPhishingCampaigns]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATPhishingCampaigns,
 | 
					            SATPhishingCampaigns,
 | 
				
			||||||
 | 
				
			|||||||
@ -52,10 +52,10 @@ class PhishingScenariosEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATPhishingScenarios]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATPhishingScenarios]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATPhishingScenarios,
 | 
					            SATPhishingScenarios,
 | 
				
			||||||
 | 
				
			|||||||
@ -38,10 +38,10 @@ class PhishingScenariosIdEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATPhishingScenarios]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATPhishingScenarios]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATPhishingScenarios,
 | 
					            SATPhishingScenarios,
 | 
				
			||||||
 | 
				
			|||||||
@ -54,10 +54,10 @@ class UsersEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATData]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATData]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATUsers,
 | 
					            SATUsers,
 | 
				
			||||||
 | 
				
			|||||||
@ -39,10 +39,10 @@ class UsersIdEndpoint(
 | 
				
			|||||||
            PaginatedResponse[SATUsers]: The initialized PaginatedResponse object.
 | 
					            PaginatedResponse[SATUsers]: The initialized PaginatedResponse object.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        if params:
 | 
					        if params:
 | 
				
			||||||
            params["page"] = page
 | 
					            params["page[number]"] = page
 | 
				
			||||||
            params["limit"] = limit
 | 
					            params["page[size]"] = limit
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            params = {"page": page, "limit": limit}
 | 
					            params = {"page[number]": page, "page[size]": limit}
 | 
				
			||||||
        return PaginatedResponse(
 | 
					        return PaginatedResponse(
 | 
				
			||||||
            super()._make_request("GET", params=params),
 | 
					            super()._make_request("GET", params=params),
 | 
				
			||||||
            SATUsers,
 | 
					            SATUsers,
 | 
				
			||||||
 | 
				
			|||||||
@ -84,8 +84,11 @@ class PaginatedResponse(Generic[TModel]):
 | 
				
			|||||||
        self.endpointmodel = endpointmodel
 | 
					        self.endpointmodel = endpointmodel
 | 
				
			||||||
        self.endpoint = endpoint
 | 
					        self.endpoint = endpoint
 | 
				
			||||||
        self.limit = limit
 | 
					        self.limit = limit
 | 
				
			||||||
        # The following for SIEM is in the response body, not the headers
 | 
					        # Get page data from the response body
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
            self.parsed_pagination_response = parse_response_body(json.loads(response.content.decode('utf-8')).get('pagination', {}))
 | 
					            self.parsed_pagination_response = parse_response_body(json.loads(response.content.decode('utf-8')).get('pagination', {}))
 | 
				
			||||||
 | 
					        except:
 | 
				
			||||||
 | 
					            self.parsed_pagination_response = parse_response_body(json.loads(response.content.decode('utf-8')).get('meta.page', {}))
 | 
				
			||||||
        self.params = params
 | 
					        self.params = params
 | 
				
			||||||
        if self.parsed_pagination_response is not None:
 | 
					        if self.parsed_pagination_response is not None:
 | 
				
			||||||
            # Huntress SIEM API gives us a handy response to parse for Pagination
 | 
					            # Huntress SIEM API gives us a handy response to parse for Pagination
 | 
				
			||||||
 | 
				
			|||||||
@ -77,12 +77,19 @@ def parse_response_body(
 | 
				
			|||||||
    elif body.get("current_page") is not None:
 | 
					    elif body.get("current_page") is not None:
 | 
				
			||||||
        if body.get("current_page") > 1:
 | 
					        if body.get("current_page") > 1:
 | 
				
			||||||
            result["prev_page"] = body.get("current_page") - 1
 | 
					            result["prev_page"] = body.get("current_page") - 1
 | 
				
			||||||
 | 
					    elif body.get("currentPage") is not None:
 | 
				
			||||||
 | 
					        if body.get("currentPage") > 1:
 | 
				
			||||||
 | 
					            result["prev_page"] = body.get("currentPage") - 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if body.get("next_page") is not None:
 | 
					    if body.get("next_page") is not None:
 | 
				
			||||||
        result["next_page"] = body.get("next_page")
 | 
					        result["next_page"] = body.get("next_page")
 | 
				
			||||||
 | 
					    elif body.get("currentPage") is not None and body.get("currentPage") < body.get("lastPage"):
 | 
				
			||||||
 | 
					        result["next_page"] = body.get("currentPage") + 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if body.get("last_page") is not None:
 | 
					    if body.get("last_page") is not None:
 | 
				
			||||||
        result["last_page"] = body.get("last_page")
 | 
					        result["last_page"] = body.get("last_page")
 | 
				
			||||||
 | 
					    elif body.get("lastPage") is not None:
 | 
				
			||||||
 | 
					        result["last_page"] = body.get("lastPage")
 | 
				
			||||||
    elif body.get("last_page") is None and body.get("current_page") is not None:
 | 
					    elif body.get("last_page") is None and body.get("current_page") is not None:
 | 
				
			||||||
        result["last_page"] = math.ceil(body.get("total_count")/body.get("limit"))
 | 
					        result["last_page"] = math.ceil(body.get("total_count")/body.get("limit"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -92,12 +99,17 @@ def parse_response_body(
 | 
				
			|||||||
        result["has_next_page"] = True
 | 
					        result["has_next_page"] = True
 | 
				
			||||||
    elif body.get("current_page") is not None and body.get("next_page") is None:
 | 
					    elif body.get("current_page") is not None and body.get("next_page") is None:
 | 
				
			||||||
        result["has_next_page"] = False
 | 
					        result["has_next_page"] = False
 | 
				
			||||||
 | 
					    elif body.get("currentPage") is not None and body.get("currentPage") < body.get("lastPage"):
 | 
				
			||||||
 | 
					        result["has_next_page"] = True
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    if body.get("has_prev_page"):
 | 
					    if body.get("has_prev_page"):
 | 
				
			||||||
        result["has_prev_page"] = body.get("has_prev_page")
 | 
					        result["has_prev_page"] = body.get("has_prev_page")
 | 
				
			||||||
    elif body.get("current_page") is not None:
 | 
					    elif body.get("current_page") is not None:
 | 
				
			||||||
        if body.get("current_page") > 1:
 | 
					        if body.get("current_page") > 1:
 | 
				
			||||||
            result["has_prev_page"] = True
 | 
					            result["has_prev_page"] = True
 | 
				
			||||||
 | 
					    elif body.get("currentPage") is not None:
 | 
				
			||||||
 | 
					        if body.get("currentPage") > 1:
 | 
				
			||||||
 | 
					            result["has_prev_page"] = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return result
 | 
					    return result
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user