Skip to content

Commit c94b527

Browse files
committed
improve with chains
1 parent 5291253 commit c94b527

5 files changed

Lines changed: 78 additions & 92 deletions

File tree

lib/access/resources/cable.ex

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,14 @@ defmodule DiffoExample.Access.Cable do
6464
end)
6565

6666
change after_action(fn changeset, result, _context ->
67-
with {:ok, with_specification} <- Specification.relate_instance(result, changeset),
68-
{:ok, with_relationships} <-
69-
Relationship.relate_instance(with_specification, changeset),
70-
{:ok, with_features} <-
71-
Feature.relate_instance(with_relationships, changeset),
72-
{:ok, with_characteristics} <-
73-
Characteristic.relate_instance(with_features, changeset),
74-
{:ok, with_places} <- Place.relate_instance(with_characteristics, changeset),
75-
{:ok, _with_parties} <- Party.relate_instance(with_places, changeset),
76-
{:ok, cable} <- Access.get_cable_by_id(result.id),
77-
do: {:ok, cable}
67+
with {:ok, result} <- Specification.relate_instance(result, changeset),
68+
{:ok, result} <- Relationship.relate_instance(result, changeset),
69+
{:ok, result} <- Feature.relate_instance(result, changeset),
70+
{:ok, result} <- Characteristic.relate_instance(result, changeset),
71+
{:ok, result} <- Place.relate_instance(result, changeset),
72+
{:ok, result} <- Party.relate_instance(result, changeset),
73+
{:ok, result} <- Access.get_cable_by_id(result.id),
74+
do: {:ok, result}
7875
end)
7976

8077
change load [:href]
@@ -86,9 +83,9 @@ defmodule DiffoExample.Access.Cable do
8683
argument :characteristic_value_updates, {:array, :term}
8784

8885
change after_action(fn changeset, result, _context ->
89-
with {:ok, _result} <- Characteristic.update_values(result, changeset),
90-
{:ok, cable} <- Access.get_cable_by_id(result.id),
91-
do: {:ok, cable}
86+
with {:ok, result} <- Characteristic.update_values(result, changeset),
87+
{:ok, result} <- Access.get_cable_by_id(result.id),
88+
do: {:ok, result}
9289
end)
9390
end
9491

@@ -97,9 +94,9 @@ defmodule DiffoExample.Access.Cable do
9794
argument :relationships, {:array, :struct}
9895

9996
change after_action(fn changeset, result, _context ->
100-
with {:ok, _cable} <- Relationship.relate_instance(result, changeset),
101-
{:ok, cable} <- Access.get_cable_by_id(result.id),
102-
do: {:ok, cable}
97+
with {:ok, result} <- Relationship.relate_instance(result, changeset),
98+
{:ok, result} <- Access.get_cable_by_id(result.id),
99+
do: {:ok, result}
103100
end)
104101
end
105102

@@ -108,9 +105,9 @@ defmodule DiffoExample.Access.Cable do
108105
argument :assignment, :struct, constraints: [instance_of: Assignment]
109106

110107
change after_action(fn changeset, result, _context ->
111-
with {:ok, _cable} <- Assigner.assign(result, changeset, :pairs, :pair),
112-
{:ok, cable} <- Access.get_cable_by_id(result.id),
113-
do: {:ok, cable}
108+
with {:ok, result} <- Assigner.assign(result, changeset, :pairs, :pair),
109+
{:ok, result} <- Access.get_cable_by_id(result.id),
110+
do: {:ok, result}
114111
end)
115112
end
116113
end

lib/access/resources/card.ex

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,14 @@ defmodule DiffoExample.Access.Card do
6464
end)
6565

6666
change after_action(fn changeset, result, _context ->
67-
with {:ok, with_specification} <- Specification.relate_instance(result, changeset),
68-
{:ok, with_relationships} <-
69-
Relationship.relate_instance(with_specification, changeset),
70-
{:ok, with_features} <-
71-
Feature.relate_instance(with_relationships, changeset),
72-
{:ok, with_characteristics} <-
73-
Characteristic.relate_instance(with_features, changeset),
74-
{:ok, with_places} <- Place.relate_instance(with_characteristics, changeset),
75-
{:ok, _with_parties} <- Party.relate_instance(with_places, changeset),
76-
{:ok, card} <- Access.get_card_by_id(result.id),
77-
do: {:ok, card}
67+
with {:ok, result} <- Specification.relate_instance(result, changeset),
68+
{:ok, result} <- Relationship.relate_instance(result, changeset),
69+
{:ok, result} <- Feature.relate_instance(result, changeset),
70+
{:ok, result} <- Characteristic.relate_instance(result, changeset),
71+
{:ok, result} <- Place.relate_instance(result, changeset),
72+
{:ok, result} <- Party.relate_instance(result, changeset),
73+
{:ok, result} <- Access.get_card_by_id(result.id),
74+
do: {:ok, result}
7875
end)
7976

8077
change load [:href]
@@ -86,9 +83,9 @@ defmodule DiffoExample.Access.Card do
8683
argument :characteristic_value_updates, {:array, :term}
8784

8885
change after_action(fn changeset, result, _context ->
89-
with {:ok, _result} <- Characteristic.update_values(result, changeset),
90-
{:ok, card} <- Access.get_card_by_id(result.id),
91-
do: {:ok, card}
86+
with {:ok, result} <- Characteristic.update_values(result, changeset),
87+
{:ok, result} <- Access.get_card_by_id(result.id),
88+
do: {:ok, result}
9289
end)
9390
end
9491

@@ -97,9 +94,9 @@ defmodule DiffoExample.Access.Card do
9794
argument :relationships, {:array, :struct}
9895

9996
change after_action(fn changeset, result, _context ->
100-
with {:ok, _card} <- Relationship.relate_instance(result, changeset),
101-
{:ok, card} <- Access.get_card_by_id(result.id),
102-
do: {:ok, card}
97+
with {:ok, result} <- Relationship.relate_instance(result, changeset),
98+
{:ok, result} <- Access.get_card_by_id(result.id),
99+
do: {:ok, result}
103100
end)
104101
end
105102

@@ -108,9 +105,9 @@ defmodule DiffoExample.Access.Card do
108105
argument :assignment, :struct, constraints: [instance_of: Assignment]
109106

110107
change after_action(fn changeset, result, _context ->
111-
with {:ok, _card} <- Assigner.assign(result, changeset, :ports, :port),
112-
{:ok, card} <- Access.get_card_by_id(result.id),
113-
do: {:ok, card}
108+
with {:ok, result} <- Assigner.assign(result, changeset, :ports, :port),
109+
{:ok, result} <- Access.get_card_by_id(result.id),
110+
do: {:ok, result}
114111
end)
115112
end
116113
end

lib/access/resources/path.ex

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -61,17 +61,14 @@ defmodule DiffoExample.Access.Path do
6161
end)
6262

6363
change after_action(fn changeset, result, _context ->
64-
with {:ok, with_specification} <- Specification.relate_instance(result, changeset),
65-
{:ok, with_relationships} <-
66-
Relationship.relate_instance(with_specification, changeset),
67-
{:ok, with_features} <-
68-
Feature.relate_instance(with_relationships, changeset),
69-
{:ok, with_characteristics} <-
70-
Characteristic.relate_instance(with_features, changeset),
71-
{:ok, with_places} <- Place.relate_instance(with_characteristics, changeset),
72-
{:ok, _with_parties} <- Party.relate_instance(with_places, changeset),
73-
{:ok, path} <- Access.get_path_by_id(result.id),
74-
do: {:ok, path}
64+
with {:ok, result} <- Specification.relate_instance(result, changeset),
65+
{:ok, result} <- Relationship.relate_instance(result, changeset),
66+
{:ok, result} <- Feature.relate_instance(result, changeset),
67+
{:ok, result} <- Characteristic.relate_instance(result, changeset),
68+
{:ok, result} <- Place.relate_instance(result, changeset),
69+
{:ok, result} <- Party.relate_instance(result, changeset),
70+
{:ok, result} <- Access.get_path_by_id(result.id),
71+
do: {:ok, result}
7572
end)
7673

7774
change load [:href]
@@ -83,9 +80,9 @@ defmodule DiffoExample.Access.Path do
8380
argument :characteristic_value_updates, {:array, :term}
8481

8582
change after_action(fn changeset, result, _context ->
86-
with {:ok, _result} <- Characteristic.update_values(result, changeset),
87-
{:ok, path} <- Access.get_path_by_id(result.id),
88-
do: {:ok, path}
83+
with {:ok, result} <- Characteristic.update_values(result, changeset),
84+
{:ok, result} <- Access.get_path_by_id(result.id),
85+
do: {:ok, result}
8986
end)
9087
end
9188

@@ -94,9 +91,9 @@ defmodule DiffoExample.Access.Path do
9491
argument :relationships, {:array, :struct}
9592

9693
change after_action(fn changeset, result, _context ->
97-
with {:ok, _path} <- Relationship.relate_instance(result, changeset),
98-
{:ok, path} <- Access.get_path_by_id(result.id),
99-
do: {:ok, path}
94+
with {:ok, result} <- Relationship.relate_instance(result, changeset),
95+
{:ok, result} <- Access.get_path_by_id(result.id),
96+
do: {:ok, result}
10097
end)
10198
end
10299
end

lib/access/resources/shelf.ex

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,14 @@ defmodule DiffoExample.Access.Shelf do
6464
end)
6565

6666
change after_action(fn changeset, result, _context ->
67-
with {:ok, with_specification} <- Specification.relate_instance(result, changeset),
68-
{:ok, with_relationships} <-
69-
Relationship.relate_instance(with_specification, changeset),
70-
{:ok, with_features} <-
71-
Feature.relate_instance(with_relationships, changeset),
72-
{:ok, with_characteristics} <-
73-
Characteristic.relate_instance(with_features, changeset),
74-
{:ok, with_places} <- Place.relate_instance(with_characteristics, changeset),
75-
{:ok, _with_parties} <- Party.relate_instance(with_places, changeset),
76-
{:ok, shelf} <- Access.get_shelf_by_id(result.id),
77-
do: {:ok, shelf}
67+
with {:ok, result} <- Specification.relate_instance(result, changeset),
68+
{:ok, result} <- Relationship.relate_instance(result, changeset),
69+
{:ok, result} <- Feature.relate_instance(result, changeset),
70+
{:ok, result} <- Characteristic.relate_instance(result, changeset),
71+
{:ok, result} <- Place.relate_instance(result, changeset),
72+
{:ok, result} <- Party.relate_instance(result, changeset),
73+
{:ok, result} <- Access.get_shelf_by_id(result.id),
74+
do: {:ok, result}
7875
end)
7976

8077
change load [:href]
@@ -86,9 +83,9 @@ defmodule DiffoExample.Access.Shelf do
8683
argument :characteristic_value_updates, {:array, :term}
8784

8885
change after_action(fn changeset, result, _context ->
89-
with {:ok, _result} <- Characteristic.update_values(result, changeset),
90-
{:ok, card} <- Access.get_shelf_by_id(result.id),
91-
do: {:ok, card}
86+
with {:ok, result} <- Characteristic.update_values(result, changeset),
87+
{:ok, result} <- Access.get_shelf_by_id(result.id),
88+
do: {:ok, result}
9289
end)
9390
end
9491

@@ -97,9 +94,9 @@ defmodule DiffoExample.Access.Shelf do
9794
argument :relationships, {:array, :struct}
9895

9996
change after_action(fn changeset, result, _context ->
100-
with {:ok, _shelf} <- Relationship.relate_instance(result, changeset),
101-
{:ok, shelf} <- Access.get_shelf_by_id(result.id),
102-
do: {:ok, shelf}
97+
with {:ok, result} <- Relationship.relate_instance(result, changeset),
98+
{:ok, result} <- Access.get_shelf_by_id(result.id),
99+
do: {:ok, result}
103100
end)
104101
end
105102

@@ -108,9 +105,9 @@ defmodule DiffoExample.Access.Shelf do
108105
argument :assignment, :struct, constraints: [instance_of: Assignment]
109106

110107
change after_action(fn changeset, result, _context ->
111-
with {:ok, _card} <- Assigner.assign(result, changeset, :slots, :slot),
112-
{:ok, card} <- Access.get_shelf_by_id(result.id),
113-
do: {:ok, card}
108+
with {:ok, result} <- Assigner.assign(result, changeset, :slots, :slot),
109+
{:ok, result} <- Access.get_shelf_by_id(result.id),
110+
do: {:ok, result}
114111
end)
115112
end
116113
end

lib/access/services/dsl_access.ex

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,13 @@ defmodule DiffoExample.Access.DslAccess do
7272
end)
7373

7474
change after_action(fn changeset, result, _context ->
75-
with {:ok, with_specification} <- Specification.relate_instance(result, changeset),
76-
{:ok, with_features} <-
77-
Feature.relate_instance(with_specification, changeset),
78-
{:ok, with_characteristics} <-
79-
Characteristic.relate_instance(with_features, changeset),
80-
{:ok, with_parties} <- Party.relate_instance(with_characteristics, changeset),
81-
{:ok, _with_places} <- Place.relate_instance(with_parties, changeset),
82-
{:ok, dsl_access} <- Access.get_dsl_by_id(result.id),
83-
do: {:ok, dsl_access}
75+
with {:ok, result} <- Specification.relate_instance(result, changeset),
76+
{:ok, result} <- Feature.relate_instance(result, changeset),
77+
{:ok, result} <- Characteristic.relate_instance(result, changeset),
78+
{:ok, result} <- Party.relate_instance(result, changeset),
79+
{:ok, result} <- Place.relate_instance(result, changeset),
80+
{:ok, result} <- Access.get_dsl_by_id(result.id),
81+
do: {:ok, result}
8482
end)
8583

8684
change load [:href]
@@ -105,9 +103,9 @@ defmodule DiffoExample.Access.DslAccess do
105103
])
106104

107105
change after_action(fn changeset, result, _context ->
108-
with {:ok, _with_place} <- Place.relate_instance(result, changeset),
109-
{:ok, dsl_access} <- Access.get_dsl_by_id(result.id),
110-
do: {:ok, dsl_access}
106+
with {:ok, result} <- Place.relate_instance(result, changeset),
107+
{:ok, result} <- Access.get_dsl_by_id(result.id),
108+
do: {:ok, result}
111109
end)
112110
end
113111

@@ -118,9 +116,9 @@ defmodule DiffoExample.Access.DslAccess do
118116
change transition_state(:reserved)
119117

120118
change after_action(fn changeset, result, _context ->
121-
with {:ok, _result} <- Characteristic.update_values(result, changeset),
122-
{:ok, dsl_access} <- Access.get_dsl_by_id(result.id),
123-
do: {:ok, dsl_access}
119+
with {:ok, result} <- Characteristic.update_values(result, changeset),
120+
{:ok, result} <- Access.get_dsl_by_id(result.id),
121+
do: {:ok, result}
124122
end)
125123
end
126124
end

0 commit comments

Comments
 (0)