Skip to content

Commit e81f09e

Browse files
authored
Merge pull request #830 from code0-tech/more-fixes
Fix some issues
2 parents a521d52 + 57df081 commit e81f09e

5 files changed

Lines changed: 32 additions & 7 deletions

File tree

app/finders/data_type_identifiers_finder.rb

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,11 @@ def add_related_identifiers_recursive_case
107107
end
108108

109109
def data_type_identifier_by_data_type_condition
110+
dt = DataType.arel_table
110111
dti = DataTypeIdentifier.arel_table
111112
dtr = DataTypeRule.arel_table
112113

113-
config_id_condition = dti[:id].eq(
114+
basic_rule_condition = dti[:id].eq(
114115
Arel::Nodes::NamedFunction.new(
115116
'CAST',
116117
[
@@ -122,7 +123,7 @@ def data_type_identifier_by_data_type_condition
122123
)
123124
)
124125

125-
array_condition = Arel::Nodes::NamedFunction.new(
126+
input_types_any_condition = Arel::Nodes::NamedFunction.new(
126127
'ANY',
127128
[
128129
Arel::Nodes::NamedFunction.new(
@@ -140,10 +141,12 @@ def data_type_identifier_by_data_type_condition
140141
]
141142
)
142143

143-
array_id_condition = dti[:id].eq(array_condition)
144+
input_types_rule_condition = dti[:id].eq(input_types_any_condition)
145+
146+
parent_type_condition = dt[:parent_type_id].eq(dti[:id])
144147

145148
Arel::Nodes::Grouping.new(
146-
config_id_condition.or(array_id_condition)
149+
basic_rule_condition.or(input_types_rule_condition).or(parent_type_condition)
147150
)
148151
end
149152
end

app/graphql/types/function_definition_type.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ def identifier
4646
object.runtime_function_definition&.runtime_name
4747
end
4848

49+
def generic_keys
50+
object.runtime_function_definition&.generic_keys
51+
end
52+
4953
def data_type_identifiers
5054
DataTypeIdentifiersFinder.new({ function_definition: object, expand_recursively: true }).execute
5155
end

app/graphql/types/parameter_definition_type.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ class ParameterDefinitionType < Types::BaseObject
88

99
field :identifier, String, null: false, description: 'Identifier of the parameter'
1010

11-
field :data_type_identifier, Types::DataTypeIdentifierType, null: true, description: 'Data type of the parameter'
11+
field :data_type_identifier, Types::DataTypeIdentifierType,
12+
null: true,
13+
description: 'Data type of the parameter',
14+
method: :data_type
1215

1316
field :descriptions, [Types::TranslationType], null: true, description: 'Description of the parameter'
1417
field :names, [Types::TranslationType], null: true, description: 'Name of the parameter'
@@ -19,5 +22,9 @@ class ParameterDefinitionType < Types::BaseObject
1922

2023
id_field ParameterDefinition
2124
timestamps
25+
26+
def identifier
27+
object.runtime_parameter_definition&.runtime_name
28+
end
2229
end
2330
end

app/services/runtimes/grpc/runtime_function_definitions/update_service.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ def update_runtime_function_definition(runtime_function_definition, t)
6565
db_object.display_messages)
6666
db_object.aliases = update_translations(runtime_function_definition.alias, db_object.aliases)
6767

68+
db_object.generic_keys = runtime_function_definition.generic_keys.to_a
69+
6870
db_object.throws_error = runtime_function_definition.throws_error
6971
db_object.version = runtime_function_definition.version
7072

spec/finders/data_type_identifiers_finder_spec.rb

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,13 @@
165165
end
166166
end
167167

168+
let!(:data_type_identifier_as_parent_type) do
169+
create(:data_type_identifier, data_type: data_type3, runtime: runtime).tap do |dti|
170+
data_type1.parent_type = dti
171+
data_type1.save!
172+
end
173+
end
174+
168175
let!(:data_type_identifier_in_generic_mapper_source) do
169176
create(:data_type_identifier, data_type: data_type1, runtime: runtime)
170177
end
@@ -204,7 +211,8 @@
204211
data_type_identifier_with_generic_mapper.id,
205212
data_type_identifier_in_generic_mapper_source.id,
206213
data_type_identifier_in_contains_type_rule.id,
207-
data_type_identifier_in_input_types_rule.id
214+
data_type_identifier_in_input_types_rule.id,
215+
data_type_identifier_as_parent_type.id
208216
)
209217
end
210218

@@ -273,7 +281,8 @@
273281
second_data_type_identifier_in_generic_mapper_source.id,
274282
data_type_identifier_in_generic_mapper_source.id,
275283
data_type_identifier_in_contains_type_rule.id,
276-
data_type_identifier_in_input_types_rule.id
284+
data_type_identifier_in_input_types_rule.id,
285+
data_type_identifier_as_parent_type.id
277286
)
278287
end
279288
end

0 commit comments

Comments
 (0)