✨(frontend) add API to start/stop recording
API calls to interact with backend, minimal call. Might be improved.
This commit is contained in:
committed by
aleb_the_flash
parent
10705ca3ac
commit
c61fc40671
@@ -1,12 +1,7 @@
|
|||||||
import { fetchApi } from './fetchApi'
|
import { fetchApi } from './fetchApi'
|
||||||
import { keys } from './queryKeys'
|
import { keys } from './queryKeys'
|
||||||
import { useQuery } from '@tanstack/react-query'
|
import { useQuery } from '@tanstack/react-query'
|
||||||
|
import { RecordingMode } from '@/features/rooms/api/startRecording'
|
||||||
// todo - refactor it in a proper place
|
|
||||||
export enum RecordingMode {
|
|
||||||
Transcript = 'transcript',
|
|
||||||
ScreenRecording = 'screen_recording',
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ApiConfig {
|
export interface ApiConfig {
|
||||||
analytics?: {
|
analytics?: {
|
||||||
|
|||||||
35
src/frontend/src/features/rooms/api/startRecording.ts
Normal file
35
src/frontend/src/features/rooms/api/startRecording.ts
Normal file
@@ -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<ApiRoom> => {
|
||||||
|
return fetchApi(`rooms/${id}/start-recording/`, {
|
||||||
|
method: 'POST',
|
||||||
|
body: JSON.stringify({
|
||||||
|
mode: mode,
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function useStartRecording(
|
||||||
|
options?: UseMutationOptions<ApiRoom, ApiError, StartRecordingParams>
|
||||||
|
) {
|
||||||
|
return useMutation<ApiRoom, ApiError, StartRecordingParams>({
|
||||||
|
mutationFn: startRecording,
|
||||||
|
onSuccess: options?.onSuccess,
|
||||||
|
})
|
||||||
|
}
|
||||||
23
src/frontend/src/features/rooms/api/stopRecording.ts
Normal file
23
src/frontend/src/features/rooms/api/stopRecording.ts
Normal file
@@ -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<ApiRoom> => {
|
||||||
|
return fetchApi(`rooms/${id}/stop-recording/`, {
|
||||||
|
method: 'POST',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function useStopRecording(
|
||||||
|
options?: UseMutationOptions<ApiRoom, ApiError, StopRecordingParams>
|
||||||
|
) {
|
||||||
|
return useMutation<ApiRoom, ApiError, StopRecordingParams>({
|
||||||
|
mutationFn: stopRecording,
|
||||||
|
onSuccess: options?.onSuccess,
|
||||||
|
})
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user