chrly/di/handlers.go
2020-04-16 19:42:38 +03:00

42 lines
1.1 KiB
Go

package di
import (
"github.com/goava/di"
"github.com/gorilla/mux"
"github.com/spf13/viper"
"github.com/elyby/chrly/http"
)
var handlers = di.Options(
di.Provide(newSkinsystemHandler, di.WithName("skinsystem")),
)
func newSkinsystemHandler(
config *viper.Viper,
emitter http.Emitter,
skinsRepository http.SkinsRepository,
capesRepository http.CapesRepository,
mojangTexturesProvider http.MojangTexturesProvider,
) *mux.Router {
handlerFactory := &http.Skinsystem{
Emitter: emitter,
SkinsRepo: skinsRepository,
CapesRepo: capesRepository,
MojangTexturesProvider: mojangTexturesProvider,
TexturesExtraParamName: config.GetString("textures.extra_param_name"),
TexturesExtraParamValue: config.GetString("textures.extra_param_value"),
}
return handlerFactory.CreateHandler()
}
// TODO: pin implementation to make it non-configurable
func newUUIDsWorkerHandler(mojangUUIDsProvider http.MojangUuidsProvider) *mux.Router {
handlerFactory := &http.UUIDsWorker{
UUIDsProvider: mojangUUIDsProvider,
}
return handlerFactory.CreateHandler()
}