@@ -9,16 +9,30 @@ const getAccessToken = (config) => {
9
9
return axios . get ( url , { headers : headers } ) ;
10
10
} ;
11
11
12
+ const isSingleOrMultiple = ( type ) => {
13
+ return type === ColumnTypes . SINGLE_SELECT || type === ColumnTypes . MULTIPLE_SELECT ;
14
+ }
15
+
16
+ const formatColumnOptionsToMap = ( column ) => {
17
+ const { options = [ ] } = column . data || { } ;
18
+ let options_map = { } ;
19
+ options . forEach ( option => {
20
+ options_map [ option . id ] = option . name ;
21
+ } ) ;
22
+ return options_map ;
23
+ } ;
24
+
12
25
const formatQueryResult = ( result ) => {
13
26
const { metadata : columns , results : rows } = result ;
14
27
const columnMap = columns . reduce ( ( keyMap , column ) => {
15
- if ( column . type === ColumnTypes . SINGLE_SELECT || column . type === ColumnTypes . MULTIPLE_SELECT ) {
16
- const { options = [ ] } = column . data || { } ;
17
- let options_map = { } ;
18
- options . forEach ( option => {
19
- options_map [ option . id ] = option . name ;
20
- } ) ;
21
- column . options_map = options_map ;
28
+ if ( isSingleOrMultiple ( column . type ) ) {
29
+ column . options_map = formatColumnOptionsToMap ( column ) ;
30
+ }
31
+ if ( column . type === ColumnTypes . LINK || column . type === ColumnTypes . LINK_FORMULA ) {
32
+ const { array_type, array_data } = column . data ;
33
+ if ( isSingleOrMultiple ( array_type ) ) {
34
+ column . options_map = formatColumnOptionsToMap ( { data : array_data } ) ;
35
+ }
22
36
}
23
37
keyMap [ column . key ] = column ;
24
38
return keyMap ;
@@ -47,8 +61,13 @@ const formatQueryResult = (result) => {
47
61
case ColumnTypes . LINK_FORMULA : {
48
62
if ( ! Array . isArray ( cellValue ) ) {
49
63
cellValue = [ ] ;
50
- } else {
64
+ break ;
65
+ }
66
+ const { array_type } = data ;
67
+ if ( ! isSingleOrMultiple ( array_type ) ) {
51
68
cellValue = cellValue . map ( item => item . display_value ) ;
69
+ } else {
70
+ cellValue = cellValue . map ( item => options_map [ item . display_value ] ) ;
52
71
}
53
72
break ;
54
73
}
0 commit comments