Subroutes: strains

This commit is contained in:
Matthew Dillon 2015-01-08 16:15:31 -09:00
parent 7b7f519c01
commit b5af05de9d
8 changed files with 95 additions and 13 deletions

View file

@ -71,6 +71,7 @@ func Handler() *mux.Router {
m.Get(router.DeleteMeasurement).Handler(handler(serveDeleteMeasurement))
m.Get(router.SubrouterListSpecies).Handler(authHandler(serveSubrouterSpeciesList))
m.Get(router.SubrouterListStrains).Handler(authHandler(serveSubrouterStrainsList))
return m
}

View file

@ -90,3 +90,22 @@ func serveDeleteStrain(w http.ResponseWriter, r *http.Request) error {
return writeJSON(w, &models.Strain{})
}
func serveSubrouterStrainsList(w http.ResponseWriter, r *http.Request) error {
var opt models.StrainListOptions
if err := schemaDecoder.Decode(&opt, r.URL.Query()); err != nil {
return err
}
opt.Genus = mux.Vars(r)["genus"]
strains, err := store.Strains.List(&opt)
if err != nil {
return err
}
if strains == nil {
strains = []*models.Strain{}
}
return writeJSON(w, strains)
}