package permlib import ( "context" "github.com/xiaozi/permlib/pb" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" ) type grpcClient struct { cli pb.PermServiceClient } func newGRPCClient(target string) (*grpcClient, error) { conn, err := grpc.NewClient(target, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { return nil, err } return &grpcClient{cli: pb.NewPermServiceClient(conn)}, nil } func (c *grpcClient) verifyToken(ctx context.Context, accessToken string) (*pb.VerifyTokenResp, error) { return c.cli.VerifyToken(ctx, &pb.VerifyTokenReq{AccessToken: accessToken}) } func (c *grpcClient) 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 *grpcClient) refreshToken(ctx context.Context, refreshToken, productCode string) (*pb.RefreshTokenResp, error) { return c.cli.RefreshToken(ctx, &pb.RefreshTokenReq{ RefreshToken: refreshToken, ProductCode: productCode, }) } func (c *grpcClient) 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 *grpcClient) 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, }) }