UNPKG

consultas-doc-peru

Version:

Consulta de documentos a las diferentes entidades publicas del gobierno del Perú.

100 lines 3.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const request_promise_1 = tslib_1.__importDefault(require("request-promise")); const cheerio_1 = tslib_1.__importDefault(require("cheerio")); const http_url_1 = require("./http.url"); const respuestaRequest_1 = require("./respuestaRequest"); class Http { constructor() { this.client = request_promise_1.default.defaults({ jar: true, timeout: 10000, encoding: 'binary', gzip: true }); } /** * @return Promise<RespuestaRequest> * */ getCaptcha() { return tslib_1.__awaiter(this, void 0, void 0, function* () { const respuestaRequest = new respuestaRequest_1.RespuestaRequest(); try { const captcha = yield this.client.post(http_url_1.URL.captcha, { form: { accion: 'random' } }); if (captcha.error) { throw captcha; } respuestaRequest.Estado = 'OK'; respuestaRequest.Respuesta = captcha.toString(); return respuestaRequest; } catch (error) { respuestaRequest.Estado = 'ERROR'; respuestaRequest.Respuesta = error.statusCode === undefined ? error.message : `${error.statusCode} - ${error.name}`; throw respuestaRequest; } }); } /** * * @param string NroDoc * @param string Captcha * @returns Promise * */ getHtml(NroDoc, Captcha) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const respuestaRequest = new respuestaRequest_1.RespuestaRequest(); try { const opciones = { method: 'POST', uri: http_url_1.URL.consulta, form: { accion: "consPorRuc", nroRuc: NroDoc, numRnd: Captcha }, transform: function (body) { return cheerio_1.default.load(body); } }; const pagina = yield this.client(opciones); if (pagina.error) { throw pagina; } respuestaRequest.Estado = 'OK'; respuestaRequest.Respuesta = pagina.html(); return respuestaRequest; } catch (error) { respuestaRequest.Estado = 'ERROR'; respuestaRequest.Respuesta = error.statusCode === undefined ? error.message : `${error.statusCode} - ${error.name}`; throw respuestaRequest; } }); } /** * * @param string NroDoc * @returns Promise * */ get(NroDoc) { return tslib_1.__awaiter(this, void 0, void 0, function* () { try { const captcha = yield this.getCaptcha(); if (captcha.Estado === 'ERROR') { throw captcha; } return yield this.getHtml(NroDoc, captcha.Respuesta.toString()); } catch (error) { throw error; } }); } } exports.Http = Http; //# sourceMappingURL=index.js.map