2024-08-11 03:51:22 +02:00
|
|
|
package meta_handler
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"github.com/go-logr/logr"
|
|
|
|
|
"github.com/gofiber/fiber/v2"
|
2024-08-28 00:25:25 +02:00
|
|
|
"github.com/versia-pub/versia-go/config"
|
|
|
|
|
"github.com/versia-pub/versia-go/internal/service"
|
|
|
|
|
"github.com/versia-pub/versia-go/pkg/webfinger"
|
2024-08-11 03:51:22 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
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) {
|
2024-08-27 19:59:12 +02:00
|
|
|
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)
|
|
|
|
|
}
|