versia-go/internal/service/svc_impls/instance_metadata_service_impl.go

53 lines
1.4 KiB
Go
Raw Permalink Normal View History

2024-08-20 22:43:26 +02:00
package svc_impls
import (
"context"
2024-08-28 00:25:25 +02:00
"github.com/versia-pub/versia-go/config"
"github.com/versia-pub/versia-go/ent"
"github.com/versia-pub/versia-go/internal/repository"
"github.com/versia-pub/versia-go/internal/service"
2024-08-20 22:43:26 +02:00
"git.devminer.xyz/devminer/unitel"
"github.com/go-logr/logr"
2024-08-28 00:25:25 +02:00
"github.com/versia-pub/versia-go/internal/entity"
2024-08-20 22:43:26 +02:00
)
var _ service.InstanceMetadataService = (*InstanceMetadataServiceImpl)(nil)
type InstanceMetadataServiceImpl struct {
federationService service.FederationService
repositories repository.Manager
telemetry *unitel.Telemetry
log logr.Logger
}
func NewInstanceMetadataServiceImpl(federationService service.FederationService, repositories repository.Manager, telemetry *unitel.Telemetry, log logr.Logger) *InstanceMetadataServiceImpl {
return &InstanceMetadataServiceImpl{
federationService: federationService,
repositories: repositories,
telemetry: telemetry,
log: log,
}
}
func (i InstanceMetadataServiceImpl) Ours(ctx context.Context) (*entity.InstanceMetadata, error) {
s := i.telemetry.StartSpan(ctx, "function", "svc_impls/InstanceMetadataServiceImpl.Ours")
defer s.End()
ctx = s.Context()
m, err := i.repositories.InstanceMetadata().GetByHost(ctx, config.C.Host)
if err != nil {
if ent.IsNotFound(err) {
panic("could not find our own instance metadata")
}
return nil, err
}
return m, nil
}