Skip to content

Commit 29e485b

Browse files
committed
Switch to :ok/:error tuple response
1 parent 46762da commit 29e485b

22 files changed

+268
-268
lines changed

lib/rethinkdb/response.ex

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ defmodule RethinkDB.Feed do
2525
def reduce(changes, acc, fun) do
2626
stream = Stream.unfold(changes, fn
2727
x = %RethinkDB.Feed{data: []} ->
28-
r = RethinkDB.next(x)
28+
{:ok, r} = RethinkDB.next(x)
2929
{r, struct(r, data: [])}
3030
x = %RethinkDB.Feed{} ->
3131
{x, struct(x, data: [])}
@@ -48,19 +48,19 @@ defmodule RethinkDB.Response do
4848
def parse(raw_data, token, pid) do
4949
d = Poison.decode!(raw_data)
5050
data = RethinkDB.Pseudotypes.convert_reql_pseudotypes(d["r"])
51-
resp = case d["t"] do
52-
1 -> %RethinkDB.Record{data: hd(data)}
53-
2 -> %RethinkDB.Collection{data: data}
51+
{code, resp} = case d["t"] do
52+
1 -> {:ok, %RethinkDB.Record{data: hd(data)}}
53+
2 -> {:ok, %RethinkDB.Collection{data: data}}
5454
3 -> case d["n"] do
55-
[2] -> %RethinkDB.Feed{token: token, data: hd(data), pid: pid, note: d["n"]}
56-
_ -> %RethinkDB.Feed{token: token, data: data, pid: pid, note: d["n"]}
55+
[2] -> {:ok, %RethinkDB.Feed{token: token, data: hd(data), pid: pid, note: d["n"]}}
56+
_ -> {:ok, %RethinkDB.Feed{token: token, data: data, pid: pid, note: d["n"]}}
5757
end
58-
4 -> %RethinkDB.Response{token: token, data: d}
59-
16 -> %RethinkDB.Response{token: token, data: d}
60-
17 -> %RethinkDB.Response{token: token, data: d}
61-
18 -> %RethinkDB.Response{token: token, data: d}
58+
4 -> {:ok, %RethinkDB.Response{token: token, data: d}}
59+
16 -> {:error, %RethinkDB.Response{token: token, data: d}}
60+
17 -> {:error, %RethinkDB.Response{token: token, data: d}}
61+
18 -> {:error, %RethinkDB.Response{token: token, data: d}}
6262
end
63-
%{resp | :profile => d["p"]}
63+
{code, %{resp | :profile => d["p"]}}
6464
end
6565
end
6666

test/changes_test.exs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ defmodule ChangesTest do
2222

2323
test "first change" do
2424
q = table(@table_name) |> changes
25-
changes = %Feed{} = run(q)
25+
{:ok, changes = %Feed{}} = run(q)
2626

2727
t = Task.async fn ->
2828
changes |> Enum.take(1)
@@ -35,15 +35,15 @@ defmodule ChangesTest do
3535

3636
test "changes" do
3737
q = table(@table_name) |> changes
38-
changes = %Feed{} = run(q)
38+
{:ok, changes} = {:ok, %Feed{}} = run(q)
3939
t = Task.async fn ->
4040
RethinkDB.Connection.next(changes)
4141
end
4242
data = %{"test" => "data"}
4343
q = table(@table_name) |> insert(data)
44-
res = run(q)
44+
{:ok, res} = run(q)
4545
expected = res.data["id"]
46-
changes = Task.await(t)
46+
{:ok, changes} = Task.await(t)
4747
^expected = changes.data |> hd |> Map.get("id")
4848

4949
# test Enumerable

test/connection_test.exs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ defmodule ConnectionTest do
3232
%RethinkDB.Exception.ConnectionClosed{} = table_list |> run
3333
conn = FlakyConnection.start('localhost', 28015, [local_port: 28014])
3434
:timer.sleep(1000)
35-
%RethinkDB.Record{} = RethinkDB.Query.table_list |> run
35+
{:ok, %RethinkDB.Record{}} = RethinkDB.Query.table_list |> run
3636
ref = Process.monitor(c)
3737
FlakyConnection.stop(conn)
3838
receive do
@@ -53,7 +53,7 @@ defmodule ConnectionTest do
5353
GenServer.cast(__MODULE__, :stop)
5454
end
5555
table(table) |> index_wait |> run
56-
change_feed = table(table) |> changes |> run
56+
{:ok, change_feed} = table(table) |> changes |> run
5757
task = Task.async fn ->
5858
RethinkDB.Connection.next change_feed
5959
end
@@ -84,7 +84,7 @@ defmodule ConnectionTest do
8484
{:ok, c} = RethinkDB.Connection.start_link(db: "new_test")
8585
db_create("new_test") |> RethinkDB.run(c)
8686
db("new_test") |> table_create("new_test_table") |> RethinkDB.run(c)
87-
%{data: data} = table_list |> RethinkDB.run(c)
87+
{:ok, %{data: data}} = table_list |> RethinkDB.run(c)
8888
assert data == ["new_test_table"]
8989
end
9090

@@ -109,7 +109,7 @@ defmodule ConnectionTest do
109109
test "ssl connection" do
110110
conn = FlakyConnection.start('localhost', 28015, [ssl: [keyfile: "./test/cert/host.key", certfile: "./test/cert/host.crt"]])
111111
{:ok, c} = RethinkDB.Connection.start_link(port: conn.port, ssl: [ca_certs: ["./test/cert/rootCA.crt"]], sync_connect: true)
112-
%{data: _} = table_list |> RethinkDB.run(c)
112+
{:ok, %{data: _}} = table_list |> RethinkDB.run(c)
113113
end
114114
end
115115

@@ -127,7 +127,7 @@ defmodule ConnectionRunTest do
127127
db_create("db_option_test") |> run
128128
table_create("db_option_test_table") |> run(db: "db_option_test")
129129

130-
%{data: data} = db("db_option_test") |> table_list |> run
130+
{:ok, %{data: data}} = db("db_option_test") |> table_list |> run
131131

132132
db_drop("db_option_test") |> run
133133

@@ -136,7 +136,7 @@ defmodule ConnectionRunTest do
136136

137137
test "run(conn, opts) with :durability option" do
138138
table_drop("durability_test_table") |> run
139-
response = table_create("durability_test_table") |> run(durability: "soft")
139+
{:ok, response} = table_create("durability_test_table") |> run(durability: "soft")
140140
durability = response.data["config_changes"]
141141
|> List.first
142142
|> Map.fetch!("new_val")
@@ -153,7 +153,7 @@ defmodule ConnectionRunTest do
153153
end
154154

155155
test "run with :profile options" do
156-
resp = make_array([1,2,3]) |> run(profile: true)
156+
{:ok, resp} = make_array([1,2,3]) |> run(profile: true)
157157
assert [%{"description" => _, "duration(ms)" => _,
158158
"sub_tasks" => _}] = resp.profile
159159
end

test/query/administration_query_test.exs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,27 @@ defmodule AdministrationQueryTest do
1818
end
1919

2020
test "config" do
21-
r = table(@table_name) |> config |> run
21+
{:ok, r} = table(@table_name) |> config |> run
2222
assert %RethinkDB.Record{data: %{"db" => "test"}} = r
2323
end
2424

2525
test "rebalance" do
26-
r = table(@table_name) |> rebalance |> run
26+
{:ok, r} = table(@table_name) |> rebalance |> run
2727
assert %RethinkDB.Record{data: %{"rebalanced" => _}} = r
2828
end
2929

3030
test "reconfigure" do
31-
r = table(@table_name) |> reconfigure(shards: 1, dry_run: true, replicas: 1) |> run
31+
{:ok, r} = table(@table_name) |> reconfigure(shards: 1, dry_run: true, replicas: 1) |> run
3232
assert %RethinkDB.Record{data: %{"reconfigured" => _}} = r
3333
end
3434

3535
test "status" do
36-
r = table(@table_name) |> status |> run
36+
{:ok, r} = table(@table_name) |> status |> run
3737
assert %RethinkDB.Record{data: %{"name" => @table_name}} = r
3838
end
3939

4040
test "wait" do
41-
r = table(@table_name) |> wait(wait_for: :ready_for_writes) |> run
41+
{:ok, r} = table(@table_name) |> wait(wait_for: :ready_for_writes) |> run
4242
assert %RethinkDB.Record{data: %{"ready" => 1}} = r
4343
end
4444
end

test/query/aggregation_test.exs

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ defmodule AggregationTest do
2121
%{a: "bye"}
2222
]
2323
|> group("a")
24-
%Record{data: data} = query |> run
24+
{:ok, %Record{data: data}} = query |> run
2525
assert data == %{
2626
"bye" => [
2727
%{"a" => "bye"}
@@ -43,7 +43,7 @@ defmodule AggregationTest do
4343
|> group(lambda fn (x) ->
4444
(x["a"] == "hi") || (x["a"] == "hello")
4545
end)
46-
%Record{data: data} = query |> run
46+
{:ok, %Record{data: data}} = query |> run
4747
assert data == %{
4848
false: [
4949
%{"a" => "bye"},
@@ -67,7 +67,7 @@ defmodule AggregationTest do
6767
|> group([lambda(fn (x) ->
6868
(x["a"] == "hi") || (x["a"] == "hello")
6969
end), "b"])
70-
%Record{data: data} = query |> run
70+
{:ok, %Record{data: data}} = query |> run
7171
assert data == %{
7272
[false, nil] => [
7373
%{"a" => "bye"},
@@ -95,7 +95,7 @@ defmodule AggregationTest do
9595
(x["a"] == "hi") || (x["a"] == "hello")
9696
end), "b"])
9797
|> ungroup
98-
%Record{data: data} = query |> run
98+
{:ok, %Record{data: data}} = query |> run
9999
assert data == [
100100
%{
101101
"group" => [false, nil],
@@ -124,39 +124,39 @@ defmodule AggregationTest do
124124
query = [1,2,3,4] |> reduce(lambda fn(el, acc) ->
125125
el + acc
126126
end)
127-
%Record{data: data} = run query
127+
{:ok, %Record{data: data}} = run query
128128
assert data == 10
129129
end
130130

131131
test "count" do
132132
query = [1,2,3,4] |> count
133-
%Record{data: data} = run query
133+
{:ok, %Record{data: data}} = run query
134134
assert data == 4
135135
end
136136

137137
test "count with value" do
138138
query = [1,2,2,3,4] |> count(2)
139-
%Record{data: data} = run query
139+
{:ok, %Record{data: data}} = run query
140140
assert data == 2
141141
end
142142

143143
test "count with predicate" do
144144
query = [1,2,2,3,4] |> count(lambda fn(x) ->
145145
rem(x, 2) == 0
146146
end)
147-
%Record{data: data} = run query
147+
{:ok, %Record{data: data}} = run query
148148
assert data == 3
149149
end
150150

151151
test "sum" do
152152
query = [1,2,3,4] |> sum
153-
%Record{data: data} = run query
153+
{:ok, %Record{data: data}} = run query
154154
assert data == 10
155155
end
156156

157157
test "sum with field" do
158158
query = [%{a: 1},%{a: 2},%{b: 3},%{b: 4}] |> sum("a")
159-
%Record{data: data} = run query
159+
{:ok, %Record{data: data}} = run query
160160
assert data == 3
161161
end
162162

@@ -168,19 +168,19 @@ defmodule AggregationTest do
168168
x * 2
169169
end
170170
end)
171-
%Record{data: data} = run query
171+
{:ok, %Record{data: data}} = run query
172172
assert data == 18
173173
end
174174

175175
test "avg" do
176176
query = [1,2,3,4] |> avg
177-
%Record{data: data} = run query
177+
{:ok, %Record{data: data}} = run query
178178
assert data == 2.5
179179
end
180180

181181
test "avg with field" do
182182
query = [%{a: 1},%{a: 2},%{b: 3},%{b: 4}] |> avg("a")
183-
%Record{data: data} = run query
183+
{:ok, %Record{data: data}} = run query
184184
assert data == 1.5
185185
end
186186

@@ -192,25 +192,25 @@ defmodule AggregationTest do
192192
x * 2
193193
end
194194
end)
195-
%Record{data: data} = run query
195+
{:ok, %Record{data: data}} = run query
196196
assert data == 6
197197
end
198198

199199
test "min" do
200200
query = [1,2,3,4] |> Query.min
201-
%Record{data: data} = run query
201+
{:ok, %Record{data: data}} = run query
202202
assert data == 1
203203
end
204204

205205
test "min with field" do
206206
query = [%{a: 1},%{a: 2},%{b: 3},%{b: 4}] |> Query.min("b")
207-
%Record{data: data} = run query
207+
{:ok, %Record{data: data}} = run query
208208
assert data == %{"b" => 3}
209209
end
210210

211211
test "min with subquery field" do
212212
query = [%{a: 1},%{a: 2},%{b: 3},%{b: 4}] |> Query.min(Query.downcase("B"))
213-
%Record{data: data} = run query
213+
{:ok, %Record{data: data}} = run query
214214
assert data == %{"b" => 3}
215215
end
216216

@@ -223,25 +223,25 @@ defmodule AggregationTest do
223223
x * 2
224224
end
225225
end)
226-
%Record{data: data} = run query
226+
{:ok, %Record{data: data}} = run query
227227
assert data == 2
228228
end
229229

230230
test "max" do
231231
query = [1,2,3,4] |> Query.max
232-
%Record{data: data} = run query
232+
{:ok, %Record{data: data}} = run query
233233
assert data == 4
234234
end
235235

236236
test "max with field" do
237237
query = [%{a: 1},%{a: 2},%{b: 3},%{b: 4}] |> Query.max("b")
238-
%Record{data: data} = run query
238+
{:ok, %Record{data: data}} = run query
239239
assert data == %{"b" => 4}
240240
end
241241

242242
test "max with subquery field" do
243243
query = [%{a: 1},%{a: 2},%{b: 3},%{b: 4}] |> Query.max(Query.downcase("B"))
244-
%Record{data: data} = run query
244+
{:ok, %Record{data: data}} = run query
245245
assert data == %{"b" => 4}
246246
end
247247

@@ -253,13 +253,13 @@ defmodule AggregationTest do
253253
x * 2
254254
end
255255
end)
256-
%Record{data: data} = run query
256+
{:ok, %Record{data: data}} = run query
257257
assert data == 3
258258
end
259259

260260
test "distinct" do
261261
query = [1,2,3,3,4,4,5] |> distinct
262-
%Record{data: data} = run query
262+
{:ok, %Record{data: data}} = run query
263263
assert data == [1,2,3,4,5]
264264
end
265265

@@ -270,31 +270,31 @@ defmodule AggregationTest do
270270

271271
test "contains" do
272272
query = [1,2,3,4] |> contains(4)
273-
%Record{data: data} = run query
273+
{:ok, %Record{data: data}} = run query
274274
assert data == true
275275
end
276276

277277
test "contains multiple values" do
278278
query = [1,2,3,4] |> contains([4, 3])
279-
%Record{data: data} = run query
279+
{:ok, %Record{data: data}} = run query
280280
assert data == true
281281
end
282282

283283
test "contains with function" do
284284
query = [1,2,3,4] |> contains(lambda &(&1 == 3))
285-
%Record{data: data} = run query
285+
{:ok, %Record{data: data}} = run query
286286
assert data == true
287287
end
288288

289289
test "contains with multiple function" do
290290
query = [1,2,3,4] |> contains([lambda(&(&1 == 3)), lambda(&(&1 == 5))])
291-
%Record{data: data} = run query
291+
{:ok, %Record{data: data}} = run query
292292
assert data == false
293293
end
294294

295295
test "contains with multiple (mixed)" do
296296
query = [1,2,3,4] |> contains([lambda(&(&1 == 3)), 2])
297-
%Record{data: data} = run query
297+
{:ok, %Record{data: data}} = run query
298298
assert data == true
299299
end
300300
end

test/query/control_structures_adv_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ defmodule ControlStructuresAdvTest do
2828
table_query |> insert(%{a: x})
2929
end)
3030
run q
31-
%Collection{data: data} = run table_query
31+
{:ok, %Collection{data: data}} = run table_query
3232
assert Enum.count(data) == 3
3333
end
3434
end

0 commit comments

Comments
 (0)