package auth

import (
	"context"
	"errors"
)

func GetIdentityInfo(ctx context.Context, param *GetIdentityParam) (*AuthnIdentityInfo, error) {
	if param == nil {
		return nil, errors.New("param is nil")
	}
	in := IdentityAuthParam{
		IdentityType:  param.IdentityType,
		IdentityValue: param.IdentityValue,
		Options:       param.Options,
	}
	ret, err := AuthnIdentity(ctx, &in)
	if err != nil {
		return nil, err
	}
	if ret.AuthRet != AuthnRetOK {
		return nil, errors.New(ret.AuthMessage)
	}
	return ret.IdentityInfo, nil
}

type GetIdentityParam struct {
	IdentityType  AuthnIdentityType
	IdentityValue string
	Options       IdentityAuthOption
}
