2026-04-30 02:30:32 +08:00

140 lines
6.1 KiB
Go

package client
import (
"context"
userv1 "hyapp/api/proto/user/v1"
"google.golang.org/grpc"
)
// UserAuthClient 抽象 gateway 对 user-service 登录注册能力的依赖。
type UserAuthClient interface {
LoginPassword(ctx context.Context, req *userv1.LoginPasswordRequest) (*userv1.AuthResponse, error)
LoginThirdParty(ctx context.Context, req *userv1.LoginThirdPartyRequest) (*userv1.AuthResponse, error)
SetPassword(ctx context.Context, req *userv1.SetPasswordRequest) (*userv1.SetPasswordResponse, error)
RefreshToken(ctx context.Context, req *userv1.RefreshTokenRequest) (*userv1.RefreshTokenResponse, error)
Logout(ctx context.Context, req *userv1.LogoutRequest) (*userv1.LogoutResponse, error)
}
// UserIdentityClient 抽象 gateway 对 user-service 短号能力的依赖。
type UserIdentityClient interface {
GetUserIdentity(ctx context.Context, req *userv1.GetUserIdentityRequest) (*userv1.GetUserIdentityResponse, error)
ResolveDisplayUserID(ctx context.Context, req *userv1.ResolveDisplayUserIDRequest) (*userv1.ResolveDisplayUserIDResponse, error)
ChangeDisplayUserID(ctx context.Context, req *userv1.ChangeDisplayUserIDRequest) (*userv1.ChangeDisplayUserIDResponse, error)
ApplyPrettyDisplayUserID(ctx context.Context, req *userv1.ApplyPrettyDisplayUserIDRequest) (*userv1.ApplyPrettyDisplayUserIDResponse, error)
}
// UserProfileClient 抽象 gateway 对 user-service 用户资料能力的依赖。
type UserProfileClient interface {
GetUser(ctx context.Context, req *userv1.GetUserRequest) (*userv1.GetUserResponse, error)
CompleteOnboarding(ctx context.Context, req *userv1.CompleteOnboardingRequest) (*userv1.CompleteOnboardingResponse, error)
UpdateUserProfile(ctx context.Context, req *userv1.UpdateUserProfileRequest) (*userv1.UpdateUserProfileResponse, error)
ChangeUserCountry(ctx context.Context, req *userv1.ChangeUserCountryRequest) (*userv1.ChangeUserCountryResponse, error)
}
// UserCountryQueryClient 抽象 gateway 对 App 注册页国家列表的公开读依赖。
type UserCountryQueryClient interface {
ListRegistrationCountries(ctx context.Context, req *userv1.ListRegistrationCountriesRequest) (*userv1.ListRegistrationCountriesResponse, error)
}
type grpcUserAuthClient struct {
client userv1.AuthServiceClient
}
type grpcUserIdentityClient struct {
client userv1.UserIdentityServiceClient
}
type grpcUserProfileClient struct {
client userv1.UserServiceClient
}
type grpcUserCountryQueryClient struct {
client userv1.CountryQueryServiceClient
}
// NewGRPCUserAuthClient 用 gRPC 连接构造 user-service auth client。
func NewGRPCUserAuthClient(conn *grpc.ClientConn) UserAuthClient {
return &grpcUserAuthClient{
client: userv1.NewAuthServiceClient(conn),
}
}
// NewGRPCUserIdentityClient 用 gRPC 连接构造 user-service 短号 client。
func NewGRPCUserIdentityClient(conn *grpc.ClientConn) UserIdentityClient {
return &grpcUserIdentityClient{
client: userv1.NewUserIdentityServiceClient(conn),
}
}
// NewGRPCUserProfileClient 用 gRPC 连接构造 user-service 资料 client。
func NewGRPCUserProfileClient(conn *grpc.ClientConn) UserProfileClient {
return &grpcUserProfileClient{
client: userv1.NewUserServiceClient(conn),
}
}
// NewGRPCUserCountryQueryClient 用 gRPC 连接构造国家公开查询 client。
func NewGRPCUserCountryQueryClient(conn *grpc.ClientConn) UserCountryQueryClient {
return &grpcUserCountryQueryClient{
client: userv1.NewCountryQueryServiceClient(conn),
}
}
func (c *grpcUserAuthClient) LoginPassword(ctx context.Context, req *userv1.LoginPasswordRequest) (*userv1.AuthResponse, error) {
return c.client.LoginPassword(ctx, req)
}
func (c *grpcUserAuthClient) LoginThirdParty(ctx context.Context, req *userv1.LoginThirdPartyRequest) (*userv1.AuthResponse, error) {
return c.client.LoginThirdParty(ctx, req)
}
func (c *grpcUserAuthClient) SetPassword(ctx context.Context, req *userv1.SetPasswordRequest) (*userv1.SetPasswordResponse, error) {
return c.client.SetPassword(ctx, req)
}
func (c *grpcUserAuthClient) RefreshToken(ctx context.Context, req *userv1.RefreshTokenRequest) (*userv1.RefreshTokenResponse, error) {
return c.client.RefreshToken(ctx, req)
}
func (c *grpcUserAuthClient) Logout(ctx context.Context, req *userv1.LogoutRequest) (*userv1.LogoutResponse, error) {
return c.client.Logout(ctx, req)
}
func (c *grpcUserIdentityClient) GetUserIdentity(ctx context.Context, req *userv1.GetUserIdentityRequest) (*userv1.GetUserIdentityResponse, error) {
return c.client.GetUserIdentity(ctx, req)
}
func (c *grpcUserIdentityClient) ResolveDisplayUserID(ctx context.Context, req *userv1.ResolveDisplayUserIDRequest) (*userv1.ResolveDisplayUserIDResponse, error) {
return c.client.ResolveDisplayUserID(ctx, req)
}
func (c *grpcUserIdentityClient) ChangeDisplayUserID(ctx context.Context, req *userv1.ChangeDisplayUserIDRequest) (*userv1.ChangeDisplayUserIDResponse, error) {
return c.client.ChangeDisplayUserID(ctx, req)
}
func (c *grpcUserIdentityClient) ApplyPrettyDisplayUserID(ctx context.Context, req *userv1.ApplyPrettyDisplayUserIDRequest) (*userv1.ApplyPrettyDisplayUserIDResponse, error) {
return c.client.ApplyPrettyDisplayUserID(ctx, req)
}
func (c *grpcUserProfileClient) GetUser(ctx context.Context, req *userv1.GetUserRequest) (*userv1.GetUserResponse, error) {
return c.client.GetUser(ctx, req)
}
func (c *grpcUserProfileClient) CompleteOnboarding(ctx context.Context, req *userv1.CompleteOnboardingRequest) (*userv1.CompleteOnboardingResponse, error) {
return c.client.CompleteOnboarding(ctx, req)
}
func (c *grpcUserProfileClient) UpdateUserProfile(ctx context.Context, req *userv1.UpdateUserProfileRequest) (*userv1.UpdateUserProfileResponse, error) {
return c.client.UpdateUserProfile(ctx, req)
}
func (c *grpcUserProfileClient) ChangeUserCountry(ctx context.Context, req *userv1.ChangeUserCountryRequest) (*userv1.ChangeUserCountryResponse, error) {
return c.client.ChangeUserCountry(ctx, req)
}
func (c *grpcUserCountryQueryClient) ListRegistrationCountries(ctx context.Context, req *userv1.ListRegistrationCountriesRequest) (*userv1.ListRegistrationCountriesResponse, error) {
return c.client.ListRegistrationCountries(ctx, req)
}