diff options
Diffstat (limited to 'src/state/queries/video/video-upload.ts')
-rw-r--r-- | src/state/queries/video/video-upload.ts | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/src/state/queries/video/video-upload.ts b/src/state/queries/video/video-upload.ts index cf741b251..d806249c9 100644 --- a/src/state/queries/video/video-upload.ts +++ b/src/state/queries/video/video-upload.ts @@ -1,20 +1,18 @@ import {createUploadTask, FileSystemUploadType} from 'expo-file-system' +import {AppBskyVideoDefs} from '@atproto/api' import {useMutation} from '@tanstack/react-query' import {nanoid} from 'nanoid/non-secure' import {CompressedVideo} from '#/lib/media/video/compress' -import {UploadVideoResponse} from '#/lib/media/video/types' import {createVideoEndpointUrl} from '#/state/queries/video/util' import {useAgent, useSession} from '#/state/session' -const UPLOAD_HEADER = process.env.EXPO_PUBLIC_VIDEO_HEADER ?? '' - export const useUploadVideoMutation = ({ onSuccess, onError, setProgress, }: { - onSuccess: (response: UploadVideoResponse) => void + onSuccess: (response: AppBskyVideoDefs.JobStatus) => void onError: (e: any) => void setProgress: (progress: number) => void }) => { @@ -23,7 +21,7 @@ export const useUploadVideoMutation = ({ return useMutation({ mutationFn: async (video: CompressedVideo) => { - const uri = createVideoEndpointUrl('/upload', { + const uri = createVideoEndpointUrl('/xrpc/app.bsky.video.uploadVideo', { did: currentAccount!.did, name: `${nanoid(12)}.mp4`, // @TODO what are we limiting this to? }) @@ -33,19 +31,19 @@ export const useUploadVideoMutation = ({ throw new Error('Agent does not have a PDS URL') } - const {data: serviceAuth} = - await agent.api.com.atproto.server.getServiceAuth({ + const {data: serviceAuth} = await agent.com.atproto.server.getServiceAuth( + { aud: `did:web:${agent.pdsUrl.hostname}`, lxm: 'com.atproto.repo.uploadBlob', - }) + }, + ) const uploadTask = createUploadTask( uri, video.uri, { headers: { - 'dev-key': UPLOAD_HEADER, - 'content-type': 'video/mp4', // @TODO same question here. does the compression step always output mp4? + 'content-type': 'video/mp4', Authorization: `Bearer ${serviceAuth.token}`, }, httpMethod: 'POST', @@ -59,10 +57,7 @@ export const useUploadVideoMutation = ({ throw new Error('No response') } - // @TODO rm, useful for debugging/getting video cid - console.log('[VIDEO]', res.body) - const responseBody = JSON.parse(res.body) as UploadVideoResponse - onSuccess(responseBody) + const responseBody = JSON.parse(res.body) as AppBskyVideoDefs.JobStatus return responseBody }, onError, |