mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 17:38:10 +00:00
endpoint to upload audio instead of multimedia
This commit is contained in:
1 parent
a029e3b35c
commit
55affe7a83
3 files changed
+65
-4
No files matched your search
@@ -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
-4
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user