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 writeJSON(w, user)
return writeJSON(w, models.UserJSON{user})
}
func serveCreateUser(w http.ResponseWriter, r *http.Request) error {
var user models.User
var user models.UserJSON
err := json.NewDecoder(r.Body).Decode(&user)
if err != nil {
return err
}
created, err := store.Users.Create(&user)
created, err := store.Users.Create(user.User)
if err != nil {
return err
}
@ -59,7 +59,7 @@ func serveUsers(w http.ResponseWriter, r *http.Request) error {
users = []*models.User{}
}
return writeJSON(w, users)
return writeJSON(w, models.UsersJSON{Users: users})
}
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"`
}
type UserJSON struct {
User *User `json:"user"`
}
type UsersJSON struct {
Users []*User `json:"users"`
}
func (m *User) String() string {
return fmt.Sprintf("%v", *m)
}
@ -72,13 +80,13 @@ func (s *usersService) Get(id int64) (*User, error) {
return nil, err
}
var user *User
var user *UserJSON
_, err = s.client.Do(req, &user)
if err != nil {
return nil, err
}
return user, nil
return user.User, nil
}
func (s *usersService) Create(user *User) (bool, error) {
@ -87,7 +95,7 @@ func (s *usersService) Create(user *User) (bool, error) {
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 {
return false, err
}
@ -115,13 +123,13 @@ func (s *usersService) List(opt *UserListOptions) ([]*User, error) {
return nil, err
}
var users []*User
var users *UsersJSON
_, err = s.client.Do(req, &users)
if err != nil {
return nil, err
}
return users, nil
return users.Users, nil
}
func (s *usersService) Authenticate(username string, password string) (*UserSession, error) {

View file

@ -25,7 +25,7 @@ func TestUsersService_Get(t *testing.T) {
called = true
testMethod(t, r, "GET")
writeJSON(w, want)
writeJSON(w, UserJSON{User: want})
})
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) {
called = true
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)
writeJSON(w, want)
@ -92,7 +92,7 @@ func TestUsersService_List(t *testing.T) {
testMethod(t, r, "GET")
testFormValues(t, r, values{})
writeJSON(w, want)
writeJSON(w, UsersJSON{Users: want})
})
users, err := client.Users.List(nil)