diff --git a/src/App.tsx b/src/App.tsx index 4b6c0623..877e1bf8 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,10 +1,8 @@ import { useState } from "react"; -import { v4 as uuidv4 } from "uuid"; import { Layout, Typography } from "antd"; -import { getJobStatus, addRecipe } from "./utils/firebase"; +import { getJobStatus } from "./utils/firebase"; import { getFirebaseRecipe, jsonToString } from "./utils/recipeLoader"; import { getSubmitPackingUrl, JOB_STATUS } from "./constants/aws"; -import { FIRESTORE_FIELDS } from "./constants/firebase"; import { SIMULARIUM_EMBED_URL } from "./constants/urls"; import PackingInput from "./components/PackingInput"; import Viewer from "./components/Viewer"; @@ -44,54 +42,25 @@ function App() { return !(jsonToString(originalRecipe) == recipeString); }; - const recipeToFirebase = ( - recipe: string, - path: string, - id: string - ): object => { - const recipeJson = JSON.parse(recipe); - if (recipeJson.bounding_box) { - const flattened_array = Object.assign({}, recipeJson.bounding_box); - recipeJson.bounding_box = flattened_array; - } - recipeJson[FIRESTORE_FIELDS.RECIPE_PATH] = path; - recipeJson[FIRESTORE_FIELDS.NAME] = id; - recipeJson[FIRESTORE_FIELDS.TIMESTAMP] = Date.now(); - return recipeJson; - }; - const submitRecipe = async ( recipeId: string, configId: string, recipeString: string ) => { resetState(); - let firebaseRecipe = "firebase:recipes/" + recipeId; - const firebaseConfig = configId - ? "firebase:configs/" + configId - : undefined; const recipeChanged: boolean = await recipeHasChanged( recipeId, recipeString ); - if (recipeChanged) { - const recipeId = uuidv4(); - firebaseRecipe = "firebase:recipes_edited/" + recipeId; - const recipeJson = recipeToFirebase( - recipeString, - firebaseRecipe, - recipeId - ); - try { - await addRecipe(recipeId, recipeJson); - } catch (e) { - setJobStatus(JOB_STATUS.FAILED); - setJobLogs(String(e)); - return; - } - } + const firebaseRecipe = recipeChanged + ? undefined + : "firebase:recipes/" + recipeId; + const firebaseConfig = configId + ? "firebase:configs/" + configId + : undefined; const url = getSubmitPackingUrl(firebaseRecipe, firebaseConfig); - const request: RequestInfo = new Request(url, { method: "POST" }); + const requestBody = recipeChanged ? recipeString : undefined; + const request = new Request(url, { method: "POST", body: requestBody }); start = Date.now(); const response = await fetch(request); setJobStatus(JOB_STATUS.SUBMITTED); diff --git a/src/constants/aws.ts b/src/constants/aws.ts index 383f18bf..dfb00c9c 100644 --- a/src/constants/aws.ts +++ b/src/constants/aws.ts @@ -5,12 +5,16 @@ const SUBMIT_PACKING_ECS = "https://bda21vau5c.execute-api.us-west-2.amazonaws.c const S3_BASE_URL = "https://s3.us-west-2.amazonaws.com"; export const getSubmitPackingUrl = ( - recipe: string, + recipe?: string, config?: string, ) => { - let url = `${SUBMIT_PACKING_ECS}?recipe=${recipe}`; - if (config) { - url += `&config=${config}`; + let url = SUBMIT_PACKING_ECS; + if (recipe && config) { + url += `?recipe=${recipe}&config=${config}`; + } else if (recipe) { + url += `?recipe=${recipe}`; + } else if (config) { + url += `?config=${config}`; } return url; }; diff --git a/src/utils/firebase.ts b/src/utils/firebase.ts index f8ce4c63..95b5a8c6 100644 --- a/src/utils/firebase.ts +++ b/src/utils/firebase.ts @@ -8,7 +8,6 @@ import { documentId, QuerySnapshot, DocumentData, - setDoc, doc, Timestamp, deleteDoc, @@ -172,10 +171,6 @@ const getDocsByIds = async (coll: string, ids: string[]) => { return docs; } -const addRecipe = async (id: string, data: object) => { - await setDoc(doc(db, FIRESTORE_COLLECTIONS.EDITED_RECIPES, id), data); -} - const docCleanup = async () => { const now = Date.now(); const collectionsToClean = [ @@ -202,4 +197,4 @@ const docCleanup = async () => { console.log(`Cleaned up ${deletePromises.length} documents from ${collectionConfig.name}`); } } -export { db, queryDocumentById, getDocsByIds, getJobStatus, addRecipe, docCleanup, getPackingInputsDict, getOutputsDirectory }; +export { db, queryDocumentById, getDocsByIds, getJobStatus, docCleanup, getPackingInputsDict, getOutputsDirectory };