11// Process NinjaOne ticketing board data
22const items = ( data && data . data && Array . isArray ( data . data ) ) ? data . data : ( Array . isArray ( data ) ? data : [ ] ) ;
33
4+ // Apply SquaredUp timeframe client-side: the trigger/board endpoint has no
5+ // documented date-filter syntax, so filter raw Unix-second values here before
6+ // they get converted to ISO strings below.
7+ const startTime = parseInt ( '{{timeframe.unixStart}}' , 10 ) ;
8+ const endTime = parseInt ( '{{timeframe.unixEnd}}' , 10 ) ;
9+ const hasTimeframe = Number . isFinite ( startTime ) && Number . isFinite ( endTime ) ;
10+
11+ const pickTimestamp = ( item ) => {
12+ const candidates = [ item . updatedAt , item . lastActivityAt , item . createdAt ] ;
13+ for ( const v of candidates ) {
14+ if ( typeof v === 'number' && v > 1000000000 && v < 10000000000 ) return v ;
15+ }
16+ return null ;
17+ } ;
18+
19+ const filtered = hasTimeframe
20+ ? items . filter ( ( item ) => {
21+ const ts = pickTimestamp ( item ) ;
22+ return ts !== null && ts >= startTime && ts <= endTime ;
23+ } )
24+ : items ;
25+
426/**
527 * Recursively converts NinjaOne Unix timestamps (seconds) to ISO strings.
6- * @param {any } obj
28+ * @param {any } obj
729 * @returns {any }
830 */
931const convertTimestamps = ( obj ) => {
@@ -25,7 +47,7 @@ const convertTimestamps = (obj) => {
2547 return obj ;
2648} ;
2749
28- result = items . map ( item => {
50+ result = filtered . map ( item => {
2951 const converted = convertTimestamps ( item ) ;
3052
3153 return {
0 commit comments