diff --git a/lib/textbin_web/controllers/apiv1/paste_controller.ex b/lib/textbin_web/controllers/apiv1/paste_controller.ex index 3f30666..c594254 100644 --- a/lib/textbin_web/controllers/apiv1/paste_controller.ex +++ b/lib/textbin_web/controllers/apiv1/paste_controller.ex @@ -91,7 +91,7 @@ defmodule TextbinWeb.ApiV1.PasteController do conn |> put_status(:created) |> put_resp_header("location", ~p"/api/v1/pastes/#{paste.id}") - |> render(:show, paste: paste) + |> render(:create, paste: paste) {:error, changeset} -> render_changeset_errors(conn, changeset) diff --git a/lib/textbin_web/controllers/apiv1/paste_json.ex b/lib/textbin_web/controllers/apiv1/paste_json.ex index 9aa260d..f46eae7 100644 --- a/lib/textbin_web/controllers/apiv1/paste_json.ex +++ b/lib/textbin_web/controllers/apiv1/paste_json.ex @@ -5,10 +5,14 @@ defmodule TextbinWeb.ApiV1.PasteJSON do %{data: for(paste <- pastes, do: data(paste))} end - def show(%{paste: paste}) do + def create(%{paste: paste}) do %{data: data(paste) |> Map.delete(:data)} end + def show(%{paste: paste}) do + %{data: data(paste)} + end + defp data(%Paste{} = paste) do %{ id: paste.id, diff --git a/test/textbin_web/controllers/apiv1/paste_controller_test.exs b/test/textbin_web/controllers/apiv1/paste_controller_test.exs index 169b5b2..a7bfe20 100644 --- a/test/textbin_web/controllers/apiv1/paste_controller_test.exs +++ b/test/textbin_web/controllers/apiv1/paste_controller_test.exs @@ -35,12 +35,12 @@ defmodule TextbinWeb.ApiV1.PasteControllerTest do assert %{ "id" => ^id, + "data" => "some data", "syntax_highlight" => "elixir", "inserted_at" => inserted_at, "updated_at" => updated_at - } = response_data = json_response(conn, 200)["data"] + } = json_response(conn, 200)["data"] - refute Map.has_key?(response_data, "data") assert_millisecond_timestamp(inserted_at) assert_millisecond_timestamp(updated_at) end