func main() { logger.Log("Hello") r := httprouter.New() uc := controllers.NewUserController(getSession()) r.GET("/user/:id", uc.GetUser) r.POST("/user", uc.CreateUser) r.DELETE("/user/:id", uc.RemoveUser) http.ListenAndServe("localhost:3000", r) }
func (uc UserController) CreateUser(w http.ResponseWriter, r *http.Request, p httprouter.Params) { u := models.User{} json.NewDecoder(r.Body).Decode(&u) u.Id = bson.NewObjectId() logger.Log("Creating user: "******"go_rest_tutorial").C("users").Insert(u) uj, _ := json.Marshal(u) w.Header().Set("Content-Type", "application/json") w.WriteHeader(201) fmt.Fprintf(w, "%s", uj) }
func (uc UserController) RemoveUser(w http.ResponseWriter, r *http.Request, p httprouter.Params) { id := p.ByName("id") logger.Log("Removing user: "******"go_rest_tutorial").C("users").RemoveId(oid); err != nil { w.WriteHeader(404) return } w.WriteHeader(200) }
func (uc UserController) GetUser(w http.ResponseWriter, r *http.Request, p httprouter.Params) { id := p.ByName("id") logger.Log("Getting user: "******"go_rest_tutorial").C("users").FindId(oid).One(&u); err != nil { w.WriteHeader(404) return } uj, _ := json.Marshal(u) w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) fmt.Fprintf(w, "%s", uj) }