Skip to content

Commit 50b62a1

Browse files
committed
Make it work with normal responses too...
1 parent 7cf0520 commit 50b62a1

4 files changed

Lines changed: 12 additions & 0 deletions

File tree

lib/ja_resource/create.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ defmodule JaResource.Create do
8989
def respond(%Plug.Conn{} = conn, _old_conn), do: conn
9090
def respond({:error, _name, errors, _changes}, conn), do: invalid(conn, errors)
9191
def respond({:error, errors}, conn), do: invalid(conn, errors)
92+
def respond({:ok, %{} = map}, conn) do: created(conn, Map.fetch(map, atom()))
9293
def respond({:ok, model}, conn), do: created(conn, model)
9394
def respond(model, conn), do: created(conn, model)
9495

lib/ja_resource/delete.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ defmodule JaResource.Delete do
6969
@doc false
7070
def respond(nil, conn), do: not_found(conn)
7171
def respond(%Plug.Conn{} = conn, _old_conn), do: conn
72+
def respond({:ok, %{} = map}, conn) do: created(conn, Map.fetch(map, atom()))
7273
def respond({:ok, _model}, conn), do: deleted(conn)
7374
def respond({:error, _name, errors, _changes}, conn), do: invalid(conn, errors)
7475
def respond({:errors, errors}, conn), do: invalid(conn, errors)

lib/ja_resource/model.ex

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,15 @@ defmodule JaResource.Model do
3030
@inferred_model JaResource.Model.model_from_controller(__MODULE__)
3131
def model(), do: @inferred_model
3232

33+
def atom() do
34+
model()
35+
|> Atom.to_string
36+
|> String.split(".")
37+
|> List.last
38+
|> String.downcase
39+
|> String.to_atom
40+
end
41+
3342
defoverridable [model: 0]
3443
end
3544
end

lib/ja_resource/update.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ defmodule JaResource.Update do
9696
def respond(nil, conn), do: send_resp(conn, :not_found, "")
9797
def respond({:error, _name, errors, _changes}, conn), do: invalid(conn, errors)
9898
def respond({:error, errors}, conn), do: invalid(conn, errors)
99+
def respond({:ok, %{} = map}, conn) do: created(conn, Map.fetch(map, atom()))
99100
def respond({:ok, model}, conn), do: updated(conn, model)
100101
def respond(model, conn), do: updated(conn, model)
101102

0 commit comments

Comments
 (0)