feat: Add WebSocket functionality and integrate call features in the chat component

This commit is contained in:
Marco Beretta 2024-12-21 14:36:01 +01:00
parent ea5cb4bc2b
commit cf4b73b5e3
No known key found for this signature in database
GPG key ID: D918033D8E74CC11
21 changed files with 588 additions and 142 deletions

View file

@ -246,4 +246,6 @@ export const verifyTwoFactor = () => '/api/auth/2fa/verify';
export const confirmTwoFactor = () => '/api/auth/2fa/confirm';
export const disableTwoFactor = () => '/api/auth/2fa/disable';
export const regenerateBackupCodes = () => '/api/auth/2fa/backup/regenerate';
export const verifyTwoFactorTemp = () => '/api/auth/2fa/verify-temp';
export const verifyTwoFactorTemp = () => '/api/auth/2fa/verify-temp';
export const websocket = () => '/api/websocket';

View file

@ -809,4 +809,8 @@ export function verifyTwoFactorTemp(
payload: t.TVerify2FATempRequest,
): Promise<t.TVerify2FATempResponse> {
return request.post(endpoints.verifyTwoFactorTemp(), payload);
}
}
export function getWebsocketUrl(): Promise<t.TWebsocketUrlResponse> {
return request.get(endpoints.websocket());
}

View file

@ -46,6 +46,7 @@ export enum QueryKeys {
health = 'health',
userTerms = 'userTerms',
banner = 'banner',
websocketUrl = 'websocketUrl',
}
export enum MutationKeys {

View file

@ -376,3 +376,14 @@ export const useGetCustomConfigSpeechQuery = (
},
);
};
export const useGetWebsocketUrlQuery = (
config?: UseQueryOptions<t.TWebsocketUrlResponse>,
): QueryObserverResult<t.TWebsocketUrlResponse> => {
return useQuery<t.TWebsocketUrlResponse>([QueryKeys.websocketUrl], () => dataService.getWebsocketUrl(), {
refetchOnWindowFocus: false,
refetchOnReconnect: false,
refetchOnMount: false,
...config,
});
};

View file

@ -541,3 +541,7 @@ export type TRealtimeEphemeralTokenResponse = {
token: string;
url: string;
};
export type TWebsocketUrlResponse = {
url: string;
};