Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,278 changes: 713 additions & 565 deletions demo_backend/functions/package-lock.json

Large diffs are not rendered by default.

11 changes: 5 additions & 6 deletions demo_backend/functions/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,19 @@
},
"main": "lib/src/index.js",
"dependencies": {
"@elastic/elasticsearch": "^8.13.0",
"@google-cloud/firestore": "^7.11.0",
"algoliasearch": "^4.23.2",
"@elastic/elasticsearch": "^9.4.2",
"@google-cloud/firestore": "^8.7.0",
"algoliasearch": "^5.56.0",
"axios": "^1.18.1",
"cors": "^2.8.5",
"dotenv": "^17.4.2",
"express": "^4.22.2",
"fast-csv": "^4.3.6",
"firebase-admin": "^13.0.0",
"firebase-functions": "^6.6.0",
"firebase-admin": "^14.2.0",
"firebase-functions": "^7.3.2",
"firebase-tools": "^15.22.0",
"md5": "^2.3.0",
"meilisearch": "^0.32.5",
"node-fetch": "^2.6.1",
"typesense": "^1.7.2"
},
"devDependencies": {
Expand Down
4 changes: 2 additions & 2 deletions demo_backend/functions/scripts/addLikedProducts.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import * as admin from "firebase-admin";
import { getFirestore } from "firebase-admin/firestore";
import { initServiceAccountFirestore } from "./util";

initServiceAccountFirestore(true);

const firestore = admin.firestore();
const firestore = getFirestore();

function getRandomInt(max: number) {
return Math.floor(Math.random() * max);
Expand Down
4 changes: 2 additions & 2 deletions demo_backend/functions/scripts/delete_blog_posts.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import * as admin from "firebase-admin";
import { getFirestore } from "firebase-admin/firestore";

import { initServiceAccountFirestore } from "./util";

initServiceAccountFirestore(true);

const firestore = admin.firestore();
const firestore = getFirestore();
firestore.collection("/blog")
.where("status", "==", "draft")
.get()
Expand Down
4 changes: 2 additions & 2 deletions demo_backend/functions/scripts/generateBooks.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import * as admin from "firebase-admin";
import { getFirestore } from "firebase-admin/firestore";
import { initServiceAccountFirestore } from "./util";
const crypto = require('crypto');


initServiceAccountFirestore(true);

const firestore = admin.firestore();
const firestore = getFirestore();

// const categories = new Set<string>();
// const catMap: Record<string, any> = {};
Expand Down
4 changes: 2 additions & 2 deletions demo_backend/functions/scripts/generateUsers.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import * as admin from "firebase-admin";
import { getFirestore } from "firebase-admin/firestore";
import axios from "axios";
import { initServiceAccountFirestore } from "./util";

initServiceAccountFirestore(true);

const firestore = admin.firestore();
const firestore = getFirestore();

const generateUsers = async () => {
const url = `https://randomuser.me/api/?results=500`;
Expand Down
4 changes: 2 additions & 2 deletions demo_backend/functions/scripts/index_algolia.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import * as admin from "firebase-admin";
import { getFirestore } from "firebase-admin/firestore";
import * as dotenv from "dotenv";

dotenv.config();
Expand All @@ -7,7 +7,7 @@ import {indexInAlgolia} from "../src/indexing/algolia";

initServiceAccountFirestore(true);

const firestore = admin.firestore();
const firestore = getFirestore();
firestore.collection("/blog")
.get()
.then((snapshot) =>
Expand Down
4 changes: 2 additions & 2 deletions demo_backend/functions/scripts/index_elasticsearch.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import * as admin from "firebase-admin";
import { getFirestore } from "firebase-admin/firestore";
import * as dotenv from "dotenv";

dotenv.config();
Expand All @@ -7,7 +7,7 @@ import { indexInElasticSearch } from "../src/indexing/elasticsearch";

initServiceAccountFirestore(true);

const firestore = admin.firestore();
const firestore = getFirestore();
// firestore.collection("/blog")
// .get()
// .then(async (snapshot) => {
Expand Down
4 changes: 2 additions & 2 deletions demo_backend/functions/scripts/index_typesense.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import * as admin from "firebase-admin";
import { getFirestore } from "firebase-admin/firestore";
import * as dotenv from "dotenv";
dotenv.config();

Expand All @@ -8,7 +8,7 @@ import { createSchemaInTypesense, indexInTypesense } from "../src/indexing/types

initServiceAccountFirestore(true);

const firestore = admin.firestore();
const firestore = getFirestore();
createSchemaInTypesense("products");

firestore.collection("products")
Expand Down
4 changes: 2 additions & 2 deletions demo_backend/functions/scripts/listBooks.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import * as admin from "firebase-admin";
import { getFirestore } from "firebase-admin/firestore";
import axios from "axios";
import { initServiceAccountFirestore } from "./util";
const fs = require("fs");

initServiceAccountFirestore(true);

const firestore = admin.firestore();
const firestore = getFirestore();

const categories = new Set<string>();
const catMap: Record<string, any> = {};
Expand Down
4 changes: 2 additions & 2 deletions demo_backend/functions/scripts/listProducts.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import * as admin from "firebase-admin";
import { getFirestore } from "firebase-admin/firestore";
import { initServiceAccountFirestore } from "./util";

initServiceAccountFirestore(true);

const firestore = admin.firestore();
const firestore = getFirestore();

const listProducts = async () => {
if (process.env.NODE_ENV === "production") return;
Expand Down
4 changes: 2 additions & 2 deletions demo_backend/functions/scripts/query_tests.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import * as admin from "firebase-admin";
import { getFirestore } from "firebase-admin/firestore";
import { initServiceAccountFirestore } from "./util";

const fs = require("fs");

initServiceAccountFirestore(true);

const firestore = admin.firestore();
const firestore = getFirestore();

const queryProducts = async () => {
firestore
Expand Down
12 changes: 5 additions & 7 deletions demo_backend/functions/scripts/util.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import * as admin from "firebase-admin";
import { cert, initializeApp } from "firebase-admin/app";
import { getFirestore } from "firebase-admin/firestore";

export function initServiceAccountFirestore(prod: boolean = false) {

Expand All @@ -7,12 +8,9 @@ export function initServiceAccountFirestore(prod: boolean = false) {
// you may need to create this file from the cloud console
const serviceAccount = require("../../../../firecms-demo-27150-dbdddbfce101.json");

admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
initializeApp({
credential: cert(serviceAccount)
});

const fs = admin.firestore();
const settings = { timestampsInSnapshots: true };
fs.settings(settings);
return fs;
return getFirestore();
}
5 changes: 1 addition & 4 deletions demo_backend/functions/src/crypto.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import * as functions from "firebase-functions/v1";
import { getFirestore, FieldValue, WriteResult } from "firebase-admin/firestore";
// @ts-ignore
import fetch from "node-fetch";

type SymbolData = {
usd: number;
Expand All @@ -17,8 +15,7 @@ async function fetchMultipleSymbolsData(ids: string[]): Promise<Record<string, S
throw new Error(`Error fetching data from CoinGecko: ${response.statusText}`);
}

// @ts-ignore
const data: MultipleCryptoPriceResponse = await response.json();
const data = await response.json() as MultipleCryptoPriceResponse;
const result: Record<string, SymbolData> = {};

ids.forEach(id => {
Expand Down
14 changes: 9 additions & 5 deletions demo_backend/functions/src/indexing/algolia.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import algoliasearch from "algoliasearch";
import { algoliasearch } from "algoliasearch";

const ALGOLIA_ID = process?.env?.ALGOLIA_APP_ID;
const ALGOLIA_ADMIN_KEY = process?.env?.ALGOLIA_API_KEY;
Expand All @@ -8,8 +8,10 @@ export function indexInAlgolia(indexName: string, data: any, id: string) {
if (!client) return;
const entry = { ...data };
entry.objectID = id;
const index = client.initIndex(indexName);
return index.saveObject(entry).then((res) => {
return client.saveObject({
indexName,
body: entry
}).then((res) => {
console.debug("Indexed object in", indexName, res);
return res;
});
Expand All @@ -18,8 +20,10 @@ export function indexInAlgolia(indexName: string, data: any, id: string) {
export function deleteInAlgolia(indexName: string, id: string) {
const client = ALGOLIA_ID && ALGOLIA_ADMIN_KEY ? algoliasearch(ALGOLIA_ID, ALGOLIA_ADMIN_KEY) : undefined;
if (!client) return;
const index = client.initIndex(indexName);
return index.deleteObject(id).then((res) => {
return client.deleteObject({
indexName,
objectID: id
}).then((res) => {
console.debug("Deleted from index", indexName, res);
return res;
});
Expand Down
10 changes: 4 additions & 6 deletions demo_backend/functions/src/indexing/elasticsearch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export function indexInElasticSearch(indexName: string, data: any, id: string) {
return client.index({
index: indexName,
id,
body: data
document: data
})
}

Expand All @@ -26,11 +26,9 @@ export function deleteInElasticSearch(indexName: string, id: string) {
export function searchInElasticSearch(indexName: string, query: any) {
return client.search({
index: indexName,
body: {
query: {
query_string: {
query
}
query: {
query_string: {
query
}
}
})
Expand Down
Loading