package server import ( "fmt" "net/http" ) func (server *Server) addTask(w http.ResponseWriter, r *http.Request) { var valid bool = true if r.Method != http.MethodPost { http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) return } if err := r.ParseForm(); err != nil { fmt.Fprintf(w, "ERROR: Failed ParseForm() err: %v", err) return } //fmt.Println(r.PostForm) // Validate r.PostForm["rows"] // Look at flags.validateRow() // 1. Make sure the rows is 9 in length if len(r.PostForm["rows"]) != 9 { fmt.Fprintf(w, "ERROR: There aren't 9 rows") return } // 2. Validate the row for _, value := range r.PostForm["rows"] { if !server.validateRow(value) { valid = false } } // Go/No-Go moment if !valid { w.Write([]byte("ERROR found")) return } // Add the task var puzzle [9]string puzzle[0] = r.PostForm["rows"][0] puzzle[1] = r.PostForm["rows"][1] puzzle[2] = r.PostForm["rows"][2] puzzle[3] = r.PostForm["rows"][3] puzzle[4] = r.PostForm["rows"][4] puzzle[5] = r.PostForm["rows"][5] puzzle[6] = r.PostForm["rows"][6] puzzle[7] = r.PostForm["rows"][7] puzzle[8] = r.PostForm["rows"][8] // Create task and chuck it in the server struct task := Task{Puzzle: puzzle} server.Tasks = append(server.Tasks, &task) // Calling it w.Write([]byte("Ok")) }