[API节点]支持HTTP API

This commit is contained in:
GoEdgeLab
2021-01-01 20:49:09 +08:00
parent 9cb2f99037
commit afe17d1001
18 changed files with 667 additions and 80 deletions

View File

@@ -3,12 +3,14 @@ package services
import (
"context"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
"github.com/TeaOSLab/EdgeAPI/internal/errors"
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
)
// 访问日志相关服务
type HTTPAccessLogService struct {
BaseService
}
// 创建访问日志
@@ -34,11 +36,23 @@ func (this *HTTPAccessLogService) CreateHTTPAccessLogs(ctx context.Context, req
// 列出单页访问日志
func (this *HTTPAccessLogService) ListHTTPAccessLogs(ctx context.Context, req *pb.ListHTTPAccessLogsRequest) (*pb.ListHTTPAccessLogsResponse, error) {
// 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
if err != nil {
return nil, err
}
// 检查服务ID
if userId > 0 {
if req.ServerId <= 0 {
return nil, errors.New("invalid serverId")
}
err = models.SharedServerDAO.CheckUserServer(req.ServerId, userId)
if err != nil {
return nil, err
}
}
accessLogs, requestId, hasMore, err := models.SharedHTTPAccessLogDAO.ListAccessLogs(req.RequestId, req.Size, req.Day, req.ServerId, req.Reverse, req.HasError, req.FirewallPolicyId, req.FirewallRuleGroupId, req.FirewallRuleSetId)
if err != nil {
return nil, err