diff --git a/frontend/src/api/files.js b/frontend/src/api/files.js index 6cae2359..49077123 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}`; + 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 (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 += "/"; - } + if (item.isDir) { + item.url += "/"; + } - return item; - }); - } - - return data; - } else { - throw new Error(res.status); + 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 626571b3..f84504f9 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}`; + 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 (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 += "/"; - } + if (item.isDir) { + item.url += "/"; + } - return item; - }); - } - - return data; - } else { - throw new Error(res.status); + 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 08be5c1d..42846880 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 8abe1f1e..e03b0db1 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 29dfe877..1ac4473a 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 7975d66a..105d6cc0 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 f9fc9023..4319e8ff 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 ce0598a5..6bee9bcd 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 05cf5ea6..2184072f 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 b010906d..43746105 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 128b8a9b..bc9e24ce 100644 --- a/frontend/src/views/Files.vue +++ b/frontend/src/views/Files.vue @@ -4,7 +4,7 @@ <breadcrumbs base="/files" /> - <errors v-if="error" :errorCode="error.message" /> + <errors v-if="error" :errorCode="error.status" /> <component v-else-if="currentView" :is="currentView"></component> <div v-else> <h2 class="message delayed"> diff --git a/frontend/src/views/Share.vue b/frontend/src/views/Share.vue index f26b4fc2..36490f1f 100644 --- a/frontend/src/views/Share.vue +++ b/frontend/src/views/Share.vue @@ -30,7 +30,7 @@ </h2> </div> <div v-else-if="error"> - <div v-if="error.message === '401'"> + <div v-if="error.status === 401"> <div class="card floating" id="password"> <div v-if="attemptedPasswordLogin" class="share__wrong__password"> {{ $t("login.wrongCredentials") }} @@ -60,7 +60,7 @@ </div> </div> </div> - <errors v-else :errorCode="error.message" /> + <errors v-else :errorCode="error.status" /> </div> <div v-else> <div class="share"> diff --git a/frontend/src/views/settings/Global.vue b/frontend/src/views/settings/Global.vue index 5adf21eb..7d4e91fc 100644 --- a/frontend/src/views/settings/Global.vue +++ b/frontend/src/views/settings/Global.vue @@ -1,5 +1,5 @@ <template> - <errors v-if="error" :errorCode="error.message" /> + <errors v-if="error" :errorCode="error.status" /> <div class="row" v-else-if="!loading"> <div class="column"> <form class="card" @submit.prevent="save"> diff --git a/frontend/src/views/settings/Shares.vue b/frontend/src/views/settings/Shares.vue index b27b4f7a..d2d5944b 100644 --- a/frontend/src/views/settings/Shares.vue +++ b/frontend/src/views/settings/Shares.vue @@ -1,5 +1,5 @@ <template> - <errors v-if="error" :errorCode="error.message" /> + <errors v-if="error" :errorCode="error.status" /> <div class="row" v-else-if="!loading"> <div class="column"> <div class="card"> diff --git a/frontend/src/views/settings/User.vue b/frontend/src/views/settings/User.vue index 8fe2f9b4..09193e33 100644 --- a/frontend/src/views/settings/User.vue +++ b/frontend/src/views/settings/User.vue @@ -1,5 +1,5 @@ <template> - <errors v-if="error" :errorCode="error.message" /> + <errors v-if="error" :errorCode="error.status" /> <div class="row" v-else-if="!loading"> <div class="column"> <form @submit="save" class="card"> diff --git a/frontend/src/views/settings/Users.vue b/frontend/src/views/settings/Users.vue index df4eb228..75b52f6d 100644 --- a/frontend/src/views/settings/Users.vue +++ b/frontend/src/views/settings/Users.vue @@ -1,5 +1,5 @@ <template> - <errors v-if="error" :errorCode="error.message" /> + <errors v-if="error" :errorCode="error.status" /> <div class="row" v-else-if="!loading"> <div class="column"> <div class="card">