versia-go/internal/handlers/meta_handler/handler.go
2024-09-22 03:58:42 +02:00

38 lines
1,012 B
Go

package meta_handler
import (
"github.com/go-logr/logr"
"github.com/gofiber/fiber/v2"
"github.com/versia-pub/versia-go/internal/config"
"github.com/versia-pub/versia-go/internal/service"
"github.com/versia-pub/versia-go/pkg/webfinger"
)
type Handler struct {
instanceMetadataService service.InstanceMetadataService
hostMeta webfinger.HostMeta
log logr.Logger
}
func New(instanceMetadataService service.InstanceMetadataService, log logr.Logger) *Handler {
return &Handler{
instanceMetadataService: instanceMetadataService,
hostMeta: webfinger.NewHostMeta(config.C.PublicAddress),
log: log.WithName("users"),
}
}
func (i *Handler) Register(r fiber.Router) {
r.Get("/.well-known/versia", i.GetVersiaInstanceMetadata)
r.Get("/.well-known/versia/admins", i.GetVersiaInstanceMetadata)
r.Get("/.well-known/versia/moderators", i.GetVersiaInstanceMetadata)
// Webfinger host meta spec
r.Get("/.well-known/host-meta", i.GetHostMeta)
r.Get("/.well-known/host-meta.json", i.GetHostMetaJSON)
}