diff --git a/src/App.tsx b/src/App.tsx index c330ada3..37a21efa 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 { useJobId, useJobLogs, @@ -48,53 +46,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 ) => { - 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: RequestInfo = 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 14474031..d6c630cd 100644 --- a/src/utils/firebase.ts +++ b/src/utils/firebase.ts @@ -8,7 +8,6 @@ import { documentId, QuerySnapshot, DocumentData, - setDoc, doc, Timestamp, deleteDoc, @@ -228,10 +227,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 = [ @@ -275,7 +270,6 @@ export { queryDocumentById, getDocsByIds, getJobStatus, - addRecipe, docCleanup, getRecipeManifestFromFirebase, getRecipeDataFromFirebase,