package buildbucket_taskbackend

import (
	"net/http"

	buildbucketpb "go.chromium.org/luci/buildbucket/proto"
	"go.chromium.org/luci/grpc/prpc"
	"go.chromium.org/luci/server/router"
	"go.skia.org/infra/go/buildbucket"
	"go.skia.org/infra/task_scheduler/go/db"
)

// HandlerWith creates an http.Handler which uses the given TaskBackend instance
// to serve TaskBackend HTTP endpoints.
func HandlerWith(tb *TaskBackend) http.Handler {
	srv := &prpc.Server{}
	buildbucketpb.RegisterTaskBackendServer(srv, tb)
	r := router.New()
	srv.InstallHandlers(r, nil)
	return r
}

// Handler creates an http.Handler which serves TaskBackend HTTP endpoints.
func Handler(buildbucketTarget, taskSchedulerHost string, projectRepoMapping map[string]string, d db.JobDB, bb2 buildbucket.BuildBucketInterface) http.Handler {
	return HandlerWith(NewTaskBackend(buildbucketTarget, taskSchedulerHost, projectRepoMapping, d, bb2))
}
