Genus changes for ember data.

This commit is contained in:
Matthew Dillon 2015-01-11 17:51:45 -09:00
parent 8a72ecae69
commit 8052ab425c
3 changed files with 25 additions and 16 deletions

View file

@ -22,17 +22,17 @@ func serveGenus(w http.ResponseWriter, r *http.Request) error {
return err return err
} }
return writeJSON(w, genus) return writeJSON(w, models.GenusJSON{Genus: genus})
} }
func serveCreateGenus(w http.ResponseWriter, r *http.Request) error { func serveCreateGenus(w http.ResponseWriter, r *http.Request) error {
var genus models.Genus var genus models.GenusJSON
err := json.NewDecoder(r.Body).Decode(&genus) err := json.NewDecoder(r.Body).Decode(&genus)
if err != nil { if err != nil {
return err return err
} }
created, err := store.Genera.Create(&genus) created, err := store.Genera.Create(genus.Genus)
if err != nil { if err != nil {
return err return err
} }
@ -57,18 +57,18 @@ func serveGenera(w http.ResponseWriter, r *http.Request) error {
genera = []*models.Genus{} genera = []*models.Genus{}
} }
return writeJSON(w, genera) return writeJSON(w, models.GeneraJSON{Genera: genera})
} }
func serveUpdateGenus(w http.ResponseWriter, r *http.Request) error { func serveUpdateGenus(w http.ResponseWriter, r *http.Request) error {
id, _ := strconv.ParseInt(mux.Vars(r)["Id"], 10, 0) id, _ := strconv.ParseInt(mux.Vars(r)["Id"], 10, 0)
var genus models.Genus var genus models.GenusJSON
err := json.NewDecoder(r.Body).Decode(&genus) err := json.NewDecoder(r.Body).Decode(&genus)
if err != nil { if err != nil {
return err return err
} }
updated, err := store.Genera.Update(id, &genus) updated, err := store.Genera.Update(id, genus.Genus)
if err != nil { if err != nil {
return err return err
} }

View file

@ -19,6 +19,14 @@ type Genus struct {
DeletedAt NullTime `db:"deleted_at" json:"deletedAt"` DeletedAt NullTime `db:"deleted_at" json:"deletedAt"`
} }
type GenusJSON struct {
Genus *Genus `json:"genus"`
}
type GeneraJSON struct {
Genera []*Genus `json:"genera"`
}
func (m *Genus) String() string { func (m *Genus) String() string {
return fmt.Sprintf("%v", *m) return fmt.Sprintf("%v", *m)
} }
@ -68,13 +76,13 @@ func (s *generaService) Get(id int64) (*Genus, error) {
return nil, err return nil, err
} }
var genus *Genus var genus *GenusJSON
_, err = s.client.Do(req, &genus) _, err = s.client.Do(req, &genus)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return genus, nil return genus.Genus, nil
} }
func (s *generaService) Create(genus *Genus) (bool, error) { func (s *generaService) Create(genus *Genus) (bool, error) {
@ -83,7 +91,7 @@ func (s *generaService) Create(genus *Genus) (bool, error) {
return false, err return false, err
} }
req, err := s.client.NewRequest("POST", url.String(), genus) req, err := s.client.NewRequest("POST", url.String(), GenusJSON{Genus: genus})
if err != nil { if err != nil {
return false, err return false, err
} }
@ -111,13 +119,13 @@ func (s *generaService) List(opt *GenusListOptions) ([]*Genus, error) {
return nil, err return nil, err
} }
var genera []*Genus var genera *GeneraJSON
_, err = s.client.Do(req, &genera) _, err = s.client.Do(req, &genera)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return genera, nil return genera.Genera, nil
} }
func (s *generaService) Update(id int64, genus *Genus) (bool, error) { func (s *generaService) Update(id int64, genus *Genus) (bool, error) {
@ -128,7 +136,7 @@ func (s *generaService) Update(id int64, genus *Genus) (bool, error) {
return false, err return false, err
} }
req, err := s.client.NewRequest("PUT", url.String(), genus) req, err := s.client.NewRequest("PUT", url.String(), GenusJSON{Genus: genus})
if err != nil { if err != nil {
return false, err return false, err
} }

View file

@ -25,7 +25,7 @@ func TestGeneraService_Get(t *testing.T) {
called = true called = true
testMethod(t, r, "GET") testMethod(t, r, "GET")
writeJSON(w, want) writeJSON(w, GenusJSON{Genus: want})
}) })
genus, err := client.Genera.Get(want.Id) genus, err := client.Genera.Get(want.Id)
@ -54,7 +54,7 @@ func TestGeneraService_Create(t *testing.T) {
mux.HandleFunc(urlPath(t, router.CreateGenus, nil), func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc(urlPath(t, router.CreateGenus, 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,"genusName":"Test Genus","createdAt":"0001-01-01T00:00:00Z","updatedAt":"0001-01-01T00:00:00Z","deletedAt":null}`+"\n") testBody(t, r, `{"genus":{"id":1,"genusName":"Test Genus","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)
@ -93,7 +93,7 @@ func TestGeneraService_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, GeneraJSON{Genera: want})
}) })
genera, err := client.Genera.List(nil) genera, err := client.Genera.List(nil)
@ -124,7 +124,7 @@ func TestGeneraService_Update(t *testing.T) {
mux.HandleFunc(urlPath(t, router.UpdateGenus, map[string]string{"Id": "1"}), func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc(urlPath(t, router.UpdateGenus, map[string]string{"Id": "1"}), func(w http.ResponseWriter, r *http.Request) {
called = true called = true
testMethod(t, r, "PUT") testMethod(t, r, "PUT")
testBody(t, r, `{"id":1,"genusName":"Test Genus Updated","createdAt":"0001-01-01T00:00:00Z","updatedAt":"0001-01-01T00:00:00Z","deletedAt":null}`+"\n") testBody(t, r, `{"genus":{"id":1,"genusName":"Test Genus Updated","createdAt":"0001-01-01T00:00:00Z","updatedAt":"0001-01-01T00:00:00Z","deletedAt":null}}`+"\n")
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
writeJSON(w, want) writeJSON(w, want)
@ -156,6 +156,7 @@ func TestGeneraService_Delete(t *testing.T) {
mux.HandleFunc(urlPath(t, router.DeleteGenus, map[string]string{"Id": "1"}), func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc(urlPath(t, router.DeleteGenus, map[string]string{"Id": "1"}), func(w http.ResponseWriter, r *http.Request) {
called = true called = true
testMethod(t, r, "DELETE") testMethod(t, r, "DELETE")
testBody(t, r, "")
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
writeJSON(w, want) writeJSON(w, want)