diff --git a/client/src/services/Api.js b/client/src/services/Api.js index b7f31cb5..480064b4 100644 --- a/client/src/services/Api.js +++ b/client/src/services/Api.js @@ -216,6 +216,17 @@ class ClientSocket { } } +function ParseQuery(queryData){ + let keys = Object.keys(queryData); + if(keys.length == 0) return ""; + let res = "?"; + for(let i = 0; i < keys.length; i++){ + res += keys[i] + "=" + queryData[keys]; + if(i != keys.length - 1) res += "&"; + } + return res; +} + /** * @typedef {Object} Response * @property {Object} data @@ -237,25 +248,27 @@ class ClientSocket { */ class ClientRouter { #_path; + #_defParams; - constructor(path){ + constructor(path, defParams){ this.#_path = path; + this.#_defParams = defParams; } - get(route){ - return Server().get(`${path}/${route}`); + get(route, query){ + return Server().get(`${this.#_path}/${route}${ParseQuery({...this.#_defParams, ...query})}`); } - post(route, data = {}){ - return Server().post(`${path}/${route}`, data); + post(route, query, data = {}){ + return Server().post(`${this.#_path}/${route}${ParseQuery({...this.#_defParams, ...query})}`, data); } - put(route, data = {}){ - return Server().put(`${path}/${route}`, data); + put(route, query, data = {}){ + return Server().put(`${this.#_path}/${route}${ParseQuery({...this.#_defParams, ...query})}`, data); } - delete(route){ - return Server().delete(`${route}`); + delete(route, query){ + return Server().delete(`${this.#_path}/${route}${ParseQuery({...this.#_defParams, ...query})}`); } } diff --git a/plugins/dnd-5e/client/data.js b/plugins/dnd-5e/client/data.js index 980c1221..c68eed1f 100644 --- a/plugins/dnd-5e/client/data.js +++ b/plugins/dnd-5e/client/data.js @@ -14,6 +14,7 @@ function InitData(){ } function FetchConcepts(){ + console.log(Api.router) Server().get('/concept/list?campaign=' + GetCampaign()._id).then(response => { data.value.concepts = response.data.data; }).catch((err) => console.log(err)); diff --git a/plugins/dnd-5e/client/main.js b/plugins/dnd-5e/client/main.js index f4f73eb2..dffd9d76 100644 --- a/plugins/dnd-5e/client/main.js +++ b/plugins/dnd-5e/client/main.js @@ -26,9 +26,9 @@ function Main(api){ let databaseWindow = Api.registerWindow('database', Api.createView('Database')); let actorsWindow = Api.registerWindow('actors', Api.createView('Actors')); - let characterSheetWindow = Api.registerWindow('character_sheet', Api.createView('CharacterSheet')); - let itemSheetWindow = Api.registerWindow('item_sheet', Api.createView('ItemSheet')); - let createItemPromptWindow = Api.registerWindow('create_item_prompt', Api.createView('CreateItemPrompt')); + Api.registerWindow('character_sheet', Api.createView('CharacterSheet')); + Api.registerWindow('item_sheet', Api.createView('ItemSheet')); + Api.registerWindow('create_item_prompt', Api.createView('CreateItemPrompt')); dndModule.setButtons({ right: [