cdnlog.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package waf
  2. import (
  3. "github.com/gin-gonic/gin"
  4. v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
  5. cdnStruct "github.com/go-nunu/nunu-layout-advanced/api/v1/cdn"
  6. "github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
  7. "github.com/go-nunu/nunu-layout-advanced/internal/service"
  8. "github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
  9. )
  10. type CdnLogService interface {
  11. GetAccessLog(ctx *gin.Context,req v1.GetCdnLog) (cdnStruct.Data, error)
  12. }
  13. func NewCdnLogService(
  14. service *service.Service,
  15. tcpforwardingRep waf.TcpforwardingRepository,
  16. udpforwardingRep waf.UdpForWardingRepository,
  17. webforwardingRep waf.WebForwardingRepository,
  18. cdn flexCdn.CdnService,
  19. ccIpList CcIpListService,
  20. ) CdnLogService {
  21. return &cdnLogService{
  22. Service: service,
  23. tcpforwardingRep: tcpforwardingRep,
  24. udpforwardingRep: udpforwardingRep,
  25. webforwardingRep: webforwardingRep,
  26. cdn: cdn,
  27. ccIpList: ccIpList,
  28. }
  29. }
  30. type cdnLogService struct {
  31. *service.Service
  32. tcpforwardingRep waf.TcpforwardingRepository
  33. udpforwardingRep waf.UdpForWardingRepository
  34. webforwardingRep waf.WebForwardingRepository
  35. cdn flexCdn.CdnService
  36. ccIpList CcIpListService
  37. }
  38. func (s *cdnLogService) GetAccessLog(ctx *gin.Context,req v1.GetCdnLog) (cdnStruct.Data, error) {
  39. serverId, err := s.ccIpList.GetServerId(ctx,req.WebId)
  40. if err != nil {
  41. return cdnStruct.Data{}, err
  42. }
  43. logData, err := s.cdn.GetAccessLog(ctx,cdnStruct.Request{
  44. ServerID: serverId,
  45. Day: req.Day,
  46. Size: 50,
  47. Ip: req.Ip,
  48. Domain: req.Domain,
  49. HasError: req.HasError,
  50. HourFrom: req.HourFrom,
  51. HourTo: req.HourTo,
  52. Reverse: req.Reverse,
  53. RequestId: req.RequestId,
  54. Keyword: req.Keyword,
  55. })
  56. if err != nil {
  57. return cdnStruct.Data{}, err
  58. }
  59. return logData, nil
  60. }