func (s *WalkthroughService) walkthroughDeleteHandler() http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { id := hitch.Params(r).ByName("id") db := ab.GetDB(r) abort := false loadFunc := LoadWalkthrough loadFunc = beforeWalkthroughDeleteHandler() if abort { return } entity, err := loadFunc(db, id) ab.MaybeFail(r, http.StatusInternalServerError, ab.ConvertDBError(err, walkthroughDBErrorConverter)) if entity == nil { ab.Fail(r, http.StatusNotFound, nil) } insideWalkthroughDeleteHandler(r, entity, db) if abort { return } err = entity.Delete(db) ab.MaybeFail(r, http.StatusInternalServerError, ab.ConvertDBError(err, walkthroughDBErrorConverter)) // HOOK: afterWalkthroughDeleteHandler() if abort { return } }) }
func (s *UserService) userPutHandler() http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { id := hitch.Params(r).ByName("id") entity := &User{} ab.MustDecode(r, entity) if err := entity.Validate(); entity.UUID != id || err != nil { ab.Fail(r, http.StatusBadRequest, err) } db := ab.GetDB(r) abort := false // HOOK: beforeUserPutUpdateHandler() if abort { return } err := entity.Update(db) ab.MaybeFail(r, http.StatusInternalServerError, ab.ConvertDBError(err, userDBErrorConverter)) // HOOK: afterUserPutUpdateHandler() if abort { return } ab.Render(r).JSON(entity) }) }
func (s *WalkthroughService) walkthroughPutHandler() http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { id := hitch.Params(r).ByName("id") entity := &Walkthrough{} ab.MustDecode(r, entity) if err := entity.Validate(); entity.UUID != id || err != nil { ab.Fail(r, http.StatusBadRequest, err) } db := ab.GetDB(r) abort := false beforeWalkthroughPutUpdateHandler(r, entity, db) if abort { return } err := entity.Update(db) ab.MaybeFail(r, http.StatusInternalServerError, ab.ConvertDBError(err, walkthroughDBErrorConverter)) afterWalkthroughPutUpdateHandler(s, entity) if abort { return } ab.Render(r).JSON(entity) }) }
func (s *UserService) userGetHandler() http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { id := hitch.Params(r).ByName("id") db := ab.GetDB(r) abort := false loadFunc := LoadUser // HOOK: beforeUserGetHandler() if abort { return } entity, err := loadFunc(db, id) ab.MaybeFail(r, http.StatusInternalServerError, ab.ConvertDBError(err, userDBErrorConverter)) if entity == nil { ab.Fail(r, http.StatusNotFound, nil) } // HOOK: afterUserGetHandler() if abort { return } ab.Render(r).JSON(entity) }) }