package permclient import ( "context" "perms-system-server/pb" "github.com/zeromicro/go-zero/zrpc" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" ) type PermClient struct { cli pb.PermServiceClient } func NewPermClient(target string) (*PermClient, error) { conn, err := grpc.NewClient(target, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { return nil, err } return &PermClient{cli: pb.NewPermServiceClient(conn)}, nil } func NewPermClientFromZrpc(c zrpc.RpcClientConf) *PermClient { client := zrpc.MustNewClient(c) return &PermClient{cli: pb.NewPermServiceClient(client.Conn())} } func (c *PermClient) SyncPermissions(ctx context.Context, appKey, appSecret string, perms []*pb.PermItem) (*pb.SyncPermissionsResp, error) { return c.cli.SyncPermissions(ctx, &pb.SyncPermissionsReq{ AppKey: appKey, AppSecret: appSecret, Perms: perms, }) } func (c *PermClient) Login(ctx context.Context, productCode, username, password string) (*pb.LoginResp, error) { return c.cli.Login(ctx, &pb.LoginReq{ ProductCode: productCode, Username: username, Password: password, }) } func (c *PermClient) RefreshToken(ctx context.Context, refreshToken, productCode string) (*pb.RefreshTokenResp, error) { return c.cli.RefreshToken(ctx, &pb.RefreshTokenReq{ RefreshToken: refreshToken, ProductCode: productCode, }) } func (c *PermClient) VerifyToken(ctx context.Context, accessToken string) (*pb.VerifyTokenResp, error) { return c.cli.VerifyToken(ctx, &pb.VerifyTokenReq{ AccessToken: accessToken, }) } func (c *PermClient) GetUserPerms(ctx context.Context, appKey, appSecret string, userId int64, productCode string) (*pb.GetUserPermsResp, error) { return c.cli.GetUserPerms(ctx, &pb.GetUserPermsReq{ AppKey: appKey, AppSecret: appSecret, UserId: userId, ProductCode: productCode, }) }