diff options
-rw-r--r-- | backend/main.go | 2 | ||||
-rw-r--r-- | backend/recipe.go | 27 |
2 files changed, 13 insertions, 16 deletions
diff --git a/backend/main.go b/backend/main.go index b4cd76f..856cd80 100644 --- a/backend/main.go +++ b/backend/main.go @@ -173,7 +173,7 @@ func SingleRecipe(w http.ResponseWriter, r *http.Request) { var status int var msg string - if res.RowsAffected() == 0 { + if ra, _ := res.RowsAffected(); ra == 0 { status = http.StatusNotFound msg = "Recipe Not found" } else { diff --git a/backend/recipe.go b/backend/recipe.go index e14c79b..fc34ba7 100644 --- a/backend/recipe.go +++ b/backend/recipe.go @@ -158,42 +158,39 @@ func AddRecipeDB(r *Recipe, db *sql.DB) error { r.Rating, //7 r.Num_cooked, //8 ).Scan(&id) - if err != nil { return err } - var ingr_id int for i, ingr := range r.Ingredients { - err := db.QueryRow(`INSERT INTO ingredients + res, err := db.Exec(`INSERT INTO ingredients (name, amount, unit, recipe_id) - VALUES ($1, $2, $3, $4) - RETURNING id`, + VALUES ($1, $2, $3, $4)`, ingr.Name, ingr.Amount, ingr.Unit, id, - ).Scan(&ingr_id) - if err != nil { + ) + + if ra, _ := res.RowsAffected(); ra == 0 || err != nil { r.Ingredients = append(r.Ingredients[:i], r.Ingredients[i+1:]...) } } - var step_id int for i, step := range r.Steps { - err := db.QueryRow(`INSERT INTO steps + res, err := db.Exec(`INSERT INTO steps (step, description, timer, recipe_id) - VALUES ($1, $2, $3, $4) - RETURNING id`, + VALUES ($1, $2, $3, $4)`, step.Num, step.Desc, step.Time, id, - ).Scan(&step_id) - if err != nil { - r.Steps = append(r.Steps[:i], - r.Steps[i+1:]...) + ) + + if ra, _ := res.RowsAffected(); ra == 0 || err != nil { + r.Ingredients = append(r.Ingredients[:i], + r.Ingredients[i+1:]...) } } |