diff --git a/server/channels/app/job.go b/server/channels/app/job.go index e855fc6efd..8d9a5cd4bf 100644 --- a/server/channels/app/job.go +++ b/server/channels/app/job.go @@ -28,24 +28,15 @@ func (a *App) GetJob(c request.CTX, id string) (*model.Job, *model.AppError) { } func (a *App) GetJobsByTypePage(c request.CTX, jobType string, page int, perPage int) ([]*model.Job, *model.AppError) { - return a.GetJobsByType(c, jobType, page*perPage, perPage) -} - -func (a *App) GetJobsByType(c request.CTX, jobType string, offset int, limit int) ([]*model.Job, *model.AppError) { - jobs, err := a.Srv().Store().Job().GetAllByTypePage(c, jobType, offset, limit) + jobs, err := a.Srv().Store().Job().GetAllByTypePage(c, jobType, page, perPage) if err != nil { return nil, model.NewAppError("GetJobsByType", "app.job.get_all.app_error", nil, "", http.StatusInternalServerError).Wrap(err) } - return jobs, nil } func (a *App) GetJobsByTypesPage(c request.CTX, jobType []string, page int, perPage int) ([]*model.Job, *model.AppError) { - return a.GetJobsByTypes(c, jobType, page*perPage, perPage) -} - -func (a *App) GetJobsByTypes(c request.CTX, jobTypes []string, offset int, limit int) ([]*model.Job, *model.AppError) { - jobs, err := a.Srv().Store().Job().GetAllByTypesPage(c, jobTypes, offset, limit) + jobs, err := a.Srv().Store().Job().GetAllByTypesPage(c, jobType, page, perPage) if err != nil { return nil, model.NewAppError("GetJobsByType", "app.job.get_all.app_error", nil, "", http.StatusInternalServerError).Wrap(err) } @@ -53,7 +44,7 @@ func (a *App) GetJobsByTypes(c request.CTX, jobTypes []string, offset int, limit } func (a *App) GetJobsByTypeAndStatus(c request.CTX, jobTypes []string, status string, page int, perPage int) ([]*model.Job, *model.AppError) { - jobs, err := a.Srv().Store().Job().GetAllByTypeAndStatusPage(c, jobTypes, status, page*perPage, perPage) + jobs, err := a.Srv().Store().Job().GetAllByTypeAndStatusPage(c, jobTypes, status, page, perPage) if err != nil { return nil, model.NewAppError("GetAllByTypeAndStatusPage", "app.job.get_all.app_error", nil, "", http.StatusInternalServerError).Wrap(err) } diff --git a/server/channels/app/job_test.go b/server/channels/app/job_test.go index 695ffc3968..bf3d2eadbd 100644 --- a/server/channels/app/job_test.go +++ b/server/channels/app/job_test.go @@ -249,13 +249,13 @@ func TestGetJobByType(t *testing.T) { }() } - received, err := th.App.GetJobsByType(th.Context, jobType, 0, 2) + received, err := th.App.GetJobsByTypePage(th.Context, jobType, 0, 2) require.Nil(t, err) require.Len(t, received, 2, "received wrong number of statuses") require.Equal(t, statuses[2], received[0], "should've received newest job first") require.Equal(t, statuses[0], received[1], "should've received second newest job second") - received, err = th.App.GetJobsByType(th.Context, jobType, 2, 2) + received, err = th.App.GetJobsByTypePage(th.Context, jobType, 1, 2) require.Nil(t, err) require.Len(t, received, 1, "received wrong number of statuses") require.Equal(t, statuses[1], received[0], "should've received oldest job last") @@ -297,19 +297,19 @@ func TestGetJobsByTypes(t *testing.T) { } jobTypes := []string{jobType, jobType1, jobType2} - received, err := th.App.GetJobsByTypes(th.Context, jobTypes, 0, 2) + received, err := th.App.GetJobsByTypesPage(th.Context, jobTypes, 0, 2) require.Nil(t, err) require.Len(t, received, 2, "received wrong number of jobs") require.Equal(t, statuses[2], received[0], "should've received newest job first") require.Equal(t, statuses[0], received[1], "should've received second newest job second") - received, err = th.App.GetJobsByTypes(th.Context, jobTypes, 2, 2) + received, err = th.App.GetJobsByTypesPage(th.Context, jobTypes, 1, 2) require.Nil(t, err) require.Len(t, received, 1, "received wrong number of jobs") require.Equal(t, statuses[1], received[0], "should've received oldest job last") jobTypes = []string{jobType1, jobType2} - received, err = th.App.GetJobsByTypes(th.Context, jobTypes, 0, 3) + received, err = th.App.GetJobsByTypesPage(th.Context, jobTypes, 0, 3) require.Nil(t, err) require.Len(t, received, 2, "received wrong number of jobs") require.Equal(t, statuses[2], received[0], "received wrong job type") diff --git a/server/channels/store/sqlstore/job_store.go b/server/channels/store/sqlstore/job_store.go index 730f36209b..266e3836dd 100644 --- a/server/channels/store/sqlstore/job_store.go +++ b/server/channels/store/sqlstore/job_store.go @@ -292,11 +292,12 @@ func (jss SqlJobStore) Get(c request.CTX, id string) (*model.Job, error) { return &status, nil } -func (jss SqlJobStore) GetAllByTypesPage(c request.CTX, jobTypes []string, offset int, limit int) ([]*model.Job, error) { +func (jss SqlJobStore) GetAllByTypesPage(c request.CTX, jobTypes []string, page int, perPage int) ([]*model.Job, error) { + offset := page * perPage query, args, err := jss.jobQuery. Where(sq.Eq{"Type": jobTypes}). OrderBy("CreateAt DESC"). - Limit(uint64(limit)). + Limit(uint64(perPage)). Offset(uint64(offset)).ToSql() if err != nil { return nil, errors.Wrap(err, "job_tosql") @@ -342,11 +343,12 @@ func (jss SqlJobStore) GetAllByTypeAndStatus(c request.CTX, jobType string, stat return jobs, nil } -func (jss SqlJobStore) GetAllByTypePage(c request.CTX, jobType string, offset int, limit int) ([]*model.Job, error) { +func (jss SqlJobStore) GetAllByTypePage(c request.CTX, jobType string, page int, perPage int) ([]*model.Job, error) { + offset := page * perPage query, args, err := jss.jobQuery. Where(sq.Eq{"Type": jobType}). OrderBy("CreateAt DESC"). - Limit(uint64(limit)). + Limit(uint64(perPage)). Offset(uint64(offset)).ToSql() if err != nil { return nil, errors.Wrap(err, "job_tosql") @@ -376,11 +378,12 @@ func (jss SqlJobStore) GetAllByStatus(c request.CTX, status string) ([]*model.Jo return statuses, nil } -func (jss SqlJobStore) GetAllByTypeAndStatusPage(c request.CTX, jobType []string, status string, offset int, limit int) ([]*model.Job, error) { +func (jss SqlJobStore) GetAllByTypeAndStatusPage(c request.CTX, jobType []string, status string, page int, perPage int) ([]*model.Job, error) { + offset := page * perPage query, args, err := jss.jobQuery. Where(sq.Eq{"Type": jobType, "Status": status}). OrderBy("CreateAt DESC"). - Limit(uint64(limit)). + Limit(uint64(perPage)). Offset(uint64(offset)).ToSql() if err != nil { return nil, errors.Wrap(err, "job_tosql") diff --git a/server/channels/store/storetest/job_store.go b/server/channels/store/storetest/job_store.go index 4d42d938e6..d383b6a3af 100644 --- a/server/channels/store/storetest/job_store.go +++ b/server/channels/store/storetest/job_store.go @@ -199,7 +199,7 @@ func testJobGetAllByTypePage(t *testing.T, rctx request.CTX, ss store.Store) { require.Equal(t, received[0].Id, jobs[2].Id, "should've received newest job first") require.Equal(t, received[1].Id, jobs[0].Id, "should've received second newest job second") - received, err = ss.Job().GetAllByTypePage(rctx, jobType, 2, 2) + received, err = ss.Job().GetAllByTypePage(rctx, jobType, 1, 2) require.NoError(t, err) require.Len(t, received, 1) require.Equal(t, received[0].Id, jobs[1].Id, "should've received oldest job last") @@ -254,7 +254,7 @@ func testJobGetAllByTypesPage(t *testing.T, rctx request.CTX, ss store.Store) { require.Equal(t, received[0].Id, jobs[2].Id, "should've received newest job first") require.Equal(t, received[1].Id, jobs[0].Id, "should've received second newest job second") - received, err = ss.Job().GetAllByTypesPage(rctx, jobTypes, 2, 2) + received, err = ss.Job().GetAllByTypesPage(rctx, jobTypes, 1, 2) require.NoError(t, err) require.Len(t, received, 1) require.Equal(t, received[0].Id, jobs[1].Id, "should've received oldest job last")