checkpoint: create/delete working now / existing tests passing / need moar tests
[tech-radar-editor.git] / web / controllers / radar_controller.ex
index 44126db..916a24c 100644 (file)
@@ -12,17 +12,30 @@ defmodule TechRadarEditor.RadarController do
 
   # http://www.cultivatehq.com/posts/how-to-set-different-layouts-in-phoenix/
   def index(conn, _params) do
+    changeset = RadarDataPoint.changeset(%RadarDataPoint{})
     radar_quadrants = _make_quadrants(Repo.all(RadarDataPoint))
-    render conn, "index.html", radar_quadrants: radar_quadrants, layout: {TechRadarEditor.LayoutView, "radar.html"}
+    render conn, "index.html", radar_quadrants: radar_quadrants, changeset: changeset, layout: {TechRadarEditor.LayoutView, "radar.html"}
+  end
+
+  def create(conn, %{"radar_data_point" => radar_data_point_params}) do
+    changeset = RadarDataPoint.changeset(%RadarDataPoint{}, radar_data_point_params)
+
+    case Repo.insert(changeset) do
+      {:ok, _radar_data_point} ->
+        conn
+        |> put_flash(:info, "Radar data point created successfully.")
+        |> redirect(to: radar_path(conn, :index), layout: {TechRadarEditor.LayoutView, "radar.html"} )
+      {:error, changeset} ->
+        render(conn, "new.html", changeset: changeset)
+    end
   end
 
-  # UNTESTED
   def delete(conn, %{"id" => id}) do
       radar_data_point = Repo.get!(RadarDataPoint, id)
       Repo.delete!(radar_data_point)
 
       conn
-      |> put_flash(:info, "Radar data point " + id + " successfully deleted.")
+      |> put_flash(:info, "Radar data point " <> id <> " successfully deleted.")
       |> redirect(to: radar_path(conn, :index), layout: {TechRadarEditor.LayoutView, "radar.html"} )
   end