@@ -24,6 +24,7 @@ import { listExecutionEvents, storeExecutionEvent } from '../services/execution-
24
24
import { TxManager } from '../services/txm'
25
25
import { checkKeyExistence } from '../services/store'
26
26
import { NodeCollectionName } from '../persistence/model'
27
+ import * as Logger from '../utils/logger'
27
28
28
29
29
30
export const eventsRouter : Foxx . Router = createRouter ( )
@@ -32,6 +33,10 @@ function toBoolean(str: string): boolean {
32
33
return str == null ? null : str . toLowerCase ( ) === 'true'
33
34
}
34
35
36
+ function toNumber ( str : string ) : number {
37
+ return str == null ? null : + str
38
+ }
39
+
35
40
// Store execution event
36
41
eventsRouter
37
42
. post ( '/' ,
@@ -48,37 +53,35 @@ eventsRouter
48
53
eventsRouter
49
54
. get ( '/' ,
50
55
( req : Foxx . Request , res : Foxx . Response ) => {
56
+ Logger . debug ( `Foxx: GET ${ req . url } ` )
51
57
const events = listExecutionEvents (
52
- + req . queryParams . asAtTime ,
53
- + req . queryParams . timestampStart ,
54
- + req . queryParams . timestampEnd ,
55
- + req . queryParams . pageOffset ,
56
- + req . queryParams . pageSize ,
57
- req . queryParams . sortField ,
58
- req . queryParams . sortOrder ,
58
+ toNumber ( req . queryParams . asAtTime ) ,
59
+ toNumber ( req . queryParams . timestampStart ) ,
60
+ toNumber ( req . queryParams . timestampEnd ) ,
59
61
req . queryParams . searchTerm || null ,
60
62
toBoolean ( req . queryParams . writeAppends ) ,
61
63
req . queryParams . applicationId || null ,
62
64
req . queryParams . dataSourceUri || null ,
63
- req . queryParams . lblNames || [ ] ,
64
- req . queryParams . lblValues || [ ]
65
+ JSON . parse ( req . queryParams . labels || '[]' ) ,
66
+ req . queryParams . sortField ,
67
+ req . queryParams . sortOrder ,
68
+ toNumber ( req . queryParams . offset ) ,
69
+ toNumber ( req . queryParams . limit ) ,
65
70
)
66
71
res . send ( events )
67
72
} )
68
- //todo: add query params validation
69
- // .queryParam('asAtTime', Joi.number().required())
70
- // .queryParam('timestampStart', Joi.number().optional())
71
- // .queryParam('timestampEnd', Joi.number().optional())
72
- // .queryParam('pageOffset', Joi.number().required())
73
- // .queryParam('pageSize', Joi.number().required())
74
- // .queryParam('sortField', Joi.string().required())
75
- // .queryParam('sortOrder', Joi.string().required())
76
- // .queryParam('searchTerm', Joi.string().optional())
77
- // .queryParam('writeAppends', Joi.boolean().optional())
78
- // .queryParam('applicationId', Joi.string().optional())
79
- // .queryParam('dataSourceUri', Joi.string().optional())
80
- // .queryParam('lblNames', Joi.array().items(Joi.string()).required())
81
- // .queryParam('lblValues', Joi.array().items(Joi.string()).required())
73
+ . queryParam ( 'asAtTime' , Joi . number ( ) . required ( ) )
74
+ . queryParam ( 'timestampStart' , Joi . number ( ) . optional ( ) )
75
+ . queryParam ( 'timestampEnd' , Joi . number ( ) . optional ( ) )
76
+ . queryParam ( 'searchTerm' , Joi . string ( ) . optional ( ) )
77
+ . queryParam ( 'writeAppends' , Joi . boolean ( ) . optional ( ) )
78
+ . queryParam ( 'applicationId' , Joi . string ( ) . optional ( ) )
79
+ . queryParam ( 'dataSourceUri' , Joi . string ( ) . optional ( ) )
80
+ . queryParam ( 'labels' , Joi . string ( ) . optional ( ) ) // serialized JSON array
81
+ . queryParam ( 'sortField' , Joi . string ( ) . required ( ) )
82
+ . queryParam ( 'sortOrder' , Joi . string ( ) . required ( ) )
83
+ . queryParam ( 'offset' , Joi . number ( ) . required ( ) )
84
+ . queryParam ( 'limit' , Joi . number ( ) . required ( ) )
82
85
. response ( 200 , [ 'application/json' ] )
83
86
. summary ( 'List execution events' )
84
87
0 commit comments