connectlogic.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package logic
  2. import (
  3. "context"
  4. "google.golang.org/protobuf/types/known/structpb"
  5. "ylink/apis/auth/auth"
  6. "github.com/zeromicro/go-zero/core/logx"
  7. "ylink/bff/rpcbff/internal/svc"
  8. "ylink/bff/rpcbff/pb"
  9. )
  10. type ConnectLogic struct {
  11. ctx context.Context
  12. svcCtx *svc.ServiceContext
  13. logx.Logger
  14. }
  15. func NewConnectLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ConnectLogic {
  16. return &ConnectLogic{
  17. ctx: ctx,
  18. svcCtx: svcCtx,
  19. Logger: logx.WithContext(ctx),
  20. }
  21. }
  22. func (l *ConnectLogic) Connect(in *pb.CommandReq, stream pb.Rpcbff_ConnectServer) error {
  23. // todo: 验证token
  24. // todo: 把stream放入资源pool
  25. if authResp, err := l.svcCtx.AuthRpc.CheckAuth(l.ctx, &auth.CheckAuthReq{
  26. AccessToken: in.AccessToken,
  27. }); err != nil {
  28. return stream.Send(&pb.CommandResp{
  29. CommandCode: authResp.Code,
  30. CommandMsg: authResp.Msg,
  31. CommandData: authResp.Data,
  32. })
  33. }
  34. data, _ := structpb.NewStruct(map[string]interface{}{})
  35. return stream.Send(&pb.CommandResp{
  36. CommandCode: 0,
  37. CommandMsg: "success",
  38. CommandData: data,
  39. })
  40. }