func appDelete(w http.ResponseWriter, r *http.Request, t auth.Token) error { u, err := t.User() if err != nil { return err } rec.Log(u.Email, "app-delete", "app="+r.URL.Query().Get(":app")) a, err := getApp(r.URL.Query().Get(":app"), u, r) if err != nil { return err } context.SetPreventUnlock(r) app.Delete(&a) fmt.Fprint(w, "success") return nil }
func removeUnits(w http.ResponseWriter, r *http.Request, t auth.Token) error { n, err := numberOfUnits(r) if err != nil { return err } u, err := t.User() if err != nil { return err } appName := r.URL.Query().Get(":app") rec.Log(u.Email, "remove-units", "app="+appName, fmt.Sprintf("units=%d", n)) app, err := getApp(appName, u) if err != nil { return err } context.SetPreventUnlock(r) return app.RemoveUnits(uint(n)) }
func (s *S) TestAppLockMiddlewareWithPreventUnlock(c *check.C) { myApp := app.App{ Name: "my-app", } err := s.conn.Apps().Insert(myApp) c.Assert(err, check.IsNil) defer s.conn.Apps().Remove(bson.M{"name": myApp.Name}) recorder := httptest.NewRecorder() request, err := http.NewRequest("POST", "/?:app=my-app", nil) c.Assert(err, check.IsNil) called := false context.SetPreventUnlock(request) m := &appLockMiddleware{} m.ServeHTTP(recorder, request, func(w http.ResponseWriter, r *http.Request) { a, err := app.GetByName(request.URL.Query().Get(":app")) c.Assert(err, check.IsNil) c.Assert(a.Lock.Locked, check.Equals, true) called = true }) c.Assert(called, check.Equals, true) a, err := app.GetByName(request.URL.Query().Get(":app")) c.Assert(err, check.IsNil) c.Assert(a.Lock.Locked, check.Equals, true) }