UNPKG

tdc-js-modules

Version:

63 lines 2.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); var axios_1 = __importDefault(require("axios")); /** * Hook usePost. * Utilidad principal de la aplicación para postear data a APIs. * Este hook entrega una intefaz funcional que permite: * Consultar y transformar un la data traida de la API a través de una función transformadora. * Indicar que tipo de datos retorna la consulta a través de un Genérico. * Setear un valor inicial a la consulta. * Llamar programaticamente una función post(body: any) cuando se necesite postear data. * @param url: URL de la consulta * @param config: Configuración de tipo UsePostConfigType */ function usePost(url, config) { if (config === void 0) { config = {}; } var _a = react_1.useState(config.initialValue), data = _a[0], setData = _a[1]; var _b = react_1.useState(null), error = _b[0], setError = _b[1]; var _c = react_1.useState(false), loading = _c[0], setLoading = _c[1]; var _d = react_1.useState(undefined), response = _d[0], setResponse = _d[1]; var user = sessionStorage.getItem('user'); /*let requestVariables = {method: 'POST', headers, signal};*/ var headers = {}; /* if (user) { const parsed_user = JSON.parse(user); headers['Authorization'] = `JWT ${parsed_user.jwt}`; }*/ var post = function (body, cb) { if (body === void 0) { body = {}; } if (cb === void 0) { cb = undefined; } setLoading(true); headers['Content-Type'] = 'application/json'; axios_1.default .post(url, body, { headers: headers }) .then(function (res) { if (config.transformFunction) { setData(config.transformFunction(res)); } else { setData(res); } setResponse(res); setLoading(false); if (res.status === 200) { cb && cb(); } /*console.log('HTTP-LOG POST', {url, body, data: res.data})*/ }) .catch(function (err) { setError(err); setLoading(false); setResponse(err.response); /*console.log('HTTP-LOG-ERROR POST', {url, body, error: err, response: err.response})*/ }); }; return { data: data, error: error, loading: loading, response: response, post: post }; } exports.default = usePost; //# sourceMappingURL=usePost.js.map