@@ -21,6 +21,7 @@ import (
21
21
"github.com/edgexfoundry/go-mod-core-contracts/v4/models"
22
22
23
23
"github.com/edgexfoundry/edgex-go/internal/core/data/container"
24
+ "github.com/edgexfoundry/edgex-go/internal/core/data/query"
24
25
"github.com/edgexfoundry/edgex-go/internal/pkg/correlation"
25
26
"github.com/edgexfoundry/edgex-go/internal/pkg/utils"
26
27
@@ -188,83 +189,87 @@ func (a *CoreDataApp) DeleteEventsByDeviceName(deviceName string, dic *di.Contai
188
189
}
189
190
190
191
// AllEvents query events by offset and limit
191
- func (a * CoreDataApp ) AllEvents (offset int , limit int , dic * di.Container ) (events []dtos.Event , totalCount uint32 , err errors.EdgeX ) {
192
+ func (a * CoreDataApp ) AllEvents (parms query. Parameters , dic * di.Container ) (events []dtos.Event , totalCount uint32 , err errors.EdgeX ) {
192
193
dbClient := container .DBClientFrom (dic .Get )
193
194
194
- eventModels , err := dbClient .AllEvents (offset , limit )
195
+ eventModels , err := dbClient .AllEvents (parms . Offset , parms . Limit )
195
196
if err != nil {
196
197
return events , totalCount , errors .NewCommonEdgeXWrapper (err )
197
198
}
198
199
events = make ([]dtos.Event , len (eventModels ))
199
200
for i , e := range eventModels {
200
201
events [i ] = dtos .FromEventModelToDTO (e )
202
+ processNumericReadings (parms .Numeric , events [i ].Readings )
201
203
}
202
- if offset < 0 {
204
+ if parms . Offset < 0 {
203
205
return events , 0 , err // skip total count
204
206
}
205
207
206
208
totalCount , err = dbClient .EventTotalCount ()
207
209
if err != nil {
208
210
return events , totalCount , errors .NewCommonEdgeXWrapper (err )
209
211
}
210
- cont , err := utils .CheckCountRange (totalCount , offset , limit )
212
+ cont , err := utils .CheckCountRange (totalCount , parms . Offset , parms . Limit )
211
213
if ! cont {
212
214
return []dtos.Event {}, totalCount , err
213
215
}
216
+
214
217
return events , totalCount , nil
215
218
}
216
219
217
220
// EventsByDeviceName query events with offset, limit and name
218
- func (a * CoreDataApp ) EventsByDeviceName (offset int , limit int , name string , dic * di.Container ) (events []dtos.Event , totalCount uint32 , err errors.EdgeX ) {
221
+ func (a * CoreDataApp ) EventsByDeviceName (parms query. Parameters , name string , dic * di.Container ) (events []dtos.Event , totalCount uint32 , err errors.EdgeX ) {
219
222
if name == "" {
220
223
return events , totalCount , errors .NewCommonEdgeX (errors .KindContractInvalid , "name is empty" , nil )
221
224
}
222
225
dbClient := container .DBClientFrom (dic .Get )
223
226
224
- eventModels , err := dbClient .EventsByDeviceName (offset , limit , name )
227
+ eventModels , err := dbClient .EventsByDeviceName (parms . Offset , parms . Limit , name )
225
228
if err != nil {
226
229
return events , totalCount , errors .NewCommonEdgeXWrapper (err )
227
230
}
228
231
events = make ([]dtos.Event , len (eventModels ))
229
232
for i , e := range eventModels {
230
233
events [i ] = dtos .FromEventModelToDTO (e )
234
+ processNumericReadings (parms .Numeric , events [i ].Readings )
231
235
}
232
- if offset < 0 {
236
+ if parms . Offset < 0 {
233
237
return events , 0 , err // skip total count
234
238
}
235
239
236
240
totalCount , err = dbClient .EventCountByDeviceName (name )
237
241
if err != nil {
238
242
return events , totalCount , errors .NewCommonEdgeXWrapper (err )
239
243
}
240
- cont , err := utils .CheckCountRange (totalCount , offset , limit )
244
+ cont , err := utils .CheckCountRange (totalCount , parms . Offset , parms . Limit )
241
245
if ! cont {
242
246
return []dtos.Event {}, totalCount , err
243
247
}
244
248
return events , totalCount , nil
245
249
}
246
250
247
251
// EventsByTimeRange query events with offset, limit and time range
248
- func (a * CoreDataApp ) EventsByTimeRange (startTime int64 , endTime int64 , offset int , limit int , dic * di.Container ) (events []dtos.Event , totalCount uint32 , err errors.EdgeX ) {
252
+ func (a * CoreDataApp ) EventsByTimeRange (parms query. Parameters , dic * di.Container ) (events []dtos.Event , totalCount uint32 , err errors.EdgeX ) {
249
253
dbClient := container .DBClientFrom (dic .Get )
250
254
251
- eventModels , err := dbClient .EventsByTimeRange (startTime , endTime , offset , limit )
255
+ eventModels , err := dbClient .EventsByTimeRange (parms . Start , parms . End , parms . Offset , parms . Limit )
252
256
if err != nil {
253
257
return events , totalCount , errors .NewCommonEdgeXWrapper (err )
254
258
}
255
259
events = make ([]dtos.Event , len (eventModels ))
256
260
for i , e := range eventModels {
257
261
events [i ] = dtos .FromEventModelToDTO (e )
262
+ processNumericReadings (parms .Numeric , events [i ].Readings )
258
263
}
259
- if offset < 0 {
264
+ if parms . Offset < 0 {
260
265
return events , 0 , err // skip total count
261
266
}
262
267
263
- totalCount , err = dbClient .EventCountByTimeRange (startTime , endTime )
268
+ totalCount , err = dbClient .EventCountByTimeRange (parms . Start , parms . End )
264
269
if err != nil {
265
270
return events , totalCount , errors .NewCommonEdgeXWrapper (err )
266
271
}
267
- cont , err := utils .CheckCountRange (totalCount , offset , limit )
272
+ cont , err := utils .CheckCountRange (totalCount , parms . Offset , parms . Limit )
268
273
if ! cont {
269
274
return []dtos.Event {}, totalCount , err
270
275
}
0 commit comments