diff --git a/src/frontend/src/api/useConfig.ts b/src/frontend/src/api/useConfig.ts index 41a1d550..ed5deda3 100644 --- a/src/frontend/src/api/useConfig.ts +++ b/src/frontend/src/api/useConfig.ts @@ -1,12 +1,7 @@ import { fetchApi } from './fetchApi' import { keys } from './queryKeys' import { useQuery } from '@tanstack/react-query' - -// todo - refactor it in a proper place -export enum RecordingMode { - Transcript = 'transcript', - ScreenRecording = 'screen_recording', -} +import { RecordingMode } from '@/features/rooms/api/startRecording' export interface ApiConfig { analytics?: { diff --git a/src/frontend/src/features/rooms/api/startRecording.ts b/src/frontend/src/features/rooms/api/startRecording.ts new file mode 100644 index 00000000..fca43f35 --- /dev/null +++ b/src/frontend/src/features/rooms/api/startRecording.ts @@ -0,0 +1,35 @@ +import { useMutation, UseMutationOptions } from '@tanstack/react-query' +import { fetchApi } from '@/api/fetchApi' +import { ApiError } from '@/api/ApiError' +import { ApiRoom } from './ApiRoom' + +export enum RecordingMode { + Transcript = 'transcript', + ScreenRecording = 'screen_recording', +} + +export interface StartRecordingParams { + id: string + mode?: RecordingMode +} + +const startRecording = ({ + id, + mode = RecordingMode.Transcript, +}: StartRecordingParams): Promise => { + return fetchApi(`rooms/${id}/start-recording/`, { + method: 'POST', + body: JSON.stringify({ + mode: mode, + }), + }) +} + +export function useStartRecording( + options?: UseMutationOptions +) { + return useMutation({ + mutationFn: startRecording, + onSuccess: options?.onSuccess, + }) +} diff --git a/src/frontend/src/features/rooms/api/stopRecording.ts b/src/frontend/src/features/rooms/api/stopRecording.ts new file mode 100644 index 00000000..38581fb4 --- /dev/null +++ b/src/frontend/src/features/rooms/api/stopRecording.ts @@ -0,0 +1,23 @@ +import { useMutation, UseMutationOptions } from '@tanstack/react-query' +import { fetchApi } from '@/api/fetchApi' +import { ApiError } from '@/api/ApiError' +import { ApiRoom } from './ApiRoom' + +export interface StopRecordingParams { + id: string +} + +const stopRecording = ({ id }: StopRecordingParams): Promise => { + return fetchApi(`rooms/${id}/stop-recording/`, { + method: 'POST', + }) +} + +export function useStopRecording( + options?: UseMutationOptions +) { + return useMutation({ + mutationFn: stopRecording, + onSuccess: options?.onSuccess, + }) +}