import { ENTRYPOINT } from "../config/entrypoint" import axios from "axios" export default { /** * @param {Object} params */ getLinks: async (params) => { const response = await axios.get(ENTRYPOINT + "links/", { params }) return response.data }, /** * @param {Number|String} linkId */ getLink: async (linkId) => { const response = await axios.get(ENTRYPOINT + "links/" + linkId + "/details/") return response.data }, /** * @param {Object} data */ createLink: async (data) => { const endpoint = `${ENTRYPOINT}links` const response = await axios.post(endpoint, data) return response.data }, /** * @param {Number|String} linkId * @param {Object} data */ updateLink: async (linkId, data) => { const endpoint = `${ENTRYPOINT}links/${linkId}` data.id = linkId const response = await axios.put(endpoint, data) return response.data }, /** * @param {Number|String} linkId * @param {Boolean} visible */ toggleLinkVisibility: async (linkId, visible) => { const endpoint = `${ENTRYPOINT}links/${linkId}/toggle_visibility` const response = await axios.put(endpoint, { visible }) return response.data }, /** * @param {Number|String} linkId * @param {Number} position */ moveLink: async (linkId, position) => { const endpoint = `${ENTRYPOINT}links/${linkId}/move` const response = await axios.put(endpoint, { position }) return response.data }, /** * @param {Number|String} linkId */ deleteLink: async (linkId) => { const endpoint = `${ENTRYPOINT}links/${linkId}` const response = await axios.delete(endpoint) return response.data }, getCategories: async (parentId) => { const response = await axios.get(`${ENTRYPOINT}link_categories?resourceNode.parent=${parentId}`) return response.data["hydra:member"] }, /** * @param {Number|String} categoryId */ getCategory: async (categoryId) => { const response = await axios.get(ENTRYPOINT + "link_categories/" + categoryId) return response.data }, /** * @param {Object} data */ createCategory: async (data) => { const endpoint = `${ENTRYPOINT}link_categories` const response = await axios.post(endpoint, data) return response.data }, /** * @param {Number|String} categoryId * @param {Object} data */ updateCategory: async (categoryId, data) => { const endpoint = `${ENTRYPOINT}link_categories/${categoryId}` const response = await axios.put(endpoint, data) return response.data }, /** * @param {Number|String} categoryId */ deleteCategory: async (categoryId) => { const endpoint = `${ENTRYPOINT}link_categories/${categoryId}` const response = await axios.delete(endpoint) return response.data }, /** * @param {Number|String} categoryId * @param {Boolean} visible */ toggleCategoryVisibility: async (categoryId, visible) => { const endpoint = `${ENTRYPOINT}link_categories/${categoryId}/toggle_visibility` const response = await axios.put(endpoint, { visible }) return response.data }, /** * Checks if the URL is valid. * @param {String} url The URL to be checked. * @param linkId */ checkLink: async (url, linkId) => { const endpoint = `${ENTRYPOINT}links/${linkId}/check` const response = await axios.get(endpoint, { params: { url } }) return response.data }, }