package application import ( "fmt" "net/http" "path" "sirlab.de/go/knyt/user" ) func (app *Application) SaveQuote(usr *user.User, w http.ResponseWriter, r *http.Request) { gameRef := r.URL.Query().Get("g") gm, err := app.GetGameById(gameRef) if err != nil { w.WriteHeader(http.StatusNotFound) fmt.Fprintf(w, "game not found") return } if usr.GetGameId() != gameRef || !usr.IsGamemaster() { w.WriteHeader(http.StatusForbidden) fmt.Fprintf(w, "forbidden") return } quoteId := r.URL.Query().Get("id") quoteText := r.URL.Query().Get("quote") gameDirName := path.Join(app.config.DataDir, "games", gm.GetId()) quoteFileNameShort := quoteId + ".json" quoteFileName := path.Join(gameDirName, "quotes", quoteFileNameShort) err2 := gm.SaveQuote( quoteFileName, usr.GetId(), quoteId, quoteText, ) if err2 != nil { fmt.Printf("%s\n", err) w.WriteHeader(http.StatusForbidden) fmt.Fprintf(w, "forbidden") return } fmt.Fprintf(w, "ok") }