forest_admin_datasource_rpc 1.39.4 → 1.40.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f91ad4533fc7c233fb03829bc6c41942af5ef0e3e22db69bab2124df3099a681
|
|
4
|
+
data.tar.gz: 1daa791444a0fd7c656cf53a42429c6656d1126b9894928ac2913faf14534d57
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3201b1c4320983cd477acce87b73686b679a2e9269348c07c13af28e12deee98a39385dc36df3a339cb1a0cf740f4cb688875ae17778d105e63a49dda38175f3
|
|
7
|
+
data.tar.gz: '08c0b351a717560674f147db753e062106ac405b8f8bfeaa7bc3a7f66443efce78ca24bd3e102b45e65c27d892964c22d8378435a0482565bad405faede8fedd'
|
|
@@ -28,34 +28,26 @@ module ForestAdminDatasourceRpc
|
|
|
28
28
|
@schema[:aggregation_capabilities] = schema[:aggregation_capabilities] if schema[:aggregation_capabilities]
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
+
FIELD_CLASSES = {
|
|
32
|
+
'Column' => ForestAdminDatasourceToolkit::Schema::ColumnSchema,
|
|
33
|
+
'ManyToMany' => ForestAdminDatasourceToolkit::Schema::Relations::ManyToManySchema,
|
|
34
|
+
'OneToMany' => ForestAdminDatasourceToolkit::Schema::Relations::OneToManySchema,
|
|
35
|
+
'ManyToOne' => ForestAdminDatasourceToolkit::Schema::Relations::ManyToOneSchema,
|
|
36
|
+
'OneToOne' => ForestAdminDatasourceToolkit::Schema::Relations::OneToOneSchema,
|
|
37
|
+
'PolymorphicManyToOne' => ForestAdminDatasourceToolkit::Schema::Relations::PolymorphicManyToOneSchema,
|
|
38
|
+
'PolymorphicOneToMany' => ForestAdminDatasourceToolkit::Schema::Relations::PolymorphicOneToManySchema,
|
|
39
|
+
'PolymorphicOneToOne' => ForestAdminDatasourceToolkit::Schema::Relations::PolymorphicOneToOneSchema
|
|
40
|
+
}.freeze
|
|
41
|
+
|
|
42
|
+
KEYWORD_PARAM_KINDS = %i[key keyreq].freeze
|
|
43
|
+
|
|
31
44
|
def add_fields(fields)
|
|
32
45
|
fields.each do |field_name, schema|
|
|
33
46
|
field_name = field_name.to_s
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
case type
|
|
39
|
-
when 'Column'
|
|
40
|
-
add_field(field_name, ForestAdminDatasourceToolkit::Schema::ColumnSchema.new(**schema))
|
|
41
|
-
when 'ManyToMany'
|
|
42
|
-
add_field(field_name, ForestAdminDatasourceToolkit::Schema::Relations::ManyToManySchema.new(**schema))
|
|
43
|
-
when 'OneToMany'
|
|
44
|
-
add_field(field_name, ForestAdminDatasourceToolkit::Schema::Relations::OneToManySchema.new(**schema))
|
|
45
|
-
when 'ManyToOne'
|
|
46
|
-
add_field(field_name, ForestAdminDatasourceToolkit::Schema::Relations::ManyToOneSchema.new(**schema))
|
|
47
|
-
when 'OneToOne'
|
|
48
|
-
add_field(field_name, ForestAdminDatasourceToolkit::Schema::Relations::OneToOneSchema.new(**schema))
|
|
49
|
-
when 'PolymorphicManyToOne'
|
|
50
|
-
add_field(field_name,
|
|
51
|
-
ForestAdminDatasourceToolkit::Schema::Relations::PolymorphicManyToOneSchema.new(**schema))
|
|
52
|
-
when 'PolymorphicOneToMany'
|
|
53
|
-
add_field(field_name,
|
|
54
|
-
ForestAdminDatasourceToolkit::Schema::Relations::PolymorphicOneToManySchema.new(**schema))
|
|
55
|
-
when 'PolymorphicOneToOne'
|
|
56
|
-
add_field(field_name,
|
|
57
|
-
ForestAdminDatasourceToolkit::Schema::Relations::PolymorphicOneToOneSchema.new(**schema))
|
|
58
|
-
end
|
|
47
|
+
klass = FIELD_CLASSES[schema[:type]]
|
|
48
|
+
next unless klass
|
|
49
|
+
|
|
50
|
+
add_field(field_name, klass.new(**accepted_keywords(klass, schema)))
|
|
59
51
|
end
|
|
60
52
|
end
|
|
61
53
|
|
|
@@ -175,6 +167,18 @@ module ForestAdminDatasourceRpc
|
|
|
175
167
|
@base_params.merge(extra_params)
|
|
176
168
|
end
|
|
177
169
|
|
|
170
|
+
# Filters a deserialized field payload down to whatever klass#initialize actually accepts,
|
|
171
|
+
# instead of deleting specific keys by name -- an attribute the RPC agent's schema
|
|
172
|
+
# serialization adds later (or a version mismatch between agents) shouldn't crash
|
|
173
|
+
# hydration on this side.
|
|
174
|
+
def accepted_keywords(klass, schema)
|
|
175
|
+
accepted = klass.instance_method(:initialize).parameters.filter_map do |kind, name|
|
|
176
|
+
name if KEYWORD_PARAM_KINDS.include?(kind)
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
schema.slice(*accepted)
|
|
180
|
+
end
|
|
181
|
+
|
|
178
182
|
def encode_form_data(data)
|
|
179
183
|
data.to_h do |key, value|
|
|
180
184
|
if value.is_a?(Hash) && value.key?('buffer')
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: forest_admin_datasource_rpc
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.40.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matthieu
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2026-08-
|
|
12
|
+
date: 2026-08-28 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: base64
|