From 0af07301f4cdaeba1c0fcf0427acd3479be08b8d Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Mon, 6 Mar 2023 02:08:03 +0000 Subject: [PATCH] fix upload request --- .../components/uploadButton/index.jsx | 10 +++--- .../app/src/components/PostCreator/index.jsx | 34 ++++++++----------- .../app/src/models/{upload => files}/index.js | 8 +++-- 3 files changed, 24 insertions(+), 28 deletions(-) rename packages/app/src/models/{upload => files}/index.js (86%) diff --git a/packages/app/constants/settings/components/uploadButton/index.jsx b/packages/app/constants/settings/components/uploadButton/index.jsx index 483aaada..aa82ac88 100755 --- a/packages/app/constants/settings/components/uploadButton/index.jsx +++ b/packages/app/constants/settings/components/uploadButton/index.jsx @@ -15,7 +15,7 @@ export default (props) => { formData.append("files", req.file) - const request = await window.app.cores.api.customRequest({ + const { data } = await window.app.cores.api.customRequest({ url: "/upload", method: "POST", data: formData @@ -28,10 +28,10 @@ export default (props) => { setUploading(false) - if (request) { + if (data) { // check failed uploads - if (request.failed.length > 0) { - request.failed.forEach((file) => { + if (data.failed.length > 0) { + data.failed.forEach((file) => { app.notification.error({ message: "Failed to upload file", description: `Could not upload file ${file.fileName} cause > ${file.error}` @@ -39,7 +39,7 @@ export default (props) => { }) } - props.ctx.dispatchUpdate(request.files[0].url) + props.ctx.dispatchUpdate(data.files[0].url) } } diff --git a/packages/app/src/components/PostCreator/index.jsx b/packages/app/src/components/PostCreator/index.jsx index a76dad1c..5da5976e 100755 --- a/packages/app/src/components/PostCreator/index.jsx +++ b/packages/app/src/components/PostCreator/index.jsx @@ -8,6 +8,7 @@ import { Icons } from "components/Icons" import clipboardEventFileToFile from "utils/clipboardEventFileToFile" import PostModel from "models/post" +import FilesModel from "models/files" import "./index.less" @@ -119,25 +120,13 @@ export default class PostCreator extends React.Component { // hide uploader this.toogleUploaderVisibility(false) - // get file data - const file = req.file + const request = await FilesModel.uploadFile(req.file) + .catch(error => { + console.error(error) + antd.message.error(error) - console.log(`Uploading file >`, file) - - // append to form data - const formData = new FormData() - - formData.append("files", file) - - // send request - const request = await this.api.post.upload(formData, undefined).catch((error) => { - console.error(error) - antd.message.error(error) - - req.onError(error) - - return false - }) + return false + }) if (request) { console.log(`Upload done >`, request) @@ -208,8 +197,13 @@ export default class PostCreator extends React.Component { pending: this.state.pending.filter(uid => uid !== change.file.uid) }) - // update post data - this.addAttachment(change.file.response.files) + if (Array.isArray(change.file.response.files)) { + change.file.response.files.forEach((file) => { + this.addAttachment(file) + }) + } else { + this.addAttachment(change.file.response) + } // scroll to end this.uploaderScrollToEnd() diff --git a/packages/app/src/models/upload/index.js b/packages/app/src/models/files/index.js similarity index 86% rename from packages/app/src/models/upload/index.js rename to packages/app/src/models/files/index.js index f54d6ce4..c780b8a8 100755 --- a/packages/app/src/models/upload/index.js +++ b/packages/app/src/models/files/index.js @@ -1,5 +1,7 @@ -export default class UploadModel { +export default class FilesModel { static async uploadFile(file) { + console.log("uploadFile", file) + // get the file from the payload if (!file) { throw new Error("File is required") @@ -14,7 +16,7 @@ export default class UploadModel { // send the request const uploadRequest = await app.cores.api.customRequest( { method: "POST", - url: "/upload", + url: "/files/upload", data: formData, }).catch((err) => { throw new Error(err.response.data.message) @@ -40,7 +42,7 @@ export default class UploadModel { const resultFiles = [] for await (const file of files) { - const result = await UploadModel.uploadFile(file) + const result = await FilesModel.uploadFile(file) resultFiles.push(result) }