defmodule PinchflatWeb.Api.V1.ApiTaskController do @moduledoc """ JSON API controller for Tasks. """ use PinchflatWeb, :controller action_fallback PinchflatWeb.Api.V1.FallbackController alias Pinchflat.Repo alias Pinchflat.Tasks def index(conn, params) do tasks = case params do %{"source_id" => source_id} -> source = Pinchflat.Sources.get_source!(source_id) Tasks.list_tasks_for(source) |> Repo.preload(:job) _ -> Tasks.list_tasks() |> Repo.preload(:job) end json(conn, %{data: tasks}) end def show(conn, %{"id" => id}) do task = Tasks.get_task!(id) |> Repo.preload(:job) json(conn, %{data: task}) end end