User creation, DB transactions, createdb flag changes.
This commit is contained in:
parent
e1685bd32b
commit
c0b54d821e
11 changed files with 213 additions and 9 deletions
|
@ -19,6 +19,7 @@ var (
|
|||
func Handler() *mux.Router {
|
||||
m := router.API()
|
||||
m.Get(router.User).Handler(handler(serveUser))
|
||||
m.Get(router.CreateUser).Handler(handler(serveCreateUser))
|
||||
m.Get(router.Users).Handler(handler(serveUsers))
|
||||
return m
|
||||
}
|
||||
|
|
19
api/users.go
19
api/users.go
|
@ -1,6 +1,7 @@
|
|||
package api
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"strconv"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
|
@ -24,6 +25,24 @@ func serveUser(w http.ResponseWriter, r *http.Request) error {
|
|||
return writeJSON(w, user)
|
||||
}
|
||||
|
||||
func serveCreateUser(w http.ResponseWriter, r *http.Request) error {
|
||||
var user models.User
|
||||
err := json.NewDecoder(r.Body).Decode(&user)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
created, err := store.Users.Create(&user)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if created {
|
||||
w.WriteHeader(http.StatusCreated)
|
||||
}
|
||||
|
||||
return writeJSON(w, user)
|
||||
}
|
||||
|
||||
func serveUsers(w http.ResponseWriter, r *http.Request) error {
|
||||
var opt models.UserListOptions
|
||||
if err := schemaDecoder.Decode(&opt, r.URL.Query()); err != nil {
|
||||
|
|
Reference in a new issue