Skip to content

Commit

Permalink
feat: remove calculate total count service (#772)
Browse files Browse the repository at this point in the history
* feat: add user list interface

Signed-off-by: Gaius <[email protected]>

* feat: remove calculate total count interface

Signed-off-by: Gaius <[email protected]>
  • Loading branch information
gaius-qi committed Jun 28, 2023
1 parent 2c48888 commit 54e79fa
Show file tree
Hide file tree
Showing 19 changed files with 81 additions and 254 deletions.
10 changes: 2 additions & 8 deletions manager/handlers/cdn.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,18 +157,12 @@ func (h *Handlers) GetCDNs(ctx *gin.Context) {
}

h.setPaginationDefault(&query.Page, &query.PerPage)
cdns, err := h.service.GetCDNs(ctx.Request.Context(), query)
cdns, count, err := h.service.GetCDNs(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

totalCount, err := h.service.CDNTotalCount(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(totalCount))
h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(count))
ctx.JSON(http.StatusOK, cdns)
}
10 changes: 2 additions & 8 deletions manager/handlers/cdn_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -179,19 +179,13 @@ func (h *Handlers) GetCDNClusters(ctx *gin.Context) {
}

h.setPaginationDefault(&query.Page, &query.PerPage)
cdns, err := h.service.GetCDNClusters(ctx.Request.Context(), query)
cdns, count, err := h.service.GetCDNClusters(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

totalCount, err := h.service.CDNClusterTotalCount(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(totalCount))
h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(count))
ctx.JSON(http.StatusOK, cdns)
}

Expand Down
10 changes: 2 additions & 8 deletions manager/handlers/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,18 +157,12 @@ func (h *Handlers) GetConfigs(ctx *gin.Context) {
}

h.setPaginationDefault(&query.Page, &query.PerPage)
configs, err := h.service.GetConfigs(ctx.Request.Context(), query)
configs, count, err := h.service.GetConfigs(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

totalCount, err := h.service.ConfigTotalCount(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(totalCount))
h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(count))
ctx.JSON(http.StatusOK, configs)
}
10 changes: 2 additions & 8 deletions manager/handlers/job.go
Original file line number Diff line number Diff line change
Expand Up @@ -154,18 +154,12 @@ func (h *Handlers) GetJobs(ctx *gin.Context) {
}

h.setPaginationDefault(&query.Page, &query.PerPage)
jobs, err := h.service.GetJobs(ctx.Request.Context(), query)
jobs, count, err := h.service.GetJobs(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

totalCount, err := h.service.JobTotalCount(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(totalCount))
h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(count))
ctx.JSON(http.StatusOK, jobs)
}
10 changes: 2 additions & 8 deletions manager/handlers/oauth.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,18 +157,12 @@ func (h *Handlers) GetOauths(ctx *gin.Context) {
}

h.setPaginationDefault(&query.Page, &query.PerPage)
oauth, err := h.service.GetOauths(ctx.Request.Context(), query)
oauth, count, err := h.service.GetOauths(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

totalCount, err := h.service.OauthTotalCount(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(totalCount))
h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(count))
ctx.JSON(http.StatusOK, oauth)
}
10 changes: 2 additions & 8 deletions manager/handlers/scheduler.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,18 +157,12 @@ func (h *Handlers) GetSchedulers(ctx *gin.Context) {
}

h.setPaginationDefault(&query.Page, &query.PerPage)
schedulers, err := h.service.GetSchedulers(ctx.Request.Context(), query)
schedulers, count, err := h.service.GetSchedulers(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

totalCount, err := h.service.SchedulerTotalCount(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(totalCount))
h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(count))
ctx.JSON(http.StatusOK, schedulers)
}
10 changes: 2 additions & 8 deletions manager/handlers/scheduler_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -179,19 +179,13 @@ func (h *Handlers) GetSchedulerClusters(ctx *gin.Context) {
}

h.setPaginationDefault(&query.Page, &query.PerPage)
schedulerClusters, err := h.service.GetSchedulerClusters(ctx.Request.Context(), query)
schedulerClusters, count, err := h.service.GetSchedulerClusters(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

totalCount, err := h.service.SchedulerClusterTotalCount(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(totalCount))
h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(count))
ctx.JSON(http.StatusOK, schedulerClusters)
}

Expand Down
10 changes: 2 additions & 8 deletions manager/handlers/security_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,19 +157,13 @@ func (h *Handlers) GetSecurityGroups(ctx *gin.Context) {
}

h.setPaginationDefault(&query.Page, &query.PerPage)
securityGroups, err := h.service.GetSecurityGroups(ctx.Request.Context(), query)
securityGroups, count, err := h.service.GetSecurityGroups(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

totalCount, err := h.service.SecurityGroupTotalCount(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(totalCount))
h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(count))
ctx.JSON(http.StatusOK, securityGroups)
}

Expand Down
10 changes: 2 additions & 8 deletions manager/handlers/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,19 +71,13 @@ func (h *Handlers) GetUsers(ctx *gin.Context) {
}

h.setPaginationDefault(&query.Page, &query.PerPage)
users, err := h.service.GetUsers(ctx.Request.Context(), query)
users, count, err := h.service.GetUsers(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

totalCount, err := h.service.UserTotalCount(ctx.Request.Context(), query)
if err != nil {
ctx.Error(err)
return
}

h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(totalCount))
h.setPaginationLinkHeader(ctx, query.Page, query.PerPage, int(count))
ctx.JSON(http.StatusOK, users)
}

Expand Down
28 changes: 6 additions & 22 deletions manager/service/cdn.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,36 +79,20 @@ func (s *rest) GetCDN(ctx context.Context, id uint) (*model.CDN, error) {
return &cdn, nil
}

func (s *rest) GetCDNs(ctx context.Context, q types.GetCDNsQuery) (*[]model.CDN, error) {
cdns := []model.CDN{}
if err := s.db.WithContext(ctx).Scopes(model.Paginate(q.Page, q.PerPage)).Where(&model.CDN{
HostName: q.HostName,
IDC: q.IDC,
Location: q.Location,
IP: q.IP,
Port: q.Port,
DownloadPort: q.DownloadPort,
CDNClusterID: q.CDNClusterID,
}).Find(&cdns).Error; err != nil {
return nil, err
}

return &cdns, nil
}

func (s *rest) CDNTotalCount(ctx context.Context, q types.GetCDNsQuery) (int64, error) {
func (s *rest) GetCDNs(ctx context.Context, q types.GetCDNsQuery) (*[]model.CDN, int64, error) {
var count int64
if err := s.db.WithContext(ctx).Model(&model.CDN{}).Where(&model.CDN{
var cdns []model.CDN
if err := s.db.WithContext(ctx).Scopes(model.Paginate(q.Page, q.PerPage)).Where(&model.CDN{
HostName: q.HostName,
IDC: q.IDC,
Location: q.Location,
IP: q.IP,
Port: q.Port,
DownloadPort: q.DownloadPort,
CDNClusterID: q.CDNClusterID,
}).Count(&count).Error; err != nil {
return 0, err
}).Find(&cdns).Count(&count).Error; err != nil {
return nil, 0, err
}

return count, nil
return &cdns, count, nil
}
22 changes: 6 additions & 16 deletions manager/service/cdn_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -136,26 +136,16 @@ func (s *rest) GetCDNCluster(ctx context.Context, id uint) (*model.CDNCluster, e
return &cdnCluster, nil
}

func (s *rest) GetCDNClusters(ctx context.Context, q types.GetCDNClustersQuery) (*[]model.CDNCluster, error) {
cdnClusters := []model.CDNCluster{}
if err := s.db.WithContext(ctx).Scopes(model.Paginate(q.Page, q.PerPage)).Where(&model.CDNCluster{
Name: q.Name,
}).Find(&cdnClusters).Error; err != nil {
return nil, err
}

return &cdnClusters, nil
}

func (s *rest) CDNClusterTotalCount(ctx context.Context, q types.GetCDNClustersQuery) (int64, error) {
func (s *rest) GetCDNClusters(ctx context.Context, q types.GetCDNClustersQuery) (*[]model.CDNCluster, int64, error) {
var count int64
if err := s.db.WithContext(ctx).Model(&model.CDNCluster{}).Where(&model.CDNCluster{
var cdnClusters []model.CDNCluster
if err := s.db.WithContext(ctx).Scopes(model.Paginate(q.Page, q.PerPage)).Where(&model.CDNCluster{
Name: q.Name,
}).Count(&count).Error; err != nil {
return 0, err
}).Find(&cdnClusters).Count(&count).Error; err != nil {
return nil, 0, err
}

return count, nil
return &cdnClusters, count, nil
}

func (s *rest) AddCDNToCDNCluster(ctx context.Context, id, cdnID uint) error {
Expand Down
24 changes: 6 additions & 18 deletions manager/service/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,28 +74,16 @@ func (s *rest) GetConfig(ctx context.Context, id uint) (*model.Config, error) {
return &config, nil
}

func (s *rest) GetConfigs(ctx context.Context, q types.GetConfigsQuery) (*[]model.Config, error) {
configs := []model.Config{}
if err := s.db.WithContext(ctx).Scopes(model.Paginate(q.Page, q.PerPage)).Where(&model.Config{
Name: q.Name,
Value: q.Value,
UserID: q.UserID,
}).Find(&configs).Error; err != nil {
return nil, err
}

return &configs, nil
}

func (s *rest) ConfigTotalCount(ctx context.Context, q types.GetConfigsQuery) (int64, error) {
func (s *rest) GetConfigs(ctx context.Context, q types.GetConfigsQuery) (*[]model.Config, int64, error) {
var count int64
if err := s.db.WithContext(ctx).Model(&model.Config{}).Where(&model.Config{
var configs []model.Config
if err := s.db.WithContext(ctx).Scopes(model.Paginate(q.Page, q.PerPage)).Where(&model.Config{
Name: q.Name,
Value: q.Value,
UserID: q.UserID,
}).Count(&count).Error; err != nil {
return 0, err
}).Find(&configs).Count(&count).Error; err != nil {
return nil, 0, err
}

return count, nil
return &configs, count, nil
}
24 changes: 6 additions & 18 deletions manager/service/job.go
Original file line number Diff line number Diff line change
Expand Up @@ -171,30 +171,18 @@ func (s *rest) GetJob(ctx context.Context, id uint) (*model.Job, error) {
return &job, nil
}

func (s *rest) GetJobs(ctx context.Context, q types.GetJobsQuery) (*[]model.Job, error) {
jobs := []model.Job{}
if err := s.db.WithContext(ctx).Scopes(model.Paginate(q.Page, q.PerPage)).Where(&model.Job{
Type: q.Type,
Status: q.Status,
UserID: q.UserID,
}).Find(&jobs).Error; err != nil {
return nil, err
}

return &jobs, nil
}

func (s *rest) JobTotalCount(ctx context.Context, q types.GetJobsQuery) (int64, error) {
func (s *rest) GetJobs(ctx context.Context, q types.GetJobsQuery) (*[]model.Job, int64, error) {
var count int64
if err := s.db.WithContext(ctx).Model(&model.Job{}).Where(&model.Job{
var jobs []model.Job
if err := s.db.WithContext(ctx).Scopes(model.Paginate(q.Page, q.PerPage)).Where(&model.Job{
Type: q.Type,
Status: q.Status,
UserID: q.UserID,
}).Count(&count).Error; err != nil {
return 0, err
}).Find(&jobs).Count(&count).Error; err != nil {
return nil, 0, err
}

return count, nil
return &jobs, count, nil
}

func (s *rest) AddJobToSchedulerClusters(ctx context.Context, id, schedulerClusterIDs []uint) error {
Expand Down
23 changes: 6 additions & 17 deletions manager/service/oauth.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,26 +76,15 @@ func (s *rest) GetOauth(ctx context.Context, id uint) (*model.Oauth, error) {
return &oauth, nil
}

func (s *rest) GetOauths(ctx context.Context, q types.GetOauthsQuery) (*[]model.Oauth, error) {
oauths := []model.Oauth{}
if err := s.db.WithContext(ctx).Scopes(model.Paginate(q.Page, q.PerPage)).Where(&model.Oauth{
Name: q.Name,
ClientID: q.ClientID,
}).Find(&oauths).Error; err != nil {
return nil, err
}

return &oauths, nil
}

func (s *rest) OauthTotalCount(ctx context.Context, q types.GetOauthsQuery) (int64, error) {
func (s *rest) GetOauths(ctx context.Context, q types.GetOauthsQuery) (*[]model.Oauth, int64, error) {
var count int64
if err := s.db.WithContext(ctx).Model(&model.Oauth{}).Where(&model.Oauth{
var oauths []model.Oauth
if err := s.db.WithContext(ctx).Scopes(model.Paginate(q.Page, q.PerPage)).Where(&model.Oauth{
Name: q.Name,
ClientID: q.ClientID,
}).Count(&count).Error; err != nil {
return 0, err
}).Find(&oauths).Count(&count).Error; err != nil {
return nil, 0, err
}

return count, nil
return &oauths, count, nil
}
Loading

0 comments on commit 54e79fa

Please sign in to comment.