gitee.com/woood2/luca@v1.0.4/cmd/micro/pkg/check_token.go (about)

     1  package pkg
     2  
     3  import (
     4  	"context"
     5  	"gitee.com/woood2/luca/cmd/micro/internal/grpc/pb"
     6  	"gitee.com/woood2/luca/cmd/micro/internal/param"
     7  	"gitee.com/woood2/luca/internal/errcode"
     8  	"github.com/go-kit/kit/endpoint"
     9  	grpctransport "github.com/go-kit/kit/transport/grpc"
    10  	gr "google.golang.org/grpc"
    11  )
    12  
    13  /**
    14  [common errors]
    15  micro errors
    16  Non-enumerated errors: validate|network|server|hystrix|unknown
    17  
    18  [business errors]
    19  InvalidToken
    20  */
    21  func (c *LucaClient) CheckToken(ctx context.Context, token string) (ok bool, error error) {
    22  	req := &param.CheckTokenRequest{
    23  		Token: token,
    24  	}
    25  	resp, err := c.checkTokenEndpoint(ctx, req)
    26  	if err != nil {
    27  		return false, err
    28  	}
    29  	r := resp.(*errcode.Resp)
    30  	if r.ErrCode != "" {
    31  		return false, code2Err(r.ErrCode)
    32  	} else {
    33  		return r.Data.(bool), nil
    34  	}
    35  }
    36  
    37  func encodeCheckTokenRequest(_ context.Context, r interface{}) (interface{}, error) {
    38  	return &pb.CheckTokenRequest{
    39  		Token: r.(*param.CheckTokenRequest).Token,
    40  	}, nil
    41  }
    42  
    43  func decodeCheckTokenResponse(_ context.Context, r interface{}) (interface{}, error) {
    44  	resp := r.(*pb.CheckTokenResponse)
    45  	return &errcode.Resp{
    46  		ErrCode: resp.ErrCode,
    47  		ErrMsg:  resp.ErrMsg,
    48  		Data:    resp.Data,
    49  	}, nil
    50  }
    51  
    52  func makeCheckTokenClientEndpoint(conn *gr.ClientConn, instance string, options ...grpctransport.ClientOption) endpoint.Endpoint {
    53  	serviceName := "luca.Default"
    54  	method := "CheckToken"
    55  	var e endpoint.Endpoint
    56  	{
    57  		e = grpctransport.NewClient(
    58  			conn,
    59  			serviceName,
    60  			method,
    61  			encodeCheckTokenRequest,
    62  			decodeCheckTokenResponse,
    63  			pb.CheckTokenResponse{},
    64  			options...,
    65  		).Endpoint()
    66  	}
    67  	return e
    68  }