permclient.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package permclient
  2. import (
  3. "context"
  4. "perms-system-server/pb"
  5. "github.com/zeromicro/go-zero/zrpc"
  6. "google.golang.org/grpc"
  7. "google.golang.org/grpc/credentials/insecure"
  8. )
  9. type PermClient struct {
  10. cli pb.PermServiceClient
  11. }
  12. func NewPermClient(target string) (*PermClient, error) {
  13. conn, err := grpc.NewClient(target, grpc.WithTransportCredentials(insecure.NewCredentials()))
  14. if err != nil {
  15. return nil, err
  16. }
  17. return &PermClient{cli: pb.NewPermServiceClient(conn)}, nil
  18. }
  19. func NewPermClientFromZrpc(c zrpc.RpcClientConf) *PermClient {
  20. client := zrpc.MustNewClient(c)
  21. return &PermClient{cli: pb.NewPermServiceClient(client.Conn())}
  22. }
  23. func (c *PermClient) SyncPermissions(ctx context.Context, appKey, appSecret string, perms []*pb.PermItem) (*pb.SyncPermissionsResp, error) {
  24. return c.cli.SyncPermissions(ctx, &pb.SyncPermissionsReq{
  25. AppKey: appKey,
  26. AppSecret: appSecret,
  27. Perms: perms,
  28. })
  29. }
  30. func (c *PermClient) Login(ctx context.Context, productCode, username, password string) (*pb.LoginResp, error) {
  31. return c.cli.Login(ctx, &pb.LoginReq{
  32. ProductCode: productCode,
  33. Username: username,
  34. Password: password,
  35. })
  36. }
  37. func (c *PermClient) RefreshToken(ctx context.Context, refreshToken, productCode string) (*pb.RefreshTokenResp, error) {
  38. return c.cli.RefreshToken(ctx, &pb.RefreshTokenReq{
  39. RefreshToken: refreshToken,
  40. ProductCode: productCode,
  41. })
  42. }
  43. func (c *PermClient) VerifyToken(ctx context.Context, accessToken string) (*pb.VerifyTokenResp, error) {
  44. return c.cli.VerifyToken(ctx, &pb.VerifyTokenReq{
  45. AccessToken: accessToken,
  46. })
  47. }
  48. func (c *PermClient) GetUserPerms(ctx context.Context, appKey, appSecret string, userId int64, productCode string) (*pb.GetUserPermsResp, error) {
  49. return c.cli.GetUserPerms(ctx, &pb.GetUserPermsReq{
  50. AppKey: appKey,
  51. AppSecret: appSecret,
  52. UserId: userId,
  53. ProductCode: productCode,
  54. })
  55. }