patrickdavey/caster

View on GitHub
web/controllers/refresh_controller.ex

Summary

Maintainability
Test Coverage
defmodule Caster.RefreshController do
  use Caster.Web, :controller
  plug :set_source when action in [:update]

  def update(conn, %{"id" => _id}) do
    cond do
      conn.assigns.source.source == :vimcast ->
        casts = Caster.Feed.VimCastFeed.fetch!
        conn
        |> assign(:casts, casts)
        |> render(Caster.CastView, :index)

      :otherwise -> nil
    end
  end

  defp set_source(%Plug.Conn{params: %{"id" => source}} = conn, _) do
    assign(conn, :source, Caster.SourceFinder.find(source))
  end
end