| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 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,
- Status: 0,
- }
- server.Tasks = append(server.Tasks, &task)
- // Calling it
- w.Write([]byte("Ok"))
- }
|