1+ import { jsonCopy } from "./general" ;
2+
3+ export function postProcessRecord ( record : any , attributes : any [ ] ) {
4+ const prepareRecord = jsonCopy ( record ) ;
5+ if ( ! prepareRecord . hasOwnProperty ( 'data' ) ) {
6+ if ( prepareRecord . hasOwnProperty ( 'fullRecordData' ) ) {
7+ prepareRecord . data = prepareRecord . fullRecordData ;
8+ }
9+ else if ( prepareRecord . hasOwnProperty ( 'recordData' ) ) {
10+ prepareRecord . data = prepareRecord . recordData ;
11+ } else {
12+ throw new Error ( "Cant find record data in record object" ) ;
13+ }
14+ }
15+ attributes . forEach ( ( attribute , index ) => {
16+ if ( typeof prepareRecord . data [ attribute . name ] === 'boolean' ) {
17+ prepareRecord . data [ attribute . name ] = prepareRecord . data [ attribute . name ] . toString ( ) ;
18+ }
19+ } ) ;
20+ return prepareRecord ;
21+ }
22+
23+ export function postProcessAttributes ( attributes : any [ ] ) {
24+ const prepareAttributes = jsonCopy ( attributes ) ;
25+ if ( attributes && attributes . length > 0 ) {
26+ if ( ! attributes [ 0 ] . hasOwnProperty ( 'key' ) ) {
27+ prepareAttributes . forEach ( ( attribute , index ) => {
28+ if ( attribute . id !== null ) {
29+ attribute . key = attribute . id ;
30+ } else {
31+ throw new Error ( "Cant find attribute id in attribute object" ) ;
32+ }
33+ } ) ;
34+ }
35+ }
36+ return prepareAttributes ;
37+ }
38+
39+ export function postProcessUpdateAndSortRecords ( prev : any [ ] , newRecords : any [ ] ) {
40+ const merged = [ ...prev , ...newRecords ] ;
41+ const uniqueRecords = Array . from (
42+ new Map ( merged . map ( ( item ) => [ item . data ?. running_id , item ] ) ) . values ( )
43+ ) ;
44+ uniqueRecords . sort (
45+ ( a , b ) => ( a . data ?. running_id || 0 ) - ( b . data ?. running_id || 0 )
46+ ) ;
47+ return uniqueRecords ;
48+ }
0 commit comments