Skip to content

Commit 5882249

Browse files
committed
Migrate flow to tucana 0.0.36
1 parent 908fb31 commit 5882249

File tree

3 files changed

+77
-47
lines changed

3 files changed

+77
-47
lines changed

app/models/flow.rb

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,20 @@ def to_grpc
1818
input_type_identifier: input_type&.identifier,
1919
return_type_identifier: return_type&.identifier,
2020
settings: flow_settings.map(&:to_grpc),
21-
starting_node: starting_node.to_grpc
21+
starting_node_id: starting_node.id,
22+
node_functions: collect_node_functions
2223
)
2324
end
25+
26+
private
27+
28+
def collect_node_functions
29+
current_node = starting_node
30+
nodes = []
31+
until current_node.nil?
32+
nodes << current_node.to_grpc
33+
current_node = current_node.next_node
34+
end
35+
nodes
36+
end
2437
end

app/models/node_function.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def to_grpc
4545
database_id: id,
4646
runtime_function_id: runtime_function.runtime_name,
4747
parameters: node_parameters.map(&:to_grpc),
48-
next_node: next_node&.to_grpc
48+
next_node_id: next_node&.id
4949
)
5050
end
5151
end

spec/models/flow_spec.rb

Lines changed: 62 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -17,56 +17,73 @@
1717

1818
describe '#to_grpc' do
1919
let(:flow) do
20-
create(:flow,
21-
flow_settings: [
22-
create(:flow_setting,
23-
flow_setting_id: 'example_key',
24-
object: { some_key: 'some_value' })
25-
],
26-
starting_node: create(:node_function,
27-
node_parameters: [
28-
create(:node_parameter,
29-
runtime_parameter: create(:runtime_parameter_definition,
30-
data_type: create(:data_type_identifier,
31-
generic_key: 'T')))
32-
]))
20+
create(
21+
:flow,
22+
flow_settings: [
23+
create(
24+
:flow_setting,
25+
flow_setting_id: 'example_key',
26+
object: { some_key: 'some_value' }
27+
)
28+
],
29+
starting_node: create(
30+
:node_function,
31+
node_parameters: [
32+
create(
33+
:node_parameter,
34+
runtime_parameter: create(
35+
:runtime_parameter_definition,
36+
data_type: create(
37+
:data_type_identifier,
38+
generic_key: 'T'
39+
)
40+
)
41+
)
42+
]
43+
)
44+
)
3345
end
3446

3547
it 'matches the model' do
3648
grpc_object = flow.to_grpc
3749

38-
expect(grpc_object.to_h).to eq({
39-
flow_id: flow.id,
40-
project_id: flow.project.id,
41-
type: flow.flow_type.identifier,
42-
starting_node: {
43-
database_id: flow.starting_node.id,
44-
runtime_function_id: flow.starting_node.runtime_function.runtime_name,
45-
parameters: [
46-
{
47-
database_id: flow.starting_node.node_parameters.first.id,
48-
runtime_parameter_id:
49-
flow.starting_node.node_parameters.first.runtime_parameter.runtime_name,
50-
value: {
51-
literal_value: {
52-
string_value: flow.starting_node.node_parameters.first.literal_value,
53-
},
54-
},
55-
}
56-
],
57-
},
58-
settings: [
59-
database_id: flow.flow_settings.first.id,
60-
flow_setting_id: flow.flow_settings.first.flow_setting_id,
61-
object: {
62-
fields: {
63-
'some_key' => {
64-
string_value: flow.flow_settings.first.object['some_key'],
65-
},
66-
},
67-
}
68-
],
69-
})
50+
expect(grpc_object.to_h).to eq(
51+
{
52+
flow_id: flow.id,
53+
project_id: flow.project.id,
54+
type: flow.flow_type.identifier,
55+
node_functions: [
56+
{
57+
database_id: flow.starting_node.id,
58+
runtime_function_id: flow.starting_node.runtime_function.runtime_name,
59+
parameters: [
60+
{
61+
database_id: flow.starting_node.node_parameters.first.id,
62+
runtime_parameter_id:
63+
flow.starting_node.node_parameters.first.runtime_parameter.runtime_name,
64+
value: {
65+
literal_value: {
66+
string_value: flow.starting_node.node_parameters.first.literal_value,
67+
},
68+
},
69+
}
70+
],
71+
}
72+
],
73+
starting_node_id: flow.starting_node.id,
74+
settings: [
75+
database_id: flow.flow_settings.first.id,
76+
flow_setting_id: flow.flow_settings.first.flow_setting_id,
77+
object: {
78+
fields: {
79+
'some_key' => {
80+
string_value: flow.flow_settings.first.object['some_key'],
81+
},
82+
},
83+
}
84+
],
85+
}
86+
)
7087
end
7188
end
7289
end

0 commit comments

Comments
 (0)