UNPKG

consultas-doc-peru

Version:

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

123 lines 4.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const cheerio_1 = tslib_1.__importDefault(require("cheerio")); const typescript_collections_1 = require("typescript-collections"); const departamento_1 = require("./departamento"); const direccion_1 = require("./direccion"); const razonSocial_1 = require("./razonSocial"); class ParseHtml { /** * * @param string dato * @return RazonSocial * */ getRazonSocial(dato) { const razonSocial = new razonSocial_1.RazonSocial(); let _dato = dato.split('-').map((dato) => dato.trim()); let _rs; if (_dato.length === 3) { _rs = `${_dato[1]} - ${_dato[2]}`; } else { _rs = _dato[1]; } razonSocial.Ruc = _dato[0]; razonSocial.RazonSocial = _rs; return razonSocial; } /** * * @param string departamento * @return Departamento * */ getDepartamento(departamento) { const _departamento = new departamento_1.Departamento(); switch (departamento.toUpperCase()) { case 'DIOS': _departamento.Departamento = 'MADRE DE DIOS'; _departamento.Cantidad = 3; break; case 'MARTIN': _departamento.Departamento = 'SAN MARTIN'; _departamento.Cantidad = 2; break; case 'LIBERTAD': _departamento.Departamento = 'LA LIBERTAD'; _departamento.Cantidad = 2; break; default: _departamento.Departamento = departamento; _departamento.Cantidad = 1; break; } return _departamento; } /** * * @param string direccionCompleta * @return Direccion * */ getDireccion(direccionCompleta) { const direccion = new direccion_1.Direccion(); let _direccion = direccionCompleta.split('-').map((dato) => dato.trim()); let _direccionCompleta = direccionCompleta.split('-').map((dato) => dato.trim()); let _ultimoElemento; let _docimilio; let _splitDomicilio; if (_direccionCompleta.length != 3) { _direccionCompleta.splice(2); _docimilio = _direccionCompleta.join(' '); _splitDomicilio = _docimilio.split(' '); _ultimoElemento = _splitDomicilio[_splitDomicilio.length - 1]; } else { _docimilio = _direccionCompleta[_direccionCompleta.length - 3]; _splitDomicilio = _docimilio.split(' '); _ultimoElemento = _splitDomicilio[_splitDomicilio.length - 1]; } let { Cantidad, Departamento } = this.getDepartamento(_ultimoElemento); _splitDomicilio.splice(-1 * Cantidad); direccion.Departamento = Departamento; direccion.Provincia = _direccion[_direccion.length - 1]; direccion.Distrito = _direccion[_direccion.length - 2]; direccion.Domicilio = _splitDomicilio.join(' '); return direccion; } /** * * @param string pagina * @return Dictionary<string,any> * */ parseHtml(pagina) { const respuesta = new typescript_collections_1.Dictionary(); const $ = cheerio_1.default.load(pagina); const table = $('.form-table').eq(2).find('tbody'); const html = table.first().children("tr").find("td[class=bg]").html(); if (!html) { respuesta.setValue('ERROR', { Estado: 'ERROR', Respuesta: $('.form-table').eq(1).children('tbody').find('tr .bg').text() }); return respuesta; } table.find('tr .bg').each((i, el) => { let value = $(el).text().split('\n').map((elemento) => { if (elemento.trim() != '') return elemento.replace(/[ \n\t]+/g, " ").trim(); }).filter((elemento) => { return elemento !== undefined; }); let key = $(el).prev().text().replace(/[ :\n\t]+/g, " ").trim(); let vl = value.length <= 1 ? value.join() : value; respuesta.setValue(key, vl); }); return respuesta; } } exports.ParseHtml = ParseHtml; //# sourceMappingURL=parseHtml.js.map