v1.1.0/remove lib and secret
This commit is contained in:
@@ -13,6 +13,7 @@
|
|||||||
*/build
|
*/build
|
||||||
*/lib
|
*/lib
|
||||||
*/exportDB
|
*/exportDB
|
||||||
|
firebaseSecret.json
|
||||||
|
|
||||||
|
|
||||||
# misc
|
# misc
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "service_account",
|
|
||||||
"project_id": "vaxandme",
|
|
||||||
"private_key_id": "878a8ed429f84ef5fb42555a34bd71d53ba612b2",
|
|
||||||
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDnYRdGS8aHi8aY\nDmcIPlPVN0HSDMjg046n1LmR1f1eRS/28m+C94pP6Pn2WvzRJIGK/8XKXARfAiPD\noVfUaXUAPD0DVbgHMn6/1pvCCF0wwlbXZNsIjDg9vLQiGvnsNcgoDXOhfliqw0ca\nTx3oUdgPCzOzkWw4wGMZaJrNK4w0jwuffNgA746jCG3RX9vo/m+aucerYqPPlSfs\nAjJpmpXXCwdHNx0EnEpGQc3bdnbN53hikEJ+J2xCESqaEmTryi1vXDv+i+YCrZn6\nLD+P1etLvtoU0pKMMCcVLk7VmCPMT8F2RB0L21aFmGLuy8fpBDMIYXtjMp+FbKBf\nAne0zKX1AgMBAAECggEAcn4nQ7gsWZdPYp/B2SDqX9fTgKql3iahcSgA2YrPsM3A\nscx+ZIq0TN2GjyKv9pe/aHYvO/azjQXkh6H3cZrrc/3a3SMWCK2ybaA2+9kisAWC\nblwwTHcCP354jmXV5M4qKLObU77PBlTSAtFChdq19J/A6ircJ+r/Pqv16e+SFdD/\n4ie64DR5Uxj9vUN8WFrfDfapwxwnGLgJCOrS7fecC7xDzi5iLR9mZD1ak2a8B+B6\nwNrzGafVz285B0fVtYbXiEGNElbPBd/hvioK0zsHdYxZYmiaZvyWqABejRk6jW6R\n6OTy7fCk6h7LG23+uh9Ruh8jKEE9nX6g/vYaKOqv0wKBgQD6nKvshaCQD4G5s5gK\nwQFYUFJbmMd547BKtzaFXKzUcldZaL9da4AhINoxu70uCl/nDJmTACEcifU/juiO\nM0XsZ0kufoomW2DyxVKBshBoF/OJoEUngDiCDdJFMUsa6zeiZHVi9uFmTY4c4nf8\nozJxxpcbmQRXEdv9kafBEw83DwKBgQDsWpC/t7QCqCytXWqnkVM5QIvrIxXqIHGR\nzHkS6bmUYv2IF6ynzCgAbnRNDh0X2PIvBk6gJDfyC9lN9LvLurn/CVpEK85Q6hRy\nVO4BegYEaFOfDueiAB1RXvGbEvchZp7+DpN2tgi2lRbuEDPWcySFb7YVkyHo/aVO\nfDHjbSmyuwKBgQDB7ORY1Rpm/6jZozB++dTpmtXwDSwmlNsBJf7peco/Zu9Sv2x9\nhMcUW5CcNXNxohON/cEE8G+u3s5JTXOFPgXYpiAJ+185yTIfCjQLKlfpxMbuc3ev\n1ldjxAA3DKrafLODVQtE9ld6y36xuUkx1LMfOZYKhADIw4ghEknmbLI0XwKBgQCJ\njHtI16QPF8hIbGExe8WvP/0trpGGW7M8Yn7jntm9nY5msUBttsZg2ecdIOWVh1AK\nReVkFS/p0TN5xr+z5MtxvQOnQMclF9UmZH7OpTDzR7PCkW4EPYTSYirBUNw5t/s3\nZ0wyfeW8PC/IA+3nE8NhVI3nKGVHrrWRY321GUZ3GQKBgQDzLC96HVGbIQgfGRhW\nu1mcgNKFdQcy8Yu8ffttnuIIPGljwWwLpfbROD+Fe0CtqJ4XXL0Js7XfoPYoxMMH\nc16GysIG9/TYioBhBVfyf94eekylVjdYO0aY7d5Zjw1EuO/LVdPMlSZuosv3q10n\nyB55dJWP6pkR6tLqeNCuJ8+9qQ==\n-----END PRIVATE KEY-----\n",
|
|
||||||
"client_email": "firebase-adminsdk-meacv@vaxandme.iam.gserviceaccount.com",
|
|
||||||
"client_id": "110649794888712776390",
|
|
||||||
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
|
||||||
"token_uri": "https://oauth2.googleapis.com/token",
|
|
||||||
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
|
||||||
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-meacv%40vaxandme.iam.gserviceaccount.com"
|
|
||||||
}
|
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
exports.getPastResult = exports.saveResult = exports.getStats = void 0;
|
|
||||||
const functions = require("firebase-functions");
|
|
||||||
const admin = require("firebase-admin");
|
|
||||||
const firebaseSecret = require("./firebaseSecret.json");
|
|
||||||
const params = {
|
|
||||||
type: firebaseSecret.type,
|
|
||||||
projectId: firebaseSecret.project_id,
|
|
||||||
privateKeyId: firebaseSecret.private_key_id,
|
|
||||||
privateKey: firebaseSecret.private_key,
|
|
||||||
clientEmail: firebaseSecret.client_email,
|
|
||||||
clientId: firebaseSecret.client_id,
|
|
||||||
authUri: firebaseSecret.auth_uri,
|
|
||||||
tokenUri: firebaseSecret.token_uri,
|
|
||||||
authProviderX509CertUrl: firebaseSecret.auth_provider_x509_cert_url,
|
|
||||||
clientC509CertUrl: firebaseSecret.client_x509_cert_url,
|
|
||||||
};
|
|
||||||
admin.initializeApp({
|
|
||||||
credential: admin.credential.cert(params),
|
|
||||||
});
|
|
||||||
const VAX_NAMES = {
|
|
||||||
PB: "Pfizer-BioNTech",
|
|
||||||
MD: "Moderna",
|
|
||||||
JJ: "J&J Janssen",
|
|
||||||
};
|
|
||||||
const VAX_DOSES = {
|
|
||||||
ONE: "Dose 1",
|
|
||||||
TWO: "Dose 2",
|
|
||||||
};
|
|
||||||
const serializeGaId = (_gaid) => {
|
|
||||||
if (_gaid) {
|
|
||||||
return _gaid.split(".").join("|");
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
};
|
|
||||||
const addResultToStats = async (data) => {
|
|
||||||
const cleanData = Object.assign({}, data);
|
|
||||||
delete cleanData.name;
|
|
||||||
delete cleanData.dose;
|
|
||||||
delete cleanData.age;
|
|
||||||
delete cleanData.gid;
|
|
||||||
const updateDoc = {
|
|
||||||
count: admin.firestore.FieldValue.increment(1),
|
|
||||||
};
|
|
||||||
if (data.name === VAX_NAMES.PB || data.name === VAX_NAMES.MD) {
|
|
||||||
Object.keys(VAX_DOSES).forEach((doseKey) => {
|
|
||||||
const dose = VAX_DOSES[doseKey];
|
|
||||||
Object.keys(cleanData[dose]).forEach((symptom) => {
|
|
||||||
if (cleanData[dose][symptom]) {
|
|
||||||
updateDoc[`${dose}.${data.age}.${symptom.replace("/", "OR")}`] =
|
|
||||||
admin.firestore.FieldValue.increment(1);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Object.keys(cleanData).forEach((symptom) => {
|
|
||||||
updateDoc[`${data.age}.${symptom.replace("/", "OR")}`] =
|
|
||||||
admin.firestore.FieldValue.increment(1);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
admin.firestore().collection("stats").doc(data.name).update(updateDoc);
|
|
||||||
};
|
|
||||||
const removeResultFromStats = async (data) => {
|
|
||||||
const cleanData = Object.assign({}, data);
|
|
||||||
delete cleanData.name;
|
|
||||||
delete cleanData.dose;
|
|
||||||
delete cleanData.age;
|
|
||||||
delete cleanData.gid;
|
|
||||||
const updateDoc = {
|
|
||||||
count: admin.firestore.FieldValue.increment(-1),
|
|
||||||
};
|
|
||||||
if (data.name === VAX_NAMES.PB || data.name === VAX_NAMES.MD) {
|
|
||||||
Object.keys(VAX_DOSES).forEach((doseKey) => {
|
|
||||||
const dose = VAX_DOSES[doseKey];
|
|
||||||
Object.keys(cleanData[dose]).forEach((symptom) => {
|
|
||||||
if (cleanData[dose][symptom]) {
|
|
||||||
updateDoc[`${dose}.${data.age}.${symptom.replace("/", "OR")}`] =
|
|
||||||
admin.firestore.FieldValue.increment(-1);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Object.keys(cleanData).forEach((symptom) => {
|
|
||||||
updateDoc[`${data.age}.${symptom.replace("/", "OR")}`] =
|
|
||||||
admin.firestore.FieldValue.increment(-1);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
admin.firestore().collection("stats").doc(data.name).update(updateDoc);
|
|
||||||
};
|
|
||||||
exports.getStats = functions.https.onCall(async () => {
|
|
||||||
const stats = await admin.firestore().collection("stats").get();
|
|
||||||
const docs = stats.docs
|
|
||||||
.map((docSnap) => ({ name: docSnap.id, result: docSnap.data() }));
|
|
||||||
const returnData = {};
|
|
||||||
docs.forEach((vaxResult) => {
|
|
||||||
returnData[vaxResult.name] = {};
|
|
||||||
returnData[vaxResult.name] = vaxResult.result;
|
|
||||||
});
|
|
||||||
return returnData;
|
|
||||||
});
|
|
||||||
exports.saveResult = functions.https.onCall(async (data, context) => {
|
|
||||||
if (!!data && !!context) {
|
|
||||||
const { gid } = data;
|
|
||||||
// Get existing result
|
|
||||||
const existingResult = await admin
|
|
||||||
.firestore()
|
|
||||||
.collection("results")
|
|
||||||
.doc(serializeGaId(gid))
|
|
||||||
.get()
|
|
||||||
.then((docSnap) => docSnap.data());
|
|
||||||
// Update user result
|
|
||||||
const cleanData = Object.assign({}, data);
|
|
||||||
delete cleanData.gid;
|
|
||||||
await admin
|
|
||||||
.firestore()
|
|
||||||
.collection("results")
|
|
||||||
.doc(serializeGaId(gid))
|
|
||||||
.set(cleanData);
|
|
||||||
// No existing result
|
|
||||||
if (existingResult === undefined) {
|
|
||||||
await addResultToStats(data);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
await removeResultFromStats(existingResult);
|
|
||||||
await addResultToStats(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
exports.getPastResult = functions.https.onCall(async (data, context) => {
|
|
||||||
if (!!data && !!context) {
|
|
||||||
const { gid } = data;
|
|
||||||
let hasToUpdateDb = false;
|
|
||||||
const existingData = await admin
|
|
||||||
.firestore()
|
|
||||||
.collection("results")
|
|
||||||
.doc(serializeGaId(gid))
|
|
||||||
.get()
|
|
||||||
.then((doc) => doc.data());
|
|
||||||
if (existingData) {
|
|
||||||
const returnData = Object.assign({}, existingData);
|
|
||||||
if (existingData.name === VAX_NAMES.PB ||
|
|
||||||
existingData.name === VAX_NAMES.MD) {
|
|
||||||
Object.keys(VAX_DOSES).forEach((doseKey) => {
|
|
||||||
const dose = VAX_DOSES[doseKey];
|
|
||||||
if (!existingData[dose]) {
|
|
||||||
hasToUpdateDb = true;
|
|
||||||
const temp = {};
|
|
||||||
Object.keys(existingData).forEach((symptom) => {
|
|
||||||
if (symptom !== "name" &&
|
|
||||||
symptom !== "age" &&
|
|
||||||
symptom !== "dose") {
|
|
||||||
if (existingData.dose === dose) {
|
|
||||||
temp[symptom] = existingData[symptom];
|
|
||||||
delete returnData[symptom];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
temp[symptom] = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
returnData[dose] = temp;
|
|
||||||
}
|
|
||||||
if (returnData[dose]["NAUSEA / VOMITING"]) {
|
|
||||||
returnData["NAUSEA OR VOMITING"] =
|
|
||||||
returnData["NAUSEA / VOMITING"];
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (returnData["NAUSEA / VOMITING"]) {
|
|
||||||
returnData["NAUSEA OR VOMITING"] =
|
|
||||||
returnData["NAUSEA / VOMITING"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (hasToUpdateDb) {
|
|
||||||
await admin
|
|
||||||
.firestore()
|
|
||||||
.collection("results")
|
|
||||||
.doc(serializeGaId(gid))
|
|
||||||
.set(returnData);
|
|
||||||
}
|
|
||||||
return returnData;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return undefined;
|
|
||||||
});
|
|
||||||
//# sourceMappingURL=index.js.map
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -3,8 +3,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint --ext .js,.ts .",
|
"lint": "eslint --ext .js,.ts .",
|
||||||
"build": "tsc",
|
"build": "tsc",
|
||||||
"serve": "npm run devenv && npm run build && firebase emulators:start --import ./exportDB",
|
"serve": "npm run build && firebase emulators:start --import ./exportDB",
|
||||||
"devenv": "SET NODE_ENV=dev",
|
|
||||||
"shell": "npm run build && firebase functions:shell",
|
"shell": "npm run build && firebase functions:shell",
|
||||||
"start": "npm run shell",
|
"start": "npm run shell",
|
||||||
"deploy": "firebase deploy --only functions",
|
"deploy": "firebase deploy --only functions",
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "service_account",
|
|
||||||
"project_id": "vaxandme",
|
|
||||||
"private_key_id": "878a8ed429f84ef5fb42555a34bd71d53ba612b2",
|
|
||||||
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDnYRdGS8aHi8aY\nDmcIPlPVN0HSDMjg046n1LmR1f1eRS/28m+C94pP6Pn2WvzRJIGK/8XKXARfAiPD\noVfUaXUAPD0DVbgHMn6/1pvCCF0wwlbXZNsIjDg9vLQiGvnsNcgoDXOhfliqw0ca\nTx3oUdgPCzOzkWw4wGMZaJrNK4w0jwuffNgA746jCG3RX9vo/m+aucerYqPPlSfs\nAjJpmpXXCwdHNx0EnEpGQc3bdnbN53hikEJ+J2xCESqaEmTryi1vXDv+i+YCrZn6\nLD+P1etLvtoU0pKMMCcVLk7VmCPMT8F2RB0L21aFmGLuy8fpBDMIYXtjMp+FbKBf\nAne0zKX1AgMBAAECggEAcn4nQ7gsWZdPYp/B2SDqX9fTgKql3iahcSgA2YrPsM3A\nscx+ZIq0TN2GjyKv9pe/aHYvO/azjQXkh6H3cZrrc/3a3SMWCK2ybaA2+9kisAWC\nblwwTHcCP354jmXV5M4qKLObU77PBlTSAtFChdq19J/A6ircJ+r/Pqv16e+SFdD/\n4ie64DR5Uxj9vUN8WFrfDfapwxwnGLgJCOrS7fecC7xDzi5iLR9mZD1ak2a8B+B6\nwNrzGafVz285B0fVtYbXiEGNElbPBd/hvioK0zsHdYxZYmiaZvyWqABejRk6jW6R\n6OTy7fCk6h7LG23+uh9Ruh8jKEE9nX6g/vYaKOqv0wKBgQD6nKvshaCQD4G5s5gK\nwQFYUFJbmMd547BKtzaFXKzUcldZaL9da4AhINoxu70uCl/nDJmTACEcifU/juiO\nM0XsZ0kufoomW2DyxVKBshBoF/OJoEUngDiCDdJFMUsa6zeiZHVi9uFmTY4c4nf8\nozJxxpcbmQRXEdv9kafBEw83DwKBgQDsWpC/t7QCqCytXWqnkVM5QIvrIxXqIHGR\nzHkS6bmUYv2IF6ynzCgAbnRNDh0X2PIvBk6gJDfyC9lN9LvLurn/CVpEK85Q6hRy\nVO4BegYEaFOfDueiAB1RXvGbEvchZp7+DpN2tgi2lRbuEDPWcySFb7YVkyHo/aVO\nfDHjbSmyuwKBgQDB7ORY1Rpm/6jZozB++dTpmtXwDSwmlNsBJf7peco/Zu9Sv2x9\nhMcUW5CcNXNxohON/cEE8G+u3s5JTXOFPgXYpiAJ+185yTIfCjQLKlfpxMbuc3ev\n1ldjxAA3DKrafLODVQtE9ld6y36xuUkx1LMfOZYKhADIw4ghEknmbLI0XwKBgQCJ\njHtI16QPF8hIbGExe8WvP/0trpGGW7M8Yn7jntm9nY5msUBttsZg2ecdIOWVh1AK\nReVkFS/p0TN5xr+z5MtxvQOnQMclF9UmZH7OpTDzR7PCkW4EPYTSYirBUNw5t/s3\nZ0wyfeW8PC/IA+3nE8NhVI3nKGVHrrWRY321GUZ3GQKBgQDzLC96HVGbIQgfGRhW\nu1mcgNKFdQcy8Yu8ffttnuIIPGljwWwLpfbROD+Fe0CtqJ4XXL0Js7XfoPYoxMMH\nc16GysIG9/TYioBhBVfyf94eekylVjdYO0aY7d5Zjw1EuO/LVdPMlSZuosv3q10n\nyB55dJWP6pkR6tLqeNCuJ8+9qQ==\n-----END PRIVATE KEY-----\n",
|
|
||||||
"client_email": "firebase-adminsdk-meacv@vaxandme.iam.gserviceaccount.com",
|
|
||||||
"client_id": "110649794888712776390",
|
|
||||||
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
|
||||||
"token_uri": "https://oauth2.googleapis.com/token",
|
|
||||||
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
|
||||||
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-meacv%40vaxandme.iam.gserviceaccount.com"
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user