// Handles PUT or POST to /username func putUser(r http.ResponseWriter, rq *http.Request, a *auth.Authenticator, username string) error { body, _ := ioutil.ReadAll(rq.Body) var user auth.User err := json.Unmarshal(body, &user) if err != nil { return err } if user.Channels == nil { return &base.HTTPError{http.StatusBadRequest, "Missing channels property"} } if rq.Method == "POST" { username = user.Name if username == "" { return &base.HTTPError{http.StatusBadRequest, "Missing name property"} } } else if user.Name == "" { user.Name = username } else if user.Name != username { return &base.HTTPError{http.StatusBadRequest, "Name mismatch (can't change name)"} } log.Printf("SaveUser: %v", user) //TEMP return a.SaveUser(&user) }