From e255ab39583a14e0c512f161bb7858dbc93b56c4 Mon Sep 17 00:00:00 2001 From: Nikola Begedin Date: Tue, 18 Oct 2016 14:57:39 +0200 Subject: [PATCH] Fix comment endpoints to match ember --- lib/code_corps/helpers/query.ex | 8 ++++++++ test/controllers/comment_controller_test.exs | 12 ++++++++++-- web/controllers/comment_controller.ex | 6 ++++++ web/router.ex | 2 +- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/lib/code_corps/helpers/query.ex b/lib/code_corps/helpers/query.ex index c29ce933f..eb0d89659 100644 --- a/lib/code_corps/helpers/query.ex +++ b/lib/code_corps/helpers/query.ex @@ -55,6 +55,14 @@ defmodule CodeCorps.Helpers.Query do # end task queries + # def comment queries + + def task_filter(query, task_id) do + query |> where([object], object.task_id == ^task_id) + end + + # end comment queries + # sorting def sort_by_newest_first(query), do: query |> order_by([desc: :inserted_at]) diff --git a/test/controllers/comment_controller_test.exs b/test/controllers/comment_controller_test.exs index 766239047..f4b4e5e96 100644 --- a/test/controllers/comment_controller_test.exs +++ b/test/controllers/comment_controller_test.exs @@ -25,9 +25,17 @@ defmodule CodeCorps.CommentControllerTest do describe "index" do test "lists all entries for specified task on index", %{conn: conn} do task = insert(:task) + comments = insert_list(2, :comment, task: task) + insert_list(3, :comment) + path = conn |> task_comment_path(:index, task) - conn = conn |> get(path) - assert json_response(conn, 200)["data"] == [] + json = conn |> get(path) |> json_response(200) + + assert json["data"] |> Enum.count == 2 + end + + test "lists all entries for specific task on index", %{conn: conn} do + end end diff --git a/web/controllers/comment_controller.ex b/web/controllers/comment_controller.ex index d52e397b5..932ef8742 100644 --- a/web/controllers/comment_controller.ex +++ b/web/controllers/comment_controller.ex @@ -2,12 +2,18 @@ defmodule CodeCorps.CommentController do use CodeCorps.Web, :controller use JaResource + import CodeCorps.Helpers.Query, only: [task_filter: 2] + alias CodeCorps.Comment plug :load_and_authorize_changeset, model: Comment, only: [:create] plug :load_and_authorize_resource, model: Comment, only: [:update] plug JaResource + def handle_index(_conn, %{"task_id" => task_id}) do + Comment |> task_filter(task_id) + end + def handle_create(conn, attributes) do %Comment{} |> Comment.create_changeset(attributes) diff --git a/web/router.ex b/web/router.ex index 04d2d707f..31e7c72a0 100644 --- a/web/router.ex +++ b/web/router.ex @@ -58,7 +58,7 @@ defmodule CodeCorps.Router do resources "/role-skills", RoleSkillController, only: [:index, :show] resources "/skills", SkillController, only: [:index, :show] resources "/tasks", TaskController, only: [:index, :show] do - resources "/comments", CommentController, only: [:index, :show] + resources "/comments", CommentController, only: [:index] end get "/users/email_available", UserController, :email_available get "/users/username_available", UserController, :username_available