fix(frontend): bump timeout for some calls (closes #1075)

This commit is contained in:
MiniDigger | Martin 2023-01-13 09:53:38 +01:00
parent 157b8a6b83
commit 834a15d067
2 changed files with 16 additions and 10 deletions

View File

@ -1,13 +1,13 @@
import type { AxiosError, AxiosRequestConfig } from "axios"; import type { AxiosError, AxiosRequestConfig } from "axios";
import qs from "qs"; import qs from "qs";
import Cookies from "universal-cookie"; import Cookies from "universal-cookie";
import { isEmpty } from "lodash-es";
import type { Ref } from "vue";
import { useCookies } from "~/composables/useCookies"; import { useCookies } from "~/composables/useCookies";
import { authLog, fetchLog } from "~/lib/composables/useLog"; import { authLog, fetchLog } from "~/lib/composables/useLog";
import { useAxios } from "~/composables/useAxios"; import { useAxios } from "~/composables/useAxios";
function request<T>(url: string, method: AxiosRequestConfig["method"], data: object): Promise<T> { type FilteredAxiosConfig = Omit<AxiosRequestConfig, "method" | "url" | "data" | "params" | "baseURL">;
function request<T>(url: string, method: AxiosRequestConfig["method"], data: object, axiosOptions: FilteredAxiosConfig = {}): Promise<T> {
const cookies = useCookies(); const cookies = useCookies();
return new Promise<T>((resolve, reject) => { return new Promise<T>((resolve, reject) => {
return useAxios() return useAxios()
@ -16,6 +16,7 @@ function request<T>(url: string, method: AxiosRequestConfig["method"], data: obj
url: `/api/${url}`, url: `/api/${url}`,
data: method?.toLowerCase() !== "get" ? data : {}, data: method?.toLowerCase() !== "get" ? data : {},
params: method?.toLowerCase() === "get" ? data : {}, params: method?.toLowerCase() === "get" ? data : {},
...axiosOptions,
paramsSerializer: (params) => { paramsSerializer: (params) => {
return qs.stringify(params, { return qs.stringify(params, {
arrayFormat: "repeat", arrayFormat: "repeat",
@ -44,12 +45,17 @@ function request<T>(url: string, method: AxiosRequestConfig["method"], data: obj
}); });
} }
export function useApi<T>(url: string, method: AxiosRequestConfig["method"] = "get", data: object = {}): Promise<T> { export function useApi<T>(url: string, method: AxiosRequestConfig["method"] = "get", data: object = {}, axiosOptions: FilteredAxiosConfig = {}): Promise<T> {
fetchLog("useApi", url, data); fetchLog("useApi", url, data);
return request(`v1/${url}`, method, data); return request(`v1/${url}`, method, data, axiosOptions);
} }
export function useInternalApi<T = void>(url: string, method: AxiosRequestConfig["method"] = "get", data: object = {}): Promise<T> { export function useInternalApi<T = void>(
url: string,
method: AxiosRequestConfig["method"] = "get",
data: object = {},
axiosOptions: FilteredAxiosConfig = {}
): Promise<T> {
fetchLog("useInternalApi", url, data); fetchLog("useInternalApi", url, data);
return request(`internal/${url}`, method, data); return request(`internal/${url}`, method, data, axiosOptions);
} }

View File

@ -227,8 +227,8 @@ async function createPendingVersion() {
}) })
); );
pendingVersion.value = await useInternalApi<PendingVersion>(`versions/version/${props.project.id}/upload`, "post", formData).catch<any>((e) => pendingVersion.value = await useInternalApi<PendingVersion>(`versions/version/${props.project.id}/upload`, "post", formData, { timeout: 10000 }).catch<any>(
handleRequestError(e) (e) => handleRequestError(e)
); );
loading.create = false; loading.create = false;
@ -271,7 +271,7 @@ async function createVersion() {
} }
try { try {
await useInternalApi(`versions/version/${props.project.id}/create`, "post", pendingVersion.value); await useInternalApi(`versions/version/${props.project.id}/create`, "post", pendingVersion.value, { timeout: 10000 });
await router.push(`/${route.params.user}/${route.params.project}/versions`); await router.push(`/${route.params.user}/${route.params.project}/versions`);
} catch (e: any) { } catch (e: any) {
handleRequestError(e); handleRequestError(e);