mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
 | 
						|
 | 
						|
package services
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"github.com/TeaOSLab/EdgeAPI/internal/db/models"
 | 
						|
	rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
 | 
						|
	"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
						|
)
 | 
						|
 | 
						|
// APITokenService API令牌服务
 | 
						|
type APITokenService struct {
 | 
						|
	BaseService
 | 
						|
}
 | 
						|
 | 
						|
// FindAllEnabledAPITokens 获取API令牌
 | 
						|
func (this *APITokenService) FindAllEnabledAPITokens(ctx context.Context, req *pb.FindAllEnabledAPITokensRequest) (*pb.FindAllEnabledAPITokensResponse, error) {
 | 
						|
	// 这里为了安全只允许通过API节点信息获取
 | 
						|
	_, _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAPI)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
 | 
						|
	var tx = this.NullTx()
 | 
						|
	apiTokens, err := models.SharedApiTokenDAO.FindAllEnabledAPITokens(tx, req.Role)
 | 
						|
	if err != nil {
 | 
						|
		return nil, err
 | 
						|
	}
 | 
						|
	var pbTokens = []*pb.APIToken{}
 | 
						|
	for _, token := range apiTokens {
 | 
						|
		pbTokens = append(pbTokens, &pb.APIToken{
 | 
						|
			Id:     int64(token.Id),
 | 
						|
			NodeId: token.NodeId,
 | 
						|
			Secret: token.Secret,
 | 
						|
			Role:   token.Role,
 | 
						|
		})
 | 
						|
	}
 | 
						|
	return &pb.FindAllEnabledAPITokensResponse{ApiTokens: pbTokens}, nil
 | 
						|
}
 |