diff --git a/api/controllers/user.go b/api/controllers/user.go index 113fdc0..2f1872b 100644 --- a/api/controllers/user.go +++ b/api/controllers/user.go @@ -30,18 +30,17 @@ func (u User) Get(w http.ResponseWriter, r *http.Request) { w.Header().Add("Content-Type", "application/json") } -// "/user/{userid}" -func (t User) Create(w http.ResponseWriter, r *http.Request) { - username := chi.URLParam(r, "username") - if username == "" { - http.Error(w, "Missing username", http.StatusNotFound) +// "/user" +func (User) Create(w http.ResponseWriter, r *http.Request) { + var user models.User + if err := json.NewDecoder(r.Body).Decode(&user); err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) } - user := models.User{Username: username, Password: "a"} + if user.Create() != nil { http.Error(w, "failed to create user", http.StatusInternalServerError) return } - } // // /users/application/:status/ diff --git a/api/test/controllers/user_test.go b/api/test/controllers/user_test.go index 9329c95..073cd97 100644 --- a/api/test/controllers/user_test.go +++ b/api/test/controllers/user_test.go @@ -5,6 +5,7 @@ import ( "magmise/controllers" "magmise/models" "magmise/test" + "net/http" "testing" ) @@ -23,7 +24,17 @@ func TestGetUser(t *testing.T) { if usermodel.Username != "fred" { t.Fatal(usermodel) } - t.Log(usermodel) +} + +// "/user" +func TestCreateUser(t *testing.T) { + setup := test.Setup(t, "create user") + defer setup() + var user controllers.User + w := test.Request(t, user.Create, "POST", "/user/{username}", `{"username": "fred", "password": "a"}`, nil) + if w.Code != http.StatusOK { + t.Fatal(w.Code, w.Result().Status) + } } // // "/user/application/:userid/:discordid"