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/baseService.js

63 lines
1.1 KiB

import api from "../config/api"
export default {
/**
* @param {string} iri
* @param {Object} [params]
* @returns {Promise<Object>}
*/
async get(iri, params = {}) {
const { data } = await api.get(iri, {
params,
})
return data
},
/**
* @param {string} endpoint
* @param {Object} searchParams
* @returns {Promise<{totalItems, items}>}
*/
async getCollection(endpoint, searchParams = {}) {
const { data } = await api.get(endpoint, {
params: searchParams,
})
return {
totalItems: data.totalItems,
items: data["hydra:member"],
}
},
/**
* @param {string} endpoint
* @param {Object} [params]
* @returns {Promise<Object>}
*/
async post(endpoint, params) {
const { data } = await api.post(endpoint, params)
return data
},
/**
* @param {string} endpoint
* @param {Object} params
* @returns {Promise<Object>}
*/
async postForm(endpoint, params) {
const { data } = await api.postForm(endpoint, params)
return data
},
/**
* @param {string} iri
* @returns {Promise<void>}
*/
async delete(iri) {
await api.delete(iri)
},
}