From ec4dd7d35d605bd2908ad271607093da8727e54b Mon Sep 17 00:00:00 2001 From: jwu-fisker Date: Fri, 15 Jan 2021 11:11:51 -0800 Subject: [PATCH] Fix file upload form to handle ota_update service --- src/components/Contexts/FileUploadContext.jsx | 12 +++++++++--- src/components/Contexts/FileUploadContext.test.jsx | 11 ++++++++--- src/components/FileUploadForm/index.jsx | 4 ++-- src/components/ModalProgressBar/index.jsx | 5 +++-- src/services/__mocks__/uploadFile.js | 2 +- src/services/auth.js | 2 +- src/services/uploadFile.js | 2 +- 7 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/components/Contexts/FileUploadContext.jsx b/src/components/Contexts/FileUploadContext.jsx index 142a50a..351cde9 100644 --- a/src/components/Contexts/FileUploadContext.jsx +++ b/src/components/Contexts/FileUploadContext.jsx @@ -8,6 +8,7 @@ export const FileUploadProvider = ({ children }) => { const [progress, setProgress] = useState(0); const [status, setStatus] = useState(null); const [cancelUpload, setCancelUpload] = useState(null); + const [linkURL, setLinkURL] = useState(null); const done = () => { setCancelUpload(null); @@ -31,18 +32,22 @@ export const FileUploadProvider = ({ children }) => { const filename = file.name; setUploading(true); + setLinkURL(null); setProgress(0); setStatus(`Uploading ${filename}`); setCancelUpload(getCancelToken()); - const result = await uploadFile(file, setProgress, cancelUpload); - const url = ((result && result.url) ? result.url : "No URL available"); - setStatus(`Uploaded ${filename}\n${url}`); + const { data } = await uploadFile(file, setProgress, cancelUpload); + if (data.message) throw new Error(`${data.error}. ${data.message}`); + const url = ((data && data.link) ? data.link : "No URL available"); + setLinkURL(url); + setStatus(`Uploaded ${filename}`); setCancelUpload(null); setProgress(100); } catch (e) { setStatus(`Error occured: ${e.message}`); + setProgress(-1); } }; @@ -51,6 +56,7 @@ export const FileUploadProvider = ({ children }) => { uploading, progress, status, + linkURL, upload, cancel, }}> diff --git a/src/components/Contexts/FileUploadContext.test.jsx b/src/components/Contexts/FileUploadContext.test.jsx index 3e8e8ef..c79b071 100644 --- a/src/components/Contexts/FileUploadContext.test.jsx +++ b/src/components/Contexts/FileUploadContext.test.jsx @@ -8,12 +8,13 @@ describe("FileUploadContext", () => { beforeEach(() => { const TestComp = () => { - const { progress, uploading, status, upload, cancel } = useFileUploadContext(); + const { progress, uploading, status, linkURL, upload, cancel } = useFileUploadContext(); return ( <>
{uploading.toString()}
{progress.toString()}
{status}
+
{linkURL}
diff --git a/src/services/__mocks__/uploadFile.js b/src/services/__mocks__/uploadFile.js index a636ec5..13bd095 100644 --- a/src/services/__mocks__/uploadFile.js +++ b/src/services/__mocks__/uploadFile.js @@ -1,6 +1,6 @@ import delay from "../../utils/delay"; -let uploadFileResponse = { url: "CLOUDFRONT_URL" }; +let uploadFileResponse = { data: { link: "CLOUDFRONT_URL" } }; let uploadFileDelay = false; let issuedCancelToken = null; diff --git a/src/services/auth.js b/src/services/auth.js index f3c9b09..27a340f 100644 --- a/src/services/auth.js +++ b/src/services/auth.js @@ -1,4 +1,4 @@ -const AUTH_URL = process.env.REACT_APP_AUTH_SERVICE_URL; +const AUTH_URL = process.env.REACT_APP_AUTH_SERVICE_URL || "https://dev-auth.fiskerdps.com"; const auth = { signIn: (username, password) => fetch(`${AUTH_URL}/auth/login`, { diff --git a/src/services/uploadFile.js b/src/services/uploadFile.js index 07a9680..79618f0 100644 --- a/src/services/uploadFile.js +++ b/src/services/uploadFile.js @@ -1,6 +1,6 @@ import axios from 'axios'; -const UPLOAD_ENDPOINT = process.env.REACT_APP_UPLOAD_SERVICE_URL; +const UPLOAD_ENDPOINT = process.env.REACT_APP_UPLOAD_SERVICE_URL || "http://localhost:8080"; export const getCancelToken = () => { const token = axios.CancelToken;