// TODO: READ AND UNDERSTAND + ALTER package main import ( "context" "encoding/json" "net/http" ) // GET /users func getUsers(w http.ResponseWriter, r *http.Request) { rows, err := db.Query(context.Background(), "SELECT id, name FROM users") if err != nil { http.Error(w, err.Error(), 500) return } defer rows.Close() var users []User for rows.Next() { var u User rows.Scan(&u.ID, &u.Name) users = append(users, u) } w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(users) } // POST /users func createUser(w http.ResponseWriter, r *http.Request) { var u User err := json.NewDecoder(r.Body).Decode(&u) if err != nil { http.Error(w, "Invalid JSON", 400) return } err = db.QueryRow( context.Background(), "INSERT INTO users(name) VALUES($1) RETURNING id", u.Name, ).Scan(&u.ID) if err != nil { http.Error(w, err.Error(), 500) return } w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(u) }