From c9e2350155a43cc8ff08aaa2031a141bfc8b6bf1 Mon Sep 17 00:00:00 2001 From: James Collins Date: Mon, 27 Feb 2023 08:43:44 +1000 Subject: [PATCH] support params in url surrounded by curly braces --- resources/js/helpers/api.ts | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/resources/js/helpers/api.ts b/resources/js/helpers/api.ts index 2bef9d5..a4d36df 100644 --- a/resources/js/helpers/api.ts +++ b/resources/js/helpers/api.ts @@ -37,12 +37,21 @@ export const api = { let url = this.baseUrl + options.url; if (options.params) { - url = - url + - "?" + - Object.keys(options.params) - .map((key) => key + "=" + options.params[key]) - .join("&"); + let params = ""; + + for (const [key, value] of Object.entries(options.params)) { + const placeholder = `{${key}}`; + if (url.includes(placeholder)) { + url = url.replace(placeholder, value); + } else { + params += `&${key}=${value}`; + } + } + + url = url.replace(/{(.*?)}/g, "$1"); + if (params.length > 0) { + url += (url.includes("?") ? "" : "?") + params.substring(1); + } } options.headers = {