consultas-doc-peru
Version:
Consulta de documentos a las diferentes entidades publicas del gobierno del Perú.
100 lines • 3.52 kB
JavaScript
;
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