func bindBucket(ctx context.Context, r render.Render, gc *gin.Context, db database.Database) { bucketId := gc.Param("bucket_id") bucket, err := db.GetBucket(bucketId) if err != nil && err.EntityNotFound() { // Don't log this error to Sentry // Changes will hit this endpoint for non-existant buckets very often. api.RespondWithErrorf(ctx, r, http.StatusNotFound, "Bucket not found") gc.Abort() return } if err != nil { api.LogAndRespondWithError(ctx, r, http.StatusInternalServerError, err) gc.Abort() return } if bucket == nil { api.LogAndRespondWithErrorf(ctx, r, http.StatusBadRequest, "Got nil bucket without error for bucket: %s", bucketId) gc.Abort() return } gc.Set("bucket", bucket) }
func CreateBucket(db database.Database, clk common.Clock, bucketId string, owner string) (*model.Bucket, *HttpError) { if bucketId == "" { return nil, NewHttpError(http.StatusBadRequest, "Bucket ID not provided") } if len(owner) == 0 { return nil, NewHttpError(http.StatusBadRequest, "Bucket Owner not provided") } _, err := db.GetBucket(bucketId) if err != nil && !err.EntityNotFound() { return nil, NewWrappedHttpError(http.StatusInternalServerError, err) } if err == nil { return nil, NewHttpError(http.StatusBadRequest, "Entity exists") } var bucket model.Bucket bucket.Id = bucketId bucket.DateCreated = clk.Now() bucket.State = model.OPEN bucket.Owner = owner if err := db.InsertBucket(&bucket); err != nil { return nil, NewWrappedHttpError(http.StatusBadRequest, err) } return &bucket, nil }
func bindBucket(w http.ResponseWriter, r render.Render, c martini.Context, params martini.Params, db database.Database) { bucket, err := db.GetBucket(params["bucket_id"]) if bucket == nil { api.JsonErrorf(r, http.StatusBadRequest, err.Error()) return } c.Map(bucket) if err != nil && err.EntityNotFound() { api.JsonErrorf(r, http.StatusBadRequest, "Bucket not found") return } if err != nil { api.JsonErrorf(r, http.StatusInternalServerError, "Database failure while trying to fetch bucket instance: %s", err.Error()) } }