hertz101/rpc_gen/rpc/user/user_client.go
2025-01-20 16:01:57 +08:00

52 lines
1.4 KiB
Go

package user
import (
"context"
user "github.com/suyiiyii/hertz101/rpc_gen/kitex_gen/user"
"github.com/suyiiyii/hertz101/rpc_gen/kitex_gen/user/userservice"
"github.com/cloudwego/kitex/client"
"github.com/cloudwego/kitex/client/callopt"
)
type RPCClient interface {
KitexClient() userservice.Client
Service() string
Register(ctx context.Context, Req *user.RegisterReq, callOptions ...callopt.Option) (r *user.RegisterResp, err error)
Login(ctx context.Context, Req *user.LoginReq, callOptions ...callopt.Option) (r *user.LoginResp, err error)
}
func NewRPCClient(dstService string, opts ...client.Option) (RPCClient, error) {
kitexClient, err := userservice.NewClient(dstService, opts...)
if err != nil {
return nil, err
}
cli := &clientImpl{
service: dstService,
kitexClient: kitexClient,
}
return cli, nil
}
type clientImpl struct {
service string
kitexClient userservice.Client
}
func (c *clientImpl) Service() string {
return c.service
}
func (c *clientImpl) KitexClient() userservice.Client {
return c.kitexClient
}
func (c *clientImpl) Register(ctx context.Context, Req *user.RegisterReq, callOptions ...callopt.Option) (r *user.RegisterResp, err error) {
return c.kitexClient.Register(ctx, Req, callOptions...)
}
func (c *clientImpl) Login(ctx context.Context, Req *user.LoginReq, callOptions ...callopt.Option) (r *user.LoginResp, err error) {
return c.kitexClient.Login(ctx, Req, callOptions...)
}