diff --git a/src/lib/types/GetTokenDetailsResponse.ts b/src/lib/types/GetTokenDetailsResponse.ts new file mode 100644 index 00000000..23367434 --- /dev/null +++ b/src/lib/types/GetTokenDetailsResponse.ts @@ -0,0 +1,3 @@ +export interface GetTokenDetailsResponse { + [key: string]: unknown; +} diff --git a/src/lib/types/index.ts b/src/lib/types/index.ts index 305e4071..95ceb017 100644 --- a/src/lib/types/index.ts +++ b/src/lib/types/index.ts @@ -26,6 +26,7 @@ export type { export type { GetProjectUsageRequestsSchema } from "./GetProjectUsageRequestsSchema"; export type { GetProjectUsageSummarySchema } from "./GetProjectUsageSummarySchema"; export type { GetProjectUsageSummaryResponse } from "./GetProjectUsageSummaryResponse"; +export type { GetTokenDetailsResponse } from "./GetTokenDetailsResponse"; export type { ListOnPremCredentialsResponse, OnPremCredentialResponse, diff --git a/src/packages/ManageClient.ts b/src/packages/ManageClient.ts index f0ab141f..5278a416 100644 --- a/src/packages/ManageClient.ts +++ b/src/packages/ManageClient.ts @@ -27,9 +27,32 @@ import type { UpdateProjectMemberScopeSchema, UpdateProjectSchema, VoidResponse, + GetTokenDetailsResponse, } from "../lib/types"; export class ManageClient extends AbstractRestfulClient { + /** + * @see https://developers.deepgram.com/docs/authenticating#test-request + */ + async getTokenDetails( + endpoint = "v1/auth/token" + ): Promise> { + try { + const url = new URL(this.baseUrl); + url.pathname = endpoint; + + const result: GetTokenDetailsResponse = await this.get(this.fetch as Fetch, url); + + return { result, error: null }; + } catch (error) { + if (isDeepgramError(error)) { + return { result: null, error }; + } + + throw error; + } + } + /** * @see https://developers.deepgram.com/reference/get-projects */