From bd66c46b55c95754f8585ee77b3e47f4c529f82a Mon Sep 17 00:00:00 2001 From: Jack Chen Date: Tue, 20 Aug 2024 17:13:08 +0800 Subject: [PATCH] feat: Replace LatestScheduleActionRecords to LatestScheduleActionRecordsByJobName - Replaced LatestScheduleActionRecords API to LatestScheduleActionRecordsByJobName - Fixed typos Signed-off-by: Jack Chen --- clients/http/scheduleactionrecord.go | 10 +++++----- clients/http/scheduleactionrecord_test.go | 8 +++++--- .../mocks/ScheduleActionRecordClient.go | 20 +++++++++---------- clients/interfaces/scheduleactionrecord.go | 4 ++-- common/constants.go | 2 +- common/echo_api_constants.go | 4 ++-- dtos/requests/schedulejob_test.go | 10 +++++----- 7 files changed, 30 insertions(+), 28 deletions(-) diff --git a/clients/http/scheduleactionrecord.go b/clients/http/scheduleactionrecord.go index 8f288f61..08e10798 100644 --- a/clients/http/scheduleactionrecord.go +++ b/clients/http/scheduleactionrecord.go @@ -47,12 +47,12 @@ func (client *ScheduleActionRecordClient) AllScheduleActionRecords(ctx context.C return res, nil } -// LatestScheduleActionRecords query the latest schedule action records of each schedule job with offset, and limit -func (client *ScheduleActionRecordClient) LatestScheduleActionRecords(ctx context.Context, offset, limit int) (res responses.MultiScheduleActionRecordsResponse, err errors.EdgeX) { +// LatestScheduleActionRecordsByJobName query the latest schedule action records by job name +func (client *ScheduleActionRecordClient) LatestScheduleActionRecordsByJobName(ctx context.Context, jobName string) (res responses.MultiScheduleActionRecordsResponse, err errors.EdgeX) { + requestPath := path.Join(common.ApiScheduleActionRecordRoute, common.Latest, common.Job, common.Name, jobName) requestParams := url.Values{} - requestParams.Set(common.Offset, strconv.Itoa(offset)) - requestParams.Set(common.Limit, strconv.Itoa(limit)) - err = utils.GetRequest(ctx, &res, client.baseUrl, common.ApiLatestScheduleActionRecordRoute, requestParams, client.authInjector) + requestParams.Set(common.Name, jobName) + err = utils.GetRequest(ctx, &res, client.baseUrl, requestPath, requestParams, client.authInjector) if err != nil { return res, errors.NewCommonEdgeXWrapper(err) } diff --git a/clients/http/scheduleactionrecord_test.go b/clients/http/scheduleactionrecord_test.go index 2a57155a..ab890ec8 100644 --- a/clients/http/scheduleactionrecord_test.go +++ b/clients/http/scheduleactionrecord_test.go @@ -27,11 +27,13 @@ func TestScheduleActionRecordClient_AllScheduleActionRecords(t *testing.T) { require.IsType(t, responses.MultiScheduleActionRecordsResponse{}, res) } -func TestScheduleActionRecordClient_LatestScheduleActionRecords(t *testing.T) { - ts := newTestServer(http.MethodGet, common.ApiLatestScheduleActionRecordRoute, responses.MultiScheduleActionRecordsResponse{}) +func TestScheduleActionRecordClient_LatestScheduleActionRecordsByJobName(t *testing.T) { + jobName := TestScheduleJobName + urlPath := path.Join(common.ApiScheduleActionRecordRoute, common.Latest, common.Job, common.Name, jobName) + ts := newTestServer(http.MethodGet, urlPath, responses.MultiScheduleActionRecordsResponse{}) defer ts.Close() client := NewScheduleActionRecordClient(ts.URL, NewNullAuthenticationInjector(), false) - res, err := client.LatestScheduleActionRecords(context.Background(), 0, 10) + res, err := client.LatestScheduleActionRecordsByJobName(context.Background(), jobName) require.NoError(t, err) require.IsType(t, responses.MultiScheduleActionRecordsResponse{}, res) } diff --git a/clients/interfaces/mocks/ScheduleActionRecordClient.go b/clients/interfaces/mocks/ScheduleActionRecordClient.go index b87e3ece..8a39e392 100644 --- a/clients/interfaces/mocks/ScheduleActionRecordClient.go +++ b/clients/interfaces/mocks/ScheduleActionRecordClient.go @@ -47,27 +47,27 @@ func (_m *ScheduleActionRecordClient) AllScheduleActionRecords(ctx context.Conte return r0, r1 } -// LatestScheduleActionRecords provides a mock function with given fields: ctx, offset, limit -func (_m *ScheduleActionRecordClient) LatestScheduleActionRecords(ctx context.Context, offset int, limit int) (responses.MultiScheduleActionRecordsResponse, errors.EdgeX) { - ret := _m.Called(ctx, offset, limit) +// LatestScheduleActionRecordsByJobName provides a mock function with given fields: ctx, jobName +func (_m *ScheduleActionRecordClient) LatestScheduleActionRecordsByJobName(ctx context.Context, jobName string) (responses.MultiScheduleActionRecordsResponse, errors.EdgeX) { + ret := _m.Called(ctx, jobName) if len(ret) == 0 { - panic("no return value specified for LatestScheduleActionRecords") + panic("no return value specified for LatestScheduleActionRecordsByJobName") } var r0 responses.MultiScheduleActionRecordsResponse var r1 errors.EdgeX - if rf, ok := ret.Get(0).(func(context.Context, int, int) (responses.MultiScheduleActionRecordsResponse, errors.EdgeX)); ok { - return rf(ctx, offset, limit) + if rf, ok := ret.Get(0).(func(context.Context, string) (responses.MultiScheduleActionRecordsResponse, errors.EdgeX)); ok { + return rf(ctx, jobName) } - if rf, ok := ret.Get(0).(func(context.Context, int, int) responses.MultiScheduleActionRecordsResponse); ok { - r0 = rf(ctx, offset, limit) + if rf, ok := ret.Get(0).(func(context.Context, string) responses.MultiScheduleActionRecordsResponse); ok { + r0 = rf(ctx, jobName) } else { r0 = ret.Get(0).(responses.MultiScheduleActionRecordsResponse) } - if rf, ok := ret.Get(1).(func(context.Context, int, int) errors.EdgeX); ok { - r1 = rf(ctx, offset, limit) + if rf, ok := ret.Get(1).(func(context.Context, string) errors.EdgeX); ok { + r1 = rf(ctx, jobName) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(errors.EdgeX) diff --git a/clients/interfaces/scheduleactionrecord.go b/clients/interfaces/scheduleactionrecord.go index 35a1234c..21f9bddd 100644 --- a/clients/interfaces/scheduleactionrecord.go +++ b/clients/interfaces/scheduleactionrecord.go @@ -16,8 +16,8 @@ import ( type ScheduleActionRecordClient interface { // AllScheduleActionRecords query schedule action records with start, end, offset, and limit AllScheduleActionRecords(ctx context.Context, start, end int64, offset, limit int) (responses.MultiScheduleActionRecordsResponse, errors.EdgeX) - // LatestScheduleActionRecords query the latest schedule action records of each schedule job with offset, and limit - LatestScheduleActionRecords(ctx context.Context, offset, limit int) (responses.MultiScheduleActionRecordsResponse, errors.EdgeX) + // LatestScheduleActionRecordsByJobName query the latest schedule action records by job name + LatestScheduleActionRecordsByJobName(ctx context.Context, jobName string) (responses.MultiScheduleActionRecordsResponse, errors.EdgeX) // ScheduleActionRecordsByStatus queries schedule action records with status, start, end, offset, and limit ScheduleActionRecordsByStatus(ctx context.Context, status string, start, end int64, offset, limit int) (responses.MultiScheduleActionRecordsResponse, errors.EdgeX) // ScheduleActionRecordsByJobName query schedule action records with jobName, start, end, offset, and limit diff --git a/common/constants.go b/common/constants.go index f9cd16c3..18d4e8fd 100644 --- a/common/constants.go +++ b/common/constants.go @@ -110,7 +110,7 @@ const ( ApiScheduleActionRecordRoute = ApiBase + "/scheduleactionrecord" ApiAllScheduleActionRecordRoute = ApiScheduleActionRecordRoute + "/" + All - ApiLatestScheduleActionRecordRoute = ApiScheduleActionRecordRoute + "/" + Latest + ApiLatestScheduleActionRecordByJobNameRoute = ApiScheduleActionRecordRoute + "/" + Latest + "/" + Job + "/" + Name + "/{" + Name + "}" ApiScheduleActionRecordRouteByStatusRoute = ApiScheduleActionRecordRoute + "/" + Status + "/{" + Status + "}" ApiScheduleActionRecordRouteByJobNameRoute = ApiScheduleActionRecordRoute + "/" + Job + "/" + Name + "/{" + Name + "}" ApiScheduleActionRecordByJobNameAndStatusRoute = ApiScheduleActionRecordRoute + "/" + Job + "/" + Name + "/{" + Name + "}/" + Status + "/{" + Status + "}" diff --git a/common/echo_api_constants.go b/common/echo_api_constants.go index f04d6a70..65461034 100644 --- a/common/echo_api_constants.go +++ b/common/echo_api_constants.go @@ -91,8 +91,8 @@ const ( ApiScheduleActionRecordEchoRoute = ApiBase + "/scheduleactionrecord" ApiAllScheduleActionRecordEchoRoute = ApiScheduleActionRecordRoute + "/" + All - ApiLatestScheduleActionRecordEchoRoute = ApiScheduleActionRecordRoute + "/" + Latest + ApiLatestScheduleActionRecordByJobNameEchoRoute = ApiScheduleActionRecordRoute + "/" + Latest + "/" + Job + "/" + Name + "/:" + Name ApiScheduleActionRecordRouteByStatusEchoRoute = ApiScheduleActionRecordRoute + "/" + Status + "/:" + Status ApiScheduleActionRecordRouteByJobNameEchoRoute = ApiScheduleActionRecordRoute + "/" + Job + "/" + Name + "/:" + Name - ApiScheduleActionRecordRouteByJobNameAndStatusEchoRoute = ApiScheduleActionRecordRoute + "/" + Job + "/" + Name + "/:" + Name + Status + "/:" + Status + ApiScheduleActionRecordRouteByJobNameAndStatusEchoRoute = ApiScheduleActionRecordRoute + "/" + Job + "/" + Name + "/:" + Name + "/" + Status + "/:" + Status ) diff --git a/dtos/requests/schedulejob_test.go b/dtos/requests/schedulejob_test.go index 98537326..112452fa 100644 --- a/dtos/requests/schedulejob_test.go +++ b/dtos/requests/schedulejob_test.go @@ -19,7 +19,7 @@ import ( ) var ( - testScheduleJonName = "jobName" + testScheduleJobName = "jobName" testScheduleJobLabels = []string{"label"} testScheduleDef = dtos.ScheduleDef{ Type: common.DefInterval, @@ -50,7 +50,7 @@ var ( func addScheduleJobRequestData() AddScheduleJobRequest { return NewAddScheduleJobRequest(dtos.ScheduleJob{ - Name: testScheduleJonName, + Name: testScheduleJobName, Definition: testScheduleDef, Actions: testScheduleActions, AdminState: models.Unlocked, @@ -60,7 +60,7 @@ func addScheduleJobRequestData() AddScheduleJobRequest { func updateScheduleJobData() dtos.UpdateScheduleJob { id := ExampleUUID - name := testScheduleJonName + name := testScheduleJobName definition := testScheduleDef actions := testScheduleActions labels := testScheduleJobLabels @@ -252,7 +252,7 @@ func TestUpdateScheduleJobRequest_UnmarshalJSON(t *testing.T) { func TestReplaceScheduleJobModelFieldsWithDTO(t *testing.T) { job := models.ScheduleJob{ Id: "7a1707f0-166f-4c4b-bc9d-1d54c74e0137", - Name: testScheduleJonName, + Name: testScheduleJobName, } patch := updateScheduleJobData() @@ -260,7 +260,7 @@ func TestReplaceScheduleJobModelFieldsWithDTO(t *testing.T) { expectedActions := dtos.ToScheduleActionModels(patch.Actions) expectedDef := dtos.ToScheduleDefModel(*patch.Definition) - assert.Equal(t, testScheduleJonName, job.Name) + assert.Equal(t, testScheduleJobName, job.Name) assert.Equal(t, expectedActions, job.Actions) assert.Equal(t, expectedDef, job.Definition) }