Skip to content

Commit

Permalink
Fix uploading audio files
Browse files Browse the repository at this point in the history
  • Loading branch information
nygrenh committed Apr 12, 2024
1 parent e92309f commit 8a971f7
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,7 @@ async fn set_page_audio(
.content_type()
.map(|ct| ct.to_string())
.unwrap_or_else(|| "".to_string());
/*
if !matches!(mime_type.as_str(), "audio/mpeg" | "audio/ogg") {
return Err(...)
}
*/

match mime_type.as_str() {
"audio/mpeg" | "audio/ogg" => {}
unsupported => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import { useTranslation } from "react-i18next"
import CloseIcon from "../../../../../../../imgs/close.svg"
import TrashIcon from "../../../../../../../imgs/trash.svg"
import {
fetchPageAudioFiles,
postPageAudioFile,
removePageAudioFile,
} from "../../../../../../../services/backend/pages"
} from "../../../../../../../services/backend/page-audio-files"
import { fetchPageAudioFiles } from "../../../../../../../services/backend/pages"
import Dialog from "../../../../../../../shared-module/components/Dialog"
import ErrorBanner from "../../../../../../../shared-module/components/ErrorBanner"
import Spinner from "../../../../../../../shared-module/components/Spinner"
Expand Down Expand Up @@ -56,7 +56,6 @@ const PageAudioWidget: React.FC<React.PropsWithChildren<AudioUploadAttributes>>
{
onSuccess: () => {
getPageAudioFiles.refetch()
// onClose()
},
},
)
Expand Down
14 changes: 10 additions & 4 deletions services/main-frontend/src/services/backend/page-audio-files.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,27 @@
import { isBoolean } from "lodash"

import { PageAudioFile } from "../../shared-module/bindings"
import { isPageAudioFile } from "../../shared-module/bindings.guard"
import { validateResponse } from "../../shared-module/utils/fetching"
import { validateFile } from "../../shared-module/utils/files"
import { mainFrontendClient } from "../mainFrontendClient"

export const postPageAudioFile = async (pageId: string, file: File): Promise<PageAudioFile> => {
export const postPageAudioFile = async (pageId: string, file: File): Promise<boolean> => {
// eslint-disable-next-line i18next/no-literal-string
validateFile(file, ["audio"])
const data = new FormData()
// eslint-disable-next-line i18next/no-literal-string
data.append("file", file, file.name || "unknown")
const response = await mainFrontendClient.post(`/page_audio/${pageId}`, data)
return validateResponse(response, isPageAudioFile)
const response = await mainFrontendClient.post(`/page_audio/${pageId}`, data, {
headers: {
"Content-Type": "multipart/form-data",
},
})
return validateResponse(response, isBoolean)
}

export const removePageAudioFile = async (fileId: string): Promise<void> => {
await mainFrontendClient.delete(`page_audio/${fileId}`)
await mainFrontendClient.delete(`/page_audio/${fileId}`)
}

export const fetchPageAudioFiles = async (pageId: string): Promise<PageAudioFile> => {
Expand Down
15 changes: 0 additions & 15 deletions services/main-frontend/src/services/backend/pages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import {
isPageInfo,
} from "../../shared-module/bindings.guard"
import { isArray, isNumber, isString, validateResponse } from "../../shared-module/utils/fetching"
import { validateFile } from "../../shared-module/utils/files"
import { mainFrontendClient } from "../mainFrontendClient"

export const postNewPage = async (data: NewPage): Promise<Page> => {
Expand Down Expand Up @@ -56,20 +55,6 @@ export const fetchPageInfo = async (pageId: string): Promise<PageInfo> => {
return validateResponse(response, isPageInfo)
}

export const postPageAudioFile = async (pageId: string, file: File): Promise<boolean> => {
// eslint-disable-next-line i18next/no-literal-string
validateFile(file, ["audio"])
const data = new FormData()
// eslint-disable-next-line i18next/no-literal-string
data.append("file", file, file.name || "unknown")
const response = await mainFrontendClient.post(`/page_audio/${pageId}`, data)
return validateResponse(response, isBoolean)
}

export const removePageAudioFile = async (fileId: string): Promise<void> => {
await mainFrontendClient.delete(`/page_audio/${fileId}`)
}

export const fetchPageAudioFiles = async (pageId: string): Promise<PageAudioFile[]> => {
const response = await mainFrontendClient.get(`/page_audio/${pageId}/files`)
return validateResponse(response, isArray(isPageAudioFile))
Expand Down

0 comments on commit 8a971f7

Please sign in to comment.