Skip to content

Commit 68b2a7d

Browse files
committed
feat: Add offset, limit to Event and Reading client func
Added offset and limit parameters to the Event and Reading client XXXWithQueryParams functions for easier use. Signed-off-by: bruce <[email protected]>
1 parent 97fb87a commit 68b2a7d

File tree

9 files changed

+392
-59
lines changed

9 files changed

+392
-59
lines changed

clients/http/event.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,16 +67,16 @@ func (ec *eventClient) Add(ctx context.Context, serviceName string, req requests
6767
}
6868

6969
func (ec *eventClient) AllEvents(ctx context.Context, offset, limit int) (responses.MultiEventsResponse, errors.EdgeX) {
70-
return ec.AllEventsWithQueryParams(ctx, map[string]string{common.Offset: strconv.Itoa(offset), common.Limit: strconv.Itoa(limit)})
70+
return ec.AllEventsWithQueryParams(ctx, offset, limit, nil)
7171
}
7272

73-
func (ec *eventClient) AllEventsWithQueryParams(ctx context.Context, queryParams map[string]string) (responses.MultiEventsResponse, errors.EdgeX) {
73+
func (ec *eventClient) AllEventsWithQueryParams(ctx context.Context, offset, limit int, queryParams map[string]string) (responses.MultiEventsResponse, errors.EdgeX) {
7474
res := responses.MultiEventsResponse{}
7575
baseUrl, err := clients.GetBaseUrl(ec.baseUrlFunc)
7676
if err != nil {
7777
return res, errors.NewCommonEdgeXWrapper(err)
7878
}
79-
err = utils.GetRequest(ctx, &res, baseUrl, common.ApiAllEventRoute, utils.ToRequestParameters(queryParams), ec.authInjector)
79+
err = utils.GetRequest(ctx, &res, baseUrl, common.ApiAllEventRoute, utils.ToRequestParameters(offset, limit, queryParams), ec.authInjector)
8080
if err != nil {
8181
return res, errors.NewCommonEdgeXWrapper(err)
8282
}
@@ -112,17 +112,17 @@ func (ec *eventClient) EventCountByDeviceName(ctx context.Context, name string)
112112

113113
func (ec *eventClient) EventsByDeviceName(ctx context.Context, name string, offset, limit int) (
114114
responses.MultiEventsResponse, errors.EdgeX) {
115-
return ec.EventsByDeviceNameWithQueryParams(ctx, name, map[string]string{common.Offset: strconv.Itoa(offset), common.Limit: strconv.Itoa(limit)})
115+
return ec.EventsByDeviceNameWithQueryParams(ctx, name, offset, limit, nil)
116116
}
117117

118-
func (ec *eventClient) EventsByDeviceNameWithQueryParams(ctx context.Context, name string, queryParams map[string]string) (responses.MultiEventsResponse, errors.EdgeX) {
118+
func (ec *eventClient) EventsByDeviceNameWithQueryParams(ctx context.Context, name string, offset, limit int, queryParams map[string]string) (responses.MultiEventsResponse, errors.EdgeX) {
119119
requestPath := path.Join(common.ApiEventRoute, common.Device, common.Name, name)
120120
res := responses.MultiEventsResponse{}
121121
baseUrl, err := clients.GetBaseUrl(ec.baseUrlFunc)
122122
if err != nil {
123123
return res, errors.NewCommonEdgeXWrapper(err)
124124
}
125-
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(queryParams), ec.authInjector)
125+
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(offset, limit, queryParams), ec.authInjector)
126126
if err != nil {
127127
return res, errors.NewCommonEdgeXWrapper(err)
128128
}
@@ -145,17 +145,17 @@ func (ec *eventClient) DeleteByDeviceName(ctx context.Context, name string) (dto
145145

146146
func (ec *eventClient) EventsByTimeRange(ctx context.Context, start, end int64, offset, limit int) (
147147
responses.MultiEventsResponse, errors.EdgeX) {
148-
return ec.EventsByTimeRangeWithQueryParams(ctx, start, end, map[string]string{common.Offset: strconv.Itoa(offset), common.Limit: strconv.Itoa(limit)})
148+
return ec.EventsByTimeRangeWithQueryParams(ctx, start, end, offset, limit, nil)
149149
}
150150

151-
func (ec *eventClient) EventsByTimeRangeWithQueryParams(ctx context.Context, start, end int64, queryParams map[string]string) (responses.MultiEventsResponse, errors.EdgeX) {
151+
func (ec *eventClient) EventsByTimeRangeWithQueryParams(ctx context.Context, start, end int64, offset, limit int, queryParams map[string]string) (responses.MultiEventsResponse, errors.EdgeX) {
152152
requestPath := path.Join(common.ApiEventRoute, common.Start, strconv.FormatInt(start, 10), common.End, strconv.FormatInt(end, 10))
153153
res := responses.MultiEventsResponse{}
154154
baseUrl, err := clients.GetBaseUrl(ec.baseUrlFunc)
155155
if err != nil {
156156
return res, errors.NewCommonEdgeXWrapper(err)
157157
}
158-
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(queryParams), ec.authInjector)
158+
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(offset, limit, queryParams), ec.authInjector)
159159
if err != nil {
160160
return res, errors.NewCommonEdgeXWrapper(err)
161161
}

clients/http/event_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"github.com/stretchr/testify/require"
2424
)
2525

26-
var queryParameters = map[string]string{common.Offset: "1", common.Limit: "10", common.Numeric: common.ValueTrue}
26+
var queryParameters = map[string]string{common.Numeric: common.ValueTrue}
2727

2828
func TestAddEvent(t *testing.T) {
2929
serviceName := "serviceName"
@@ -48,7 +48,7 @@ func TestQueryAllEvents(t *testing.T) {
4848
require.NoError(t, err)
4949
assert.IsType(t, responses.MultiEventsResponse{}, res)
5050

51-
res, err = client.AllEventsWithQueryParams(context.Background(), queryParameters)
51+
res, err = client.AllEventsWithQueryParams(context.Background(), 1, 10, queryParameters)
5252
require.NoError(t, err)
5353
assert.IsType(t, responses.MultiEventsResponse{}, res)
5454
}
@@ -87,7 +87,7 @@ func TestQueryEventsByDeviceName(t *testing.T) {
8787
require.NoError(t, err)
8888
assert.IsType(t, responses.MultiEventsResponse{}, res)
8989

90-
res, err = client.EventsByDeviceNameWithQueryParams(context.Background(), deviceName, queryParameters)
90+
res, err = client.EventsByDeviceNameWithQueryParams(context.Background(), deviceName, 1, 10, queryParameters)
9191
require.NoError(t, err)
9292
assert.IsType(t, responses.MultiEventsResponse{}, res)
9393
}
@@ -117,7 +117,7 @@ func TestQueryEventsByTimeRange(t *testing.T) {
117117
require.NoError(t, err)
118118
assert.IsType(t, responses.MultiEventsResponse{}, res)
119119

120-
res, err = client.EventsByTimeRangeWithQueryParams(context.Background(), start, end, queryParameters)
120+
res, err = client.EventsByTimeRangeWithQueryParams(context.Background(), start, end, 1, 10, queryParameters)
121121
require.NoError(t, err)
122122
assert.IsType(t, responses.MultiEventsResponse{}, res)
123123
}

clients/http/reading.go

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,16 @@ func NewReadingClientWithUrlCallback(baseUrlFunc clients.ClientBaseUrlFunc, auth
4545
}
4646

4747
func (rc readingClient) AllReadings(ctx context.Context, offset, limit int) (responses.MultiReadingsResponse, errors.EdgeX) {
48-
return rc.AllReadingsWithQueryParams(ctx, map[string]string{common.Offset: strconv.Itoa(offset), common.Limit: strconv.Itoa(limit)})
48+
return rc.AllReadingsWithQueryParams(ctx, offset, limit, nil)
4949
}
5050

51-
func (rc readingClient) AllReadingsWithQueryParams(ctx context.Context, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
51+
func (rc readingClient) AllReadingsWithQueryParams(ctx context.Context, offset, limit int, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
5252
res := responses.MultiReadingsResponse{}
5353
baseUrl, err := clients.GetBaseUrl(rc.baseUrlFunc)
5454
if err != nil {
5555
return res, errors.NewCommonEdgeXWrapper(err)
5656
}
57-
err = utils.GetRequest(ctx, &res, baseUrl, common.ApiAllReadingRoute, utils.ToRequestParameters(queryParams), rc.authInjector)
57+
err = utils.GetRequest(ctx, &res, baseUrl, common.ApiAllReadingRoute, utils.ToRequestParameters(offset, limit, queryParams), rc.authInjector)
5858
if err != nil {
5959
return res, errors.NewCommonEdgeXWrapper(err)
6060
}
@@ -89,54 +89,54 @@ func (rc readingClient) ReadingCountByDeviceName(ctx context.Context, name strin
8989
}
9090

9191
func (rc readingClient) ReadingsByDeviceName(ctx context.Context, name string, offset, limit int) (responses.MultiReadingsResponse, errors.EdgeX) {
92-
return rc.ReadingsByDeviceNameWithQueryParams(ctx, name, map[string]string{common.Offset: strconv.Itoa(offset), common.Limit: strconv.Itoa(limit)})
92+
return rc.ReadingsByDeviceNameWithQueryParams(ctx, name, offset, limit, nil)
9393
}
9494

95-
func (rc readingClient) ReadingsByDeviceNameWithQueryParams(ctx context.Context, name string, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
95+
func (rc readingClient) ReadingsByDeviceNameWithQueryParams(ctx context.Context, name string, offset, limit int, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
9696
requestPath := path.Join(common.ApiReadingRoute, common.Device, common.Name, name)
9797
res := responses.MultiReadingsResponse{}
9898
baseUrl, err := clients.GetBaseUrl(rc.baseUrlFunc)
9999
if err != nil {
100100
return res, errors.NewCommonEdgeXWrapper(err)
101101
}
102-
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(queryParams), rc.authInjector)
102+
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(offset, limit, queryParams), rc.authInjector)
103103
if err != nil {
104104
return res, errors.NewCommonEdgeXWrapper(err)
105105
}
106106
return res, nil
107107
}
108108

109109
func (rc readingClient) ReadingsByResourceName(ctx context.Context, name string, offset, limit int) (responses.MultiReadingsResponse, errors.EdgeX) {
110-
return rc.ReadingsByResourceNameWithQueryParams(ctx, name, map[string]string{common.Offset: strconv.Itoa(offset), common.Limit: strconv.Itoa(limit)})
110+
return rc.ReadingsByResourceNameWithQueryParams(ctx, name, offset, limit, nil)
111111
}
112112

113-
func (rc readingClient) ReadingsByResourceNameWithQueryParams(ctx context.Context, name string, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
113+
func (rc readingClient) ReadingsByResourceNameWithQueryParams(ctx context.Context, name string, offset, limit int, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
114114
requestPath := common.NewPathBuilder().EnableNameFieldEscape(rc.enableNameFieldEscape).
115115
SetPath(common.ApiReadingRoute).SetPath(common.ResourceName).SetNameFieldPath(name).BuildPath()
116116
res := responses.MultiReadingsResponse{}
117117
baseUrl, err := clients.GetBaseUrl(rc.baseUrlFunc)
118118
if err != nil {
119119
return res, errors.NewCommonEdgeXWrapper(err)
120120
}
121-
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(queryParams), rc.authInjector)
121+
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(offset, limit, queryParams), rc.authInjector)
122122
if err != nil {
123123
return res, errors.NewCommonEdgeXWrapper(err)
124124
}
125125
return res, nil
126126
}
127127

128128
func (rc readingClient) ReadingsByTimeRange(ctx context.Context, start, end int64, offset, limit int) (responses.MultiReadingsResponse, errors.EdgeX) {
129-
return rc.ReadingsByTimeRangeWithQueryParams(ctx, start, end, map[string]string{common.Offset: strconv.Itoa(offset), common.Limit: strconv.Itoa(limit)})
129+
return rc.ReadingsByTimeRangeWithQueryParams(ctx, start, end, offset, limit, nil)
130130
}
131131

132-
func (rc readingClient) ReadingsByTimeRangeWithQueryParams(ctx context.Context, start, end int64, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
132+
func (rc readingClient) ReadingsByTimeRangeWithQueryParams(ctx context.Context, start, end int64, offset, limit int, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
133133
requestPath := path.Join(common.ApiReadingRoute, common.Start, strconv.FormatInt(start, 10), common.End, strconv.FormatInt(end, 10))
134134
res := responses.MultiReadingsResponse{}
135135
baseUrl, err := clients.GetBaseUrl(rc.baseUrlFunc)
136136
if err != nil {
137137
return res, errors.NewCommonEdgeXWrapper(err)
138138
}
139-
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(queryParams), rc.authInjector)
139+
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(offset, limit, queryParams), rc.authInjector)
140140
if err != nil {
141141
return res, errors.NewCommonEdgeXWrapper(err)
142142
}
@@ -145,48 +145,48 @@ func (rc readingClient) ReadingsByTimeRangeWithQueryParams(ctx context.Context,
145145

146146
// ReadingsByResourceNameAndTimeRange returns readings by resource name and specified time range. Readings are sorted in descending order of origin time.
147147
func (rc readingClient) ReadingsByResourceNameAndTimeRange(ctx context.Context, name string, start, end int64, offset, limit int) (responses.MultiReadingsResponse, errors.EdgeX) {
148-
return rc.ReadingsByResourceNameAndTimeRangeWithQueryParams(ctx, name, start, end, map[string]string{common.Offset: strconv.Itoa(offset), common.Limit: strconv.Itoa(limit)})
148+
return rc.ReadingsByResourceNameAndTimeRangeWithQueryParams(ctx, name, start, end, offset, limit, nil)
149149
}
150150

151-
func (rc readingClient) ReadingsByResourceNameAndTimeRangeWithQueryParams(ctx context.Context, name string, start, end int64, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
151+
func (rc readingClient) ReadingsByResourceNameAndTimeRangeWithQueryParams(ctx context.Context, name string, start, end int64, offset, limit int, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
152152
requestPath := common.NewPathBuilder().EnableNameFieldEscape(rc.enableNameFieldEscape).
153153
SetPath(common.ApiReadingRoute).SetPath(common.ResourceName).SetNameFieldPath(name).SetPath(common.Start).SetPath(strconv.FormatInt(start, 10)).SetPath(common.End).SetPath(strconv.FormatInt(end, 10)).BuildPath()
154154
res := responses.MultiReadingsResponse{}
155155
baseUrl, err := clients.GetBaseUrl(rc.baseUrlFunc)
156156
if err != nil {
157157
return res, errors.NewCommonEdgeXWrapper(err)
158158
}
159-
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(queryParams), rc.authInjector)
159+
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(offset, limit, queryParams), rc.authInjector)
160160
if err != nil {
161161
return res, errors.NewCommonEdgeXWrapper(err)
162162
}
163163
return res, nil
164164
}
165165

166166
func (rc readingClient) ReadingsByDeviceNameAndResourceName(ctx context.Context, deviceName, resourceName string, offset, limit int) (responses.MultiReadingsResponse, errors.EdgeX) {
167-
return rc.ReadingsByDeviceNameAndResourceNameWithQueryParams(ctx, deviceName, resourceName, map[string]string{common.Offset: strconv.Itoa(offset), common.Limit: strconv.Itoa(limit)})
167+
return rc.ReadingsByDeviceNameAndResourceNameWithQueryParams(ctx, deviceName, resourceName, offset, limit, nil)
168168
}
169169

170-
func (rc readingClient) ReadingsByDeviceNameAndResourceNameWithQueryParams(ctx context.Context, deviceName, resourceName string, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
170+
func (rc readingClient) ReadingsByDeviceNameAndResourceNameWithQueryParams(ctx context.Context, deviceName, resourceName string, offset, limit int, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
171171
requestPath := common.NewPathBuilder().EnableNameFieldEscape(rc.enableNameFieldEscape).
172172
SetPath(common.ApiReadingRoute).SetPath(common.Device).SetPath(common.Name).SetNameFieldPath(deviceName).SetPath(common.ResourceName).SetNameFieldPath(resourceName).BuildPath()
173173
res := responses.MultiReadingsResponse{}
174174
baseUrl, err := clients.GetBaseUrl(rc.baseUrlFunc)
175175
if err != nil {
176176
return res, errors.NewCommonEdgeXWrapper(err)
177177
}
178-
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(queryParams), rc.authInjector)
178+
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(offset, limit, queryParams), rc.authInjector)
179179
if err != nil {
180180
return res, errors.NewCommonEdgeXWrapper(err)
181181
}
182182
return res, nil
183183
}
184184

185185
func (rc readingClient) ReadingsByDeviceNameAndResourceNameAndTimeRange(ctx context.Context, deviceName, resourceName string, start, end int64, offset, limit int) (responses.MultiReadingsResponse, errors.EdgeX) {
186-
return rc.ReadingsByDeviceNameAndResourceNameAndTimeRangeWithQueryParams(ctx, deviceName, resourceName, start, end, map[string]string{common.Offset: strconv.Itoa(offset), common.Limit: strconv.Itoa(limit)})
186+
return rc.ReadingsByDeviceNameAndResourceNameAndTimeRangeWithQueryParams(ctx, deviceName, resourceName, start, end, offset, limit, nil)
187187
}
188188

189-
func (rc readingClient) ReadingsByDeviceNameAndResourceNameAndTimeRangeWithQueryParams(ctx context.Context, deviceName, resourceName string, start, end int64, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
189+
func (rc readingClient) ReadingsByDeviceNameAndResourceNameAndTimeRangeWithQueryParams(ctx context.Context, deviceName, resourceName string, start, end int64, offset, limit int, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
190190
requestPath := common.NewPathBuilder().EnableNameFieldEscape(rc.enableNameFieldEscape).
191191
SetPath(common.ApiReadingRoute).SetPath(common.Device).SetPath(common.Name).SetNameFieldPath(deviceName).SetPath(common.ResourceName).SetNameFieldPath(resourceName).
192192
SetPath(common.Start).SetPath(strconv.FormatInt(start, 10)).SetPath(common.End).SetPath(strconv.FormatInt(end, 10)).BuildPath()
@@ -195,18 +195,18 @@ func (rc readingClient) ReadingsByDeviceNameAndResourceNameAndTimeRangeWithQuery
195195
if err != nil {
196196
return res, errors.NewCommonEdgeXWrapper(err)
197197
}
198-
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(queryParams), rc.authInjector)
198+
err = utils.GetRequest(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(offset, limit, queryParams), rc.authInjector)
199199
if err != nil {
200200
return res, errors.NewCommonEdgeXWrapper(err)
201201
}
202202
return res, nil
203203
}
204204

205205
func (rc readingClient) ReadingsByDeviceNameAndResourceNamesAndTimeRange(ctx context.Context, deviceName string, resourceNames []string, start, end int64, offset, limit int) (responses.MultiReadingsResponse, errors.EdgeX) {
206-
return rc.ReadingsByDeviceNameAndResourceNamesAndTimeRangeWithQueryParams(ctx, deviceName, resourceNames, start, end, map[string]string{common.Offset: strconv.Itoa(offset), common.Limit: strconv.Itoa(limit)})
206+
return rc.ReadingsByDeviceNameAndResourceNamesAndTimeRangeWithQueryParams(ctx, deviceName, resourceNames, start, end, offset, limit, nil)
207207
}
208208

209-
func (rc readingClient) ReadingsByDeviceNameAndResourceNamesAndTimeRangeWithQueryParams(ctx context.Context, deviceName string, resourceNames []string, start, end int64, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
209+
func (rc readingClient) ReadingsByDeviceNameAndResourceNamesAndTimeRangeWithQueryParams(ctx context.Context, deviceName string, resourceNames []string, start, end int64, offset, limit int, queryParams map[string]string) (responses.MultiReadingsResponse, errors.EdgeX) {
210210
requestPath := common.NewPathBuilder().EnableNameFieldEscape(rc.enableNameFieldEscape).
211211
SetPath(common.ApiReadingRoute).SetPath(common.Device).SetPath(common.Name).SetNameFieldPath(deviceName).
212212
SetPath(common.Start).SetPath(strconv.FormatInt(start, 10)).SetPath(common.End).SetPath(strconv.FormatInt(end, 10)).BuildPath()
@@ -220,7 +220,7 @@ func (rc readingClient) ReadingsByDeviceNameAndResourceNamesAndTimeRangeWithQuer
220220
if err != nil {
221221
return res, errors.NewCommonEdgeXWrapper(err)
222222
}
223-
err = utils.GetRequestWithBodyRawData(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(queryParams), queryPayload, rc.authInjector)
223+
err = utils.GetRequestWithBodyRawData(ctx, &res, baseUrl, requestPath, utils.ToRequestParameters(offset, limit, queryParams), queryPayload, rc.authInjector)
224224
if err != nil {
225225
return res, errors.NewCommonEdgeXWrapper(err)
226226
}

0 commit comments

Comments
 (0)