diff --git a/frontend/src/api/files.js b/frontend/src/api/files.js index 6cae235945..490771235e 100644 --- a/frontend/src/api/files.js +++ b/frontend/src/api/files.js @@ -7,28 +7,24 @@ export async function fetch(url) { const res = await fetchURL(`/api/resources${url}`, {}); - if (res.status === 200) { - let data = await res.json(); - data.url = `/files${url}`; - - if (data.isDir) { - if (!data.url.endsWith("/")) data.url += "/"; - data.items = data.items.map((item, index) => { - item.index = index; - item.url = `${data.url}${encodeURIComponent(item.name)}`; - - if (item.isDir) { - item.url += "/"; - } - - return item; - }); - } + let data = await res.json(); + data.url = `/files${url}`; - return data; - } else { - throw new Error(res.status); + if (data.isDir) { + if (!data.url.endsWith("/")) data.url += "/"; + data.items = data.items.map((item, index) => { + item.index = index; + item.url = `${data.url}${encodeURIComponent(item.name)}`; + + if (item.isDir) { + item.url += "/"; + } + + return item; + }); } + + return data; } async function resourceAction(url, method, content) { @@ -42,11 +38,7 @@ async function resourceAction(url, method, content) { const res = await fetchURL(`/api/resources${url}`, opts); - if (res.status !== 200) { - throw new Error(await res.text()); - } else { - return res; - } + return res; } export async function remove(url) { diff --git a/frontend/src/api/pub.js b/frontend/src/api/pub.js index 626571b335..f84504f993 100644 --- a/frontend/src/api/pub.js +++ b/frontend/src/api/pub.js @@ -8,28 +8,24 @@ export async function fetch(url, password = "") { headers: { "X-SHARE-PASSWORD": encodeURIComponent(password) }, }); - if (res.status === 200) { - let data = await res.json(); - data.url = `/share${url}`; - - if (data.isDir) { - if (!data.url.endsWith("/")) data.url += "/"; - data.items = data.items.map((item, index) => { - item.index = index; - item.url = `${data.url}${encodeURIComponent(item.name)}`; - - if (item.isDir) { - item.url += "/"; - } - - return item; - }); - } + let data = await res.json(); + data.url = `/share${url}`; - return data; - } else { - throw new Error(res.status); + if (data.isDir) { + if (!data.url.endsWith("/")) data.url += "/"; + data.items = data.items.map((item, index) => { + item.index = index; + item.url = `${data.url}${encodeURIComponent(item.name)}`; + + if (item.isDir) { + item.url += "/"; + } + + return item; + }); } + + return data; } export function download(format, hash, token, ...files) { diff --git a/frontend/src/api/search.js b/frontend/src/api/search.js index 08be5c1d58..42846880a6 100644 --- a/frontend/src/api/search.js +++ b/frontend/src/api/search.js @@ -11,21 +11,17 @@ export default async function search(base, query) { let res = await fetchURL(`/api/search${base}?query=${query}`, {}); - if (res.status === 200) { - let data = await res.json(); + let data = await res.json(); - data = data.map((item) => { - item.url = `/files${base}` + url.encodePath(item.path); + data = data.map((item) => { + item.url = `/files${base}` + url.encodePath(item.path); - if (item.dir) { - item.url += "/"; - } + if (item.dir) { + item.url += "/"; + } - return item; - }); + return item; + }); - return data; - } else { - throw Error(res.status); - } + return data; } diff --git a/frontend/src/api/settings.js b/frontend/src/api/settings.js index 8abe1f1ece..e03b0db1dd 100644 --- a/frontend/src/api/settings.js +++ b/frontend/src/api/settings.js @@ -5,12 +5,8 @@ export function get() { } export async function update(settings) { - const res = await fetchURL(`/api/settings`, { + await fetchURL(`/api/settings`, { method: "PUT", body: JSON.stringify(settings), }); - - if (res.status !== 200) { - throw new Error(res.status); - } } diff --git a/frontend/src/api/share.js b/frontend/src/api/share.js index 29dfe8773f..1ac4473ac0 100644 --- a/frontend/src/api/share.js +++ b/frontend/src/api/share.js @@ -10,13 +10,9 @@ export async function get(url) { } export async function remove(hash) { - const res = await fetchURL(`/api/share/${hash}`, { + await fetchURL(`/api/share/${hash}`, { method: "DELETE", }); - - if (res.status !== 200) { - throw new Error(res.status); - } } export async function create(url, password = "", expires = "", unit = "hours") { diff --git a/frontend/src/api/users.js b/frontend/src/api/users.js index 7975d66aa3..105d6cc086 100644 --- a/frontend/src/api/users.js +++ b/frontend/src/api/users.js @@ -20,13 +20,11 @@ export async function create(user) { if (res.status === 201) { return res.headers.get("Location"); - } else { - throw new Error(res.status); } } export async function update(user, which = ["all"]) { - const res = await fetchURL(`/api/users/${user.id}`, { + await fetchURL(`/api/users/${user.id}`, { method: "PUT", body: JSON.stringify({ what: "user", @@ -34,18 +32,10 @@ export async function update(user, which = ["all"]) { data: user, }), }); - - if (res.status !== 200) { - throw new Error(res.status); - } } export async function remove(id) { - const res = await fetchURL(`/api/users/${id}`, { + await fetchURL(`/api/users/${id}`, { method: "DELETE", }); - - if (res.status !== 200) { - throw new Error(res.status); - } } diff --git a/frontend/src/api/utils.js b/frontend/src/api/utils.js index f9fc902326..4319e8ff15 100644 --- a/frontend/src/api/utils.js +++ b/frontend/src/api/utils.js @@ -26,6 +26,13 @@ export async function fetchURL(url, opts) { await renew(store.state.jwt); } + if (res.status < 200 || res.status > 299) { + const error = new Error(await res.text()); + error.status = res.status; + + throw error; + } + return res; } diff --git a/frontend/src/store/getters.js b/frontend/src/store/getters.js index ce0598a51a..6bee9bcd2b 100644 --- a/frontend/src/store/getters.js +++ b/frontend/src/store/getters.js @@ -28,7 +28,9 @@ const getters = { let name = upload.file.name; let size = state.upload.sizes[id]; let isDir = upload.file.isDir; - let progress = isDir ? 100 : Math.ceil((state.upload.progress[id] / size) * 100); + let progress = isDir + ? 100 + : Math.ceil((state.upload.progress[id] / size) * 100); files.push({ id, diff --git a/frontend/src/utils/upload.js b/frontend/src/utils/upload.js index 05cf5ea66d..2184072f4f 100644 --- a/frontend/src/utils/upload.js +++ b/frontend/src/utils/upload.js @@ -130,7 +130,7 @@ export function handleFiles(files, base, overwrite = false) { path, file, overwrite, - ...(!file.isDir && { type: detectType(file.type) }) + ...(!file.isDir && { type: detectType(file.type) }), }; store.dispatch("upload/upload", item); diff --git a/frontend/src/views/Errors.vue b/frontend/src/views/Errors.vue index b010906d17..43746105bc 100644 --- a/frontend/src/views/Errors.vue +++ b/frontend/src/views/Errors.vue @@ -38,15 +38,8 @@ export default { }, props: ["errorCode", "showHeader"], computed: { - code() { - return this.errorCode === "0" || - this.errorCode === "404" || - this.errorCode === "403" - ? parseInt(this.errorCode) - : 500; - }, info() { - return errors[this.code]; + return errors[this.errorCode] ? errors[this.errorCode] : errors[500]; }, }, }; diff --git a/frontend/src/views/Files.vue b/frontend/src/views/Files.vue index 128b8a9b1e..bc9e24cec9 100644 --- a/frontend/src/views/Files.vue +++ b/frontend/src/views/Files.vue @@ -4,7 +4,7 @@ - +

diff --git a/frontend/src/views/Share.vue b/frontend/src/views/Share.vue index f26b4fc2ac..36490f1fc3 100644 --- a/frontend/src/views/Share.vue +++ b/frontend/src/views/Share.vue @@ -30,7 +30,7 @@

-
+
- +