UNPKG

mir-client

Version:
52 lines (48 loc) 1.57 kB
import * as R from 'ramda' /** * @function CreateDeleteFactory - Creates DeleteFactory for a certain Mir API. * @param {Object} axios - Initialized Axios instance. * @param {string} resource - The target collection. * @returns {DeleteFactory} - A factory function that accepts a Mir API resource name. */ function CreateDeleteFactory(axios, resource) { /** * @typedef DeleteFactory - A Query Builder object * @type {function} * @param {string} id - The id of the desired record. * @returns {QueryBuilder} - Object that acts as a query builder for Mir requests */ const DeleteFactory = (id) => { /** * A Query Builder object * @typedef QueryBuilder * @type {Object} * @property {Object} params - Stores parameters for the request * @property {Object} headers - Stores headers for the request * @property {function} send - Sends a request with the current stored headers and params configurations. */ const QueryBuilder = { params: {}, headers: {}, /** * @function send * @param {function} hook - does this need hooks? * @this QueryBuilder * @returns {Promise} - Axios promise */ send(hook) { const params = this.params const headers = this.headers return axios.delete(`/${resource}/${id}`, { params, headers }).then((result) => { return result }) } } return QueryBuilder } return DeleteFactory } export default CreateDeleteFactory