Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/assets/vue/services/api.js

81 lines
2.4 KiB

import fetch from '../utils/fetch';
// As stated here https://github.com/chamilo/chamilo-lms/pull/5386#discussion_r1578471409
// this service should not be used and instead the assets/bue/config/api.js should be used instead
// take a look at assets/bue/services/socialService.js to have an example
export default function makeService(endpoint, extensions = {}) {
const baseService = {
find(id, params) {
console.log('api.js find');
const currentParams = new URLSearchParams(window.location.search);
const combinedParams = {
...Object.fromEntries(currentParams),
...params,
getFile: true
};
const searchParams = new URLSearchParams(combinedParams);
return fetch(id, { params: Object.fromEntries(searchParams) });
},
findAll(params) {
console.log('api.js findAll');
console.log(params);
return fetch(endpoint, params);
},
async createWithFormData(payload) {
console.log('api.js createWithFormData');
let formData = new FormData();
console.log('body');
console.log(payload);
if (payload) {
Object.keys(payload).forEach(function (key) {
// key: the name of the object key
// index: the ordinal position of the key within the object
formData.append(key, payload[key]);
console.log('options.key', key);
});
payload = formData;
}
return fetch(endpoint, { method: 'POST', body: payload});
},
async create(payload) {
console.log('api.js create');
console.log(payload);
return fetch(endpoint, { method: 'POST', body: JSON.stringify(payload) });
},
del(item) {
console.log('api.js del');
console.log(item['@id']);
return fetch(item['@id'], { method: 'DELETE' });
},
updateWithFormData(payload) {
console.log('api.js - update');
return fetch(payload['@id'], {
method: 'PUT',
body: JSON.stringify(payload)
});
},
update(payload) {
console.log('api.js - update');
return fetch(payload['@id'], {
method: 'PUT',
body: JSON.stringify(payload)
});
},
handleError(error, errorsRef, violationsRef) {
if (error instanceof SubmissionError) {
violationsRef.value = error.errors
errorsRef.value = error.errors._error
return
}
errorsRef.value = error.message
}
};
return { ...baseService, ...extensions };
}