Pārlūkot izejas kodu

Fix delete handler

Andrea Fazzi 5 gadi atpakaļ
vecāks
revīzija
e591afcecd
1 mainītis faili ar 9 papildinājumiem un 10 dzēšanām
  1. 9 10
      handlers/handlers.go

+ 9 - 10
handlers/handlers.go

@@ -1,6 +1,7 @@
 package handlers
 
 import (
+	"encoding/json"
 	"fmt"
 	"io/ioutil"
 	"log"
@@ -200,7 +201,6 @@ func get(w http.ResponseWriter, r *http.Request, model string, pattern PathPatte
 	if err != nil {
 		respondWithError(w, r, err)
 	} else {
-		log.Println("AFTER REDIRECT:", r.URL)
 		data, err := getFn(mux.Vars(r))
 		if err != nil {
 			renderer.Render[format](w, r, err)
@@ -282,14 +282,13 @@ func delete(w http.ResponseWriter, r *http.Request, model string, pattern PathPa
 	if err != nil {
 		renderer.Render["html"](w, r, err)
 	} else if pattern.RedirectPattern != "" {
-		// if id := mux.Vars(r)["id"]; id != "" {
-		// 	modelId, _ := strconv.Atoi(id)
-		// 	http.Redirect(w, r, pattern.RedirectPath(model, uint(modelId)), http.StatusSeeOther)
-		// } else {
-		// 	http.Redirect(w, r, pattern.RedirectPath(model, data.GetID()), http.StatusSeeOther)
-		// }
-		log.Println("REDIRECT:", pattern.RedirectPath(model))
-		http.Redirect(w, r, pattern.RedirectPath(model), http.StatusSeeOther)
+		var data struct {
+			RedirectUrl string `json:"redirect_url"`
+		}
+		data.RedirectUrl = pattern.RedirectPath(model)
+
+		w.Header().Set("Content-Type", "application/json")
+		json.NewEncoder(w).Encode(data)
 	} else {
 		renderer.Render[respFormat](w, r, data.GetID())
 	}
@@ -299,7 +298,6 @@ func modelHandler(model string, pattern PathPattern) http.Handler {
 	fn := func(w http.ResponseWriter, r *http.Request) {
 		switch r.Method {
 		case "GET":
-			log.Println("AFTER AFTER REDIRECT", model, pattern)
 			get(w, r, model, pattern)
 
 		case "POST":
@@ -307,6 +305,7 @@ func modelHandler(model string, pattern PathPattern) http.Handler {
 
 		case "DELETE":
 			delete(w, r, model, pattern)
+			break
 		}
 	}