UNPKG

firebase-admin-ql

Version:

A powerful library that bridges Firebase Admin SDK with PostgreSQL, simplifies interaction with stored procedures, facilitates seamless third-party API calls using fetch, and provides utility functions to streamline backend operations.

62 lines 2.91 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PgBaseModel = void 0; const postgres_config_1 = require("../config/postgres.config"); const utility_1 = require("../utility"); const firestore_db_1 = require("./firestore.db"); const v2_1 = require("firebase-functions/v2"); class PgBaseModel extends postgres_config_1.PgDatabase { constructor(schema, procedure, order, dbInstance, firestoreDB) { super(schema, dbInstance); this.procedure = procedure; this.order = order; this.firestoreDB = firestoreDB; } call(dbData) { return __awaiter(this, void 0, void 0, function* () { try { const { formData, backups } = dbData; const pgForm = new utility_1.PgFormData(formData, this.order); const returnValue = yield this.runStoredMethod(this.procedure, pgForm.values); v2_1.logger.log("return value: ", returnValue); if (returnValue.status === 'success' && backups) { yield Promise.all(backups.map((pgBackup) => { const { backupDb, whereKeys, dbLabel, firestorReference } = pgBackup; return this.saveToFirestore(backupDb, dbLabel, returnValue.data, whereKeys, firestorReference); })); } return returnValue; } catch (error) { v2_1.logger.error('pg call error: ', error); v2_1.logger.error('db data: ', dbData); return { status: 'error', message: 'Unable to complete process' }; } }); } saveToFirestore(backupDb, dbLabel, data, key, firestorReference) { return __awaiter(this, void 0, void 0, function* () { const fireDb = new firestore_db_1.FirebaseModel(backupDb, this.firestoreDB); yield fireDb.doBackup({ whereKey: key, returnData: data, dbLabel, reference: firestorReference }); }); } } exports.PgBaseModel = PgBaseModel; //# sourceMappingURL=postgres.db.js.map