Code sync from Exchange

This commit is contained in:
Dillon Ngo
2023-12-17 17:23:04 +08:00
parent ed7a636a18
commit 359c103d01
+27 -2
View File
@@ -1,7 +1,20 @@
export default {
actions: {
crudRequest({getters, dispatch}, {endpoint, method, parameters}){
return fetch(endpoint, {
const queryDomain = endpoint.split('?')[0];
let encodedParams = endpoint.split('?')[1];
let decodedParams = fullyDecodeURI(encodedParams);
const queryParams = encodeURIComponent(decodedParams);
encodedParams = queryParams.toString();
let filteredEncodedParams = encodedParams.replace(/%3D/g,'=');
filteredEncodedParams = filteredEncodedParams.replace(/%26/g,'&');
let combinedAbsoluteUrl = queryDomain;
if(filteredEncodedParams !== undefined && filteredEncodedParams !== 'undefined'){
combinedAbsoluteUrl = queryDomain + '?' + filteredEncodedParams;
}
// return fetch(endpoint, {
return fetch(queryDomain + '?' + filteredEncodedParams, {
method: method,
responseType: 'json',
body: parameters ? JSON.stringify(parameters):null,
@@ -19,4 +32,16 @@ export default {
})
}
}
}
}
function isEncoded(uri) {
uri = uri || '';
return uri !== decodeURIComponent(uri);
}
function fullyDecodeURI(uri){
while (isEncoded(uri)){
uri = decodeURIComponent(uri);
}
return uri;
}