triplecheck-repository-firestore
Version:
Database utility for using Firestore with TripleCheck broker.
57 lines • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createNewFirestoreRepository = void 0;
const tslib_1 = require("tslib");
const firestore_1 = require("@google-cloud/firestore");
function createNewFirestoreRepository(config, collectionName) {
const firestore = new firestore_1.Firestore(config);
const collection = firestore.collection(collectionName);
const firestoreRepository = new FirestoreRepository(collection);
return firestoreRepository;
}
exports.createNewFirestoreRepository = createNewFirestoreRepository;
class FirestoreRepository {
constructor(collection) {
this.collection = collection;
}
getData(key) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const doc = yield this.collection.doc(key).get();
if (!doc.exists)
return;
const docData = doc.data();
const data = (() => {
try {
const _data = JSON.parse(docData.value);
return _data;
}
catch (error) {
return docData;
}
})();
return data;
});
}
updateData(key, data) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const _data = typeof data === 'string' ? data : JSON.stringify(data);
yield this.collection
.doc(key)
.set({ value: _data })
.catch((error) => {
console.error('Error updating!', error.message);
});
});
}
deleteData(key) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
yield this.collection
.doc(key)
.delete()
.catch((error) => {
console.error('Error deleting!', error.message);
});
});
}
}
//# sourceMappingURL=FirestoreRepository.js.map