|
91 | 91 | methods: { |
92 | 92 | get_all_output_fields: lambda do |input| |
93 | 93 | url = input[:view_id].present? ? "views/#{input[:view_id]}" : "users" |
| 94 | + relationshipForeignKeys = [] |
94 | 95 | Array.wrap(get(url)&.[]('structure')).reject { |field| field['name'] == "ID" }.map do |field| |
95 | 96 | case field['type'] |
96 | | - when 'number', 'currency', 'percentage', 'autoIncrement', 'relationship' |
| 97 | + when 'relationship' |
| 98 | + relationshipForeignKeys.push({ name: "f_#{field['fieldMetaId']}(id)", label: "#{field['name']}(id)", field_name: "#{field['name']}(id)", type: 'number' }) |
| 99 | + { name: "f_#{field['fieldMetaId']}", label: field['name'], field_name: field['name'], type: 'string' } |
| 100 | + when 'number', 'currency', 'percentage', 'autoIncrement', |
97 | 101 | { type: 'number' } |
98 | 102 | when 'date' |
99 | 103 | { type: 'date' } |
100 | 104 | when 'datetime' |
101 | 105 | { type: 'date_time' } |
102 | 106 | when 'point' |
103 | 107 | { type: 'object', properties: [ |
104 | | - { name: 'latitude', type: 'number', optional: false }, |
105 | | - { name: 'longitude', type: 'number', optional: false } |
| 108 | + { name: 'latitude', type: 'number' }, |
| 109 | + { name: 'longitude', type: 'number' } |
106 | 110 | ] } |
107 | 111 | when 'checkbox' |
108 | 112 | { type: :array, of: :object, properties: [ |
|
111 | 115 | else |
112 | 116 | {} |
113 | 117 | end.merge(name: "f_#{field['fieldMetaId']}", label: field['name'], field_name: field['name']) |
114 | | - end.concat([{ name: 'id' }]) |
| 118 | + end.concat(relationshipForeignKeys).concat([{ name: 'id' }]) |
115 | 119 | end, |
116 | 120 |
|
117 | 121 | get_output_fields: lambda do |input| |
|
0 commit comments