diff --git a/privx_api/auth.py b/privx_api/auth.py index 89c51a5..67f3b70 100644 --- a/privx_api/auth.py +++ b/privx_api/auth.py @@ -232,3 +232,22 @@ def unpair_user_mobile_device( path_params={"user_id": user_id, "device_id": device_id}, ) return self._api_response(response_status, HTTPStatus.OK, data) + + def exchange_external_jwt_token(self, exchange_payload: dict) -> PrivXAPIResponse: + """ + Exchange external jwt token for privx token + Args: + exchange_payload: + { + "token": "string", + "scope": "privx-user connections-manual", + "client_id": "privx-ui" + } + Returns: + PrivXAPIResponse + """ + response_status, data = self._http_post( + UrlEnum.AUTH.EXCHANGE_JWT_TOKEN, + body=get_value(exchange_payload, dict()), + ) + return self._api_response(response_status, HTTPStatus.OK, data) diff --git a/privx_api/connection_manager.py b/privx_api/connection_manager.py index a5a3832..601025a 100644 --- a/privx_api/connection_manager.py +++ b/privx_api/connection_manager.py @@ -79,16 +79,22 @@ def search_connections( ) return self._api_response(response_status, HTTPStatus.OK, data) - def get_connection(self, connection_id: str) -> PrivXAPIResponse: + def get_connection( + self, + connection_id: str, + verbose: Optional[bool] = False, + ) -> PrivXAPIResponse: """ Get a single connection. Returns: PrivXAPIResponse """ + search_params = self._get_search_params(verbose=bool(verbose)) response_status, data = self._http_get( UrlEnum.CONNECTION_MANAGER.CONNECTION, path_params={"connection_id": connection_id}, + query_params=search_params, ) return self._api_response(response_status, HTTPStatus.OK, data) diff --git a/privx_api/enums.py b/privx_api/enums.py index cc07dcd..d108e65 100644 --- a/privx_api/enums.py +++ b/privx_api/enums.py @@ -20,6 +20,7 @@ class AuthEnum: LOGOUT = "AUTH.LOGOUT" MGW_USER_DEVICES = "AUTH.MOBILE_GW_USER_DEVICES" MGW_USER_DEVICES_UNPAIR = "AUTH.MOBILE_GW_USER_DEVICES_UNPAIR" + EXCHANGE_JWT_TOKEN = "AUTH.EXCHANGE_JWT_TOKEN" urls = { AUTHORIZE: "/auth/api/v1/oauth/authorize", @@ -38,6 +39,7 @@ class AuthEnum: LOGOUT: "/auth/api/v1/logout", MGW_USER_DEVICES: "/auth/api/v1/users/{user_id}/devices", MGW_USER_DEVICES_UNPAIR: "/auth/api/v1/users/{user_id}/devices/{device_id}", + EXCHANGE_JWT_TOKEN: "/auth/api/v1/token/login", }