From 3badf8acebb629334c21c4ad55a5681318630682 Mon Sep 17 00:00:00 2001 From: snewcomer24 Date: Fri, 15 Dec 2017 07:26:41 -0800 Subject: [PATCH] include tasks in view --- lib/code_corps_web/views/task_list_view.ex | 2 +- lib/code_corps_web/views/task_view.ex | 12 +++++++++++ .../views/task_list_view_test.exs | 21 ++++++++++++++++++- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/lib/code_corps_web/views/task_list_view.ex b/lib/code_corps_web/views/task_list_view.ex index a6ccad2e4..79b855a7d 100644 --- a/lib/code_corps_web/views/task_list_view.ex +++ b/lib/code_corps_web/views/task_list_view.ex @@ -7,5 +7,5 @@ defmodule CodeCorpsWeb.TaskListView do has_one :project, type: "project", field: :project_id - has_many :tasks, serializer: CodeCorpsWeb.TaskView, identifiers: :always + has_many :tasks, serializer: CodeCorpsWeb.TaskIncludedView, identifiers: :always, include: true end diff --git a/lib/code_corps_web/views/task_view.ex b/lib/code_corps_web/views/task_view.ex index 9f0ee1c9e..e946cf565 100644 --- a/lib/code_corps_web/views/task_view.ex +++ b/lib/code_corps_web/views/task_view.ex @@ -37,3 +37,15 @@ defmodule CodeCorpsWeb.TaskView do status end end + +defmodule CodeCorpsWeb.TaskIncludedView do + @moduledoc false + use CodeCorpsWeb, :view + use JaSerializer.PhoenixView + def type, do: "task" + + attributes [ + :archived, :body, :created_at, :created_from, :inserted_at, :markdown, + :modified_at, :modified_from, :number, :order, :status, :title, :updated_at + ] +end diff --git a/test/lib/code_corps_web/views/task_list_view_test.exs b/test/lib/code_corps_web/views/task_list_view_test.exs index a0332d8f3..955b00cc7 100644 --- a/test/lib/code_corps_web/views/task_list_view_test.exs +++ b/test/lib/code_corps_web/views/task_list_view_test.exs @@ -39,7 +39,26 @@ defmodule CodeCorpsWeb.TaskListViewTest do }, "jsonapi" => %{ "version" => "1.0" - } + }, + "included" => [%{ + "attributes" => %{ + "archived" => task.archived, + "body" => task.body, + "created-at" => task.created_at, + "created-from" => task.created_from, + "inserted-at" => task.inserted_at, + "markdown" => task.markdown, + "modified-at" => task.modified_at, + "modified-from" => task.modified_from, + "number" => task.number, + "order" => task.order, + "status" => task.status, + "title" => task.title, + "updated-at" => task.updated_at + }, + "id" => task.id |> Integer.to_string, + "type" => "task" + }] } assert rendered_json == expected_json