func bindArtifact(ctx context.Context, r render.Render, gc *gin.Context, db database.Database) *model.Artifact { bucketId := gc.Param("bucket_id") artifactName := gc.Param("artifact_name") artifact, err := db.GetArtifactByName(bucketId, artifactName) if err != nil && err.EntityNotFound() { api.LogAndRespondWithErrorf(ctx, r, http.StatusNotFound, "Artifact not found") gc.Abort() return nil } if err != nil { api.LogAndRespondWithError(ctx, r, http.StatusInternalServerError, err) gc.Abort() return nil } if artifact == nil { api.LogAndRespondWithErrorf(ctx, r, http.StatusBadRequest, "Got nil artifact without error for artifact: %s/%s", bucketId, artifactName) gc.Abort() return nil } gc.Set("artifact", artifact) return artifact }
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) }