endpoint to upload audio instead of multimedia

This commit is contained in:
Brandon Thomas committed 2023-04-23 22:42:10 -07:00
1 parent a029e3b35c
commit 55affe7a83
3 files changed
+65 -4

No files matched your search

+6
View File
@@ -392,6 +392,12 @@ class ApiConfig {
return `${this.getApiOrigin()}/voice_clone_requests/check`;
}
// =============== File Uploads ===============
uploadAudio(): string {
return `${this.getApiOrigin()}/v1/media_uploads/upload_audio`;
}
uploadMedia(): string {
return `${this.getApiOrigin()}/v1/media_uploads/upload`;
}
@@ -0,0 +1,55 @@
import { ApiConfig } from "../ApiConfig";
export interface UploadAudioRequest {
uuid_idempotency_token: string,
file: any,
}
export interface UploadAudioSuccessResponse {
success: boolean,
upload_token: string,
}
export interface UploadAudioErrorResponse {
success: boolean,
}
type UploadAudioResponse = UploadAudioSuccessResponse | UploadAudioErrorResponse;
export function UploadAudioIsOk(response: UploadAudioResponse): response is UploadAudioSuccessResponse {
return response?.success === true;
}
export function UploadAudioIsError(response: UploadAudioResponse): response is UploadAudioErrorResponse {
return response?.success === false;
}
export async function UploadAudio(request: UploadAudioRequest) : Promise<UploadAudioResponse>
{
const endpoint = new ApiConfig().uploadAudio();
const formData = new FormData();
formData.append('uuid_idempotency_token', request.uuid_idempotency_token);
formData.append('file', request.file);
return fetch(endpoint, {
method: 'POST',
credentials: 'include',
headers: {
'Accept': 'application/json',
},
body: formData,
})
.then(res => res.json())
.then(res => {
if (res && 'success' in res) {
return res;
} else {
return { success : false };
}
})
.catch(e => {
return { success : false };
});
}
@@ -4,7 +4,7 @@ import React, { useState } from "react";
import { FileUploader } from "react-drag-drop-files";
import { InputVcAudioPlayer } from "../../../../_common/InputVcAudioPlayer";
import { v4 as uuidv4 } from "uuid";
import { UploadMedia, UploadMediaIsOk, UploadMediaRequest } from "@storyteller/components/src/api/upload/UploadMedia";
import { UploadAudio, UploadAudioIsOk, UploadAudioRequest } from "@storyteller/components/src/api/upload/UploadAudio";
const FILE_TYPES = ["MP3", "WAV", "FLAC"];
@@ -44,14 +44,14 @@ function UploadComponent(props: Props) {
return false;
}
const request : UploadMediaRequest = {
const request : UploadAudioRequest = {
uuid_idempotency_token: idempotencyToken,
file: file,
}
let result = await UploadMedia(request);
let result = await UploadAudio(request);
if (UploadMediaIsOk(result)) {
if (UploadAudioIsOk(result)) {
setIsUploadDisabled(true);
props.setMediaUploadToken(result.upload_token);
console.log('TOKEN', result.upload_token)