diff --git a/README.md b/README.md index 949bfad..7af5d60 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,3 @@ See our [API docs](https://api-docs.gradient-labs.ai); chat to us for the password. - diff --git a/src/gradient_labs/_handoff_target_get_default.py b/src/gradient_labs/_handoff_target_get_default.py new file mode 100644 index 0000000..14746c8 --- /dev/null +++ b/src/gradient_labs/_handoff_target_get_default.py @@ -0,0 +1,30 @@ +from dataclasses import dataclass +from dataclasses_json import dataclass_json + +from ._http_client import HttpClient +from .conversation import ConversationChannel + + +@dataclass_json +@dataclass(frozen=True) +class GetDefaultHandOffTargetParams: + # channel is the conversation channel for which to get the default hand-off target. + channel: ConversationChannel + + +@dataclass_json +@dataclass(frozen=True) +class GetDefaultHandOffTargetResponse: + # id is the unique identifier for the default hand-off target. + # Empty string if no default is set. + id: str + + +def get_default_hand_off_target( + *, client: HttpClient, params: GetDefaultHandOffTargetParams +) -> GetDefaultHandOffTargetResponse: + rsp = client.get( + path="hand-off-targets/default", + query_params={"channel": params.channel.value}, + ) + return GetDefaultHandOffTargetResponse.from_dict(rsp) diff --git a/src/gradient_labs/client.py b/src/gradient_labs/client.py index 5efb5ec..a330715 100644 --- a/src/gradient_labs/client.py +++ b/src/gradient_labs/client.py @@ -39,6 +39,11 @@ set_default_hand_off_target, SetDefaultHandOffTargetParams, ) +from ._handoff_target_get_default import ( + get_default_hand_off_target, + GetDefaultHandOffTargetParams, + GetDefaultHandOffTargetResponse, +) from .procedure import Procedure from ._procedure_read import read_procedure @@ -321,6 +326,18 @@ def set_default_hand_off_target( params=params, ) + def get_default_hand_off_target( + self, *, params: GetDefaultHandOffTargetParams + ) -> GetDefaultHandOffTargetResponse: + """get_default_hand_off_target gets the current default hand-off target for the company. + This can be retrieved by channel. + + Note: requires a `Management` API key.""" + return get_default_hand_off_target( + client=self.http_client, + params=params, + ) + def delete_hand_off_target(self, *, params: DeleteHandOffTargetParams) -> None: """delete_hand_off_target deletes a hand-off target. This will fail if the hand off target is in use - either in a procedure, or in an intent.