package users import ( "context" "go/types" "clintonambulance.com/calculate_negative_points/internal/api/middleware" internal_types "clintonambulance.com/calculate_negative_points/internal/types" "github.com/coreos/go-oidc/v3/oidc" "github.com/samber/lo" "github.com/swaggest/usecase" ) func GetCurrentUser() usecase.Interactor { u := usecase.NewInteractor(func(ctx context.Context, input types.Nil, output *internal_types.UiUserResponse) error { ctxId := ctx.Value("user").(*oidc.IDToken) ctxUser := ctx.Value("claims").(middleware.Claims) if lo.IsNotEmpty(ctxId.Issuer) { output.Item = internal_types.UiUser{ Name: ctxUser.Name, } } return nil }) u.SetDescription("Retrieve the current user") u.SetTags("Users") return u }