User changes for ember data.

This commit is contained in:
Matthew Dillon 2015-01-12 08:51:47 -09:00
parent 8052ab425c
commit 980367e527
3 changed files with 20 additions and 12 deletions

View file

@ -24,17 +24,17 @@ func serveUser(w http.ResponseWriter, r *http.Request) error {
return err return err
} }
return writeJSON(w, user) return writeJSON(w, models.UserJSON{user})
} }
func serveCreateUser(w http.ResponseWriter, r *http.Request) error { func serveCreateUser(w http.ResponseWriter, r *http.Request) error {
var user models.User var user models.UserJSON
err := json.NewDecoder(r.Body).Decode(&user) err := json.NewDecoder(r.Body).Decode(&user)
if err != nil { if err != nil {
return err return err
} }
created, err := store.Users.Create(&user) created, err := store.Users.Create(user.User)
if err != nil { if err != nil {
return err return err
} }
@ -59,7 +59,7 @@ func serveUsers(w http.ResponseWriter, r *http.Request) error {
users = []*models.User{} users = []*models.User{}
} }
return writeJSON(w, users) return writeJSON(w, models.UsersJSON{Users: users})
} }
func serveAuthenticateUser(w http.ResponseWriter, r *http.Request) error { func serveAuthenticateUser(w http.ResponseWriter, r *http.Request) error {

View file

@ -21,6 +21,14 @@ type User struct {
DeletedAt NullTime `db:"deleted_at" json:"deletedAt"` DeletedAt NullTime `db:"deleted_at" json:"deletedAt"`
} }
type UserJSON struct {
User *User `json:"user"`
}
type UsersJSON struct {
Users []*User `json:"users"`
}
func (m *User) String() string { func (m *User) String() string {
return fmt.Sprintf("%v", *m) return fmt.Sprintf("%v", *m)
} }
@ -72,13 +80,13 @@ func (s *usersService) Get(id int64) (*User, error) {
return nil, err return nil, err
} }
var user *User var user *UserJSON
_, err = s.client.Do(req, &user) _, err = s.client.Do(req, &user)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return user, nil return user.User, nil
} }
func (s *usersService) Create(user *User) (bool, error) { func (s *usersService) Create(user *User) (bool, error) {
@ -87,7 +95,7 @@ func (s *usersService) Create(user *User) (bool, error) {
return false, err return false, err
} }
req, err := s.client.NewRequest("POST", url.String(), user) req, err := s.client.NewRequest("POST", url.String(), UserJSON{User: user})
if err != nil { if err != nil {
return false, err return false, err
} }
@ -115,13 +123,13 @@ func (s *usersService) List(opt *UserListOptions) ([]*User, error) {
return nil, err return nil, err
} }
var users []*User var users *UsersJSON
_, err = s.client.Do(req, &users) _, err = s.client.Do(req, &users)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return users, nil return users.Users, nil
} }
func (s *usersService) Authenticate(username string, password string) (*UserSession, error) { func (s *usersService) Authenticate(username string, password string) (*UserSession, error) {

View file

@ -25,7 +25,7 @@ func TestUsersService_Get(t *testing.T) {
called = true called = true
testMethod(t, r, "GET") testMethod(t, r, "GET")
writeJSON(w, want) writeJSON(w, UserJSON{User: want})
}) })
user, err := client.Users.Get(1) user, err := client.Users.Get(1)
@ -54,7 +54,7 @@ func TestUsersService_Create(t *testing.T) {
mux.HandleFunc(urlPath(t, router.CreateUser, nil), func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc(urlPath(t, router.CreateUser, nil), func(w http.ResponseWriter, r *http.Request) {
called = true called = true
testMethod(t, r, "POST") testMethod(t, r, "POST")
testBody(t, r, `{"id":1,"username":"Test User","createdAt":"0001-01-01T00:00:00Z","updatedAt":"0001-01-01T00:00:00Z","deletedAt":null}`+"\n") testBody(t, r, `{"user":{"id":1,"username":"Test User","createdAt":"0001-01-01T00:00:00Z","updatedAt":"0001-01-01T00:00:00Z","deletedAt":null}}`+"\n")
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
writeJSON(w, want) writeJSON(w, want)
@ -92,7 +92,7 @@ func TestUsersService_List(t *testing.T) {
testMethod(t, r, "GET") testMethod(t, r, "GET")
testFormValues(t, r, values{}) testFormValues(t, r, values{})
writeJSON(w, want) writeJSON(w, UsersJSON{Users: want})
}) })
users, err := client.Users.List(nil) users, err := client.Users.List(nil)