get-mexican-data-by-curp
Version:
Verify CURP and obtain personal information from the Mexican government CURP. It scrapes official site and another providers.
43 lines (42 loc) • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Firestore = void 0;
const firestore_1 = require("firebase-admin/lib/firestore");
const models_1 = require("../models");
class Firestore extends models_1.Provider {
constructor(documentPath = curpValue => `id/${curpValue}`) {
super();
this.documentPath = documentPath;
}
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
save(mexican) {
if (mexican === undefined || mexican.curp === undefined) {
throw new Error('Provider error');
}
return firestore_1.getFirestore().collection('id').doc(mexican.curp).set(mexican);
}
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
provide(curp) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
return firestore_1.getFirestore()
.doc(this.documentPath(curp.value))
.get()
.then((document) => {
if (!document.exists) {
return null;
}
const data = document.data();
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
if (data.error) {
return {
curp: curp.value,
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
error: data.error,
};
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return data;
});
}
}
exports.Firestore = Firestore;