package service

import (
	"context"

	"github.com/tidbcloud/core-portal/internal/central/db/tenant"
	"github.com/tidbcloud/core-portal/internal/central/pkg/auth/authuser"
)

type openAPIService struct {
}

type OpenAPIService interface {
	CurrentUser(context.Context) *tenant.User
}

func New() OpenAPIService {
	return &openAPIService{}
}

func (s *openAPIService) CurrentUser(ctx context.Context) *tenant.User {
	u, err := authuser.GetUserFromContext(ctx)
	if err != nil {
		panic("expected user claim")
	}
	return u
}
