versia-go/internal/handlers/meta_handler/handler.go

38 lines
1,003 B
Go
Raw Normal View History

2024-08-11 03:51:22 +02:00
package meta_handler
import (
"github.com/go-logr/logr"
"github.com/gofiber/fiber/v2"
"github.com/lysand-org/versia-go/config"
2024-08-20 22:43:26 +02:00
"github.com/lysand-org/versia-go/internal/service"
2024-08-11 03:51:22 +02:00
"github.com/lysand-org/versia-go/pkg/webfinger"
)
type Handler struct {
2024-08-20 22:43:26 +02:00
instanceMetadataService service.InstanceMetadataService
2024-08-11 03:51:22 +02:00
hostMeta webfinger.HostMeta
log logr.Logger
}
2024-08-20 22:43:26 +02:00
func New(instanceMetadataService service.InstanceMetadataService, log logr.Logger) *Handler {
2024-08-11 03:51:22 +02:00
return &Handler{
2024-08-20 22:43:26 +02:00
instanceMetadataService: instanceMetadataService,
2024-08-11 03:51:22 +02:00
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)
2024-08-20 22:43:26 +02:00
// Webfinger host meta spec
2024-08-11 03:51:22 +02:00
r.Get("/.well-known/host-meta", i.GetHostMeta)
r.Get("/.well-known/host-meta.json", i.GetHostMetaJSON)
}