66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
defmodule ConfientWeb.ClassController do
 | 
						|
  use ConfientWeb, :controller
 | 
						|
 | 
						|
  alias Confient.School
 | 
						|
  alias Confient.School.Class
 | 
						|
 | 
						|
  def index(conn, _params) do
 | 
						|
    classes = School.list_classes()
 | 
						|
    render(conn, "index.html", classes: classes)
 | 
						|
  end
 | 
						|
 | 
						|
  def new(conn, _params) do
 | 
						|
    changeset = School.change_class(%Class{})
 | 
						|
    render(conn, "new.html", changeset: changeset)
 | 
						|
  end
 | 
						|
 | 
						|
  def create(conn, %{"class" => class_params}) do
 | 
						|
    case School.create_class(class_params) do
 | 
						|
      {:ok, class} ->
 | 
						|
        conn
 | 
						|
        |> put_flash(:info, "Classe créé avec succès.")
 | 
						|
        |> redirect(to: Routes.class_path(conn, :show, class))
 | 
						|
 | 
						|
      {:error, %Ecto.Changeset{} = changeset} ->
 | 
						|
        render(conn, "new.html", changeset: changeset)
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def show(conn, %{"id" => id}) do
 | 
						|
    class = School.get_class!(id)
 | 
						|
    render(conn, "show.html", class: class)
 | 
						|
  end
 | 
						|
 | 
						|
  def edit(conn, %{"id" => id}) do
 | 
						|
    class = School.get_class!(id)
 | 
						|
    changeset = School.change_class(class)
 | 
						|
    render(conn, "edit.html", class: class, changeset: changeset)
 | 
						|
  end
 | 
						|
 | 
						|
  def update(conn, %{"id" => id, "class" => class_params}) do
 | 
						|
    class = School.get_class!(id)
 | 
						|
 | 
						|
    case School.update_class(class, class_params) do
 | 
						|
      {:ok, class} ->
 | 
						|
        conn
 | 
						|
        |> put_flash(:info, "Classe mise à jour avec succès.")
 | 
						|
        |> redirect(to: Routes.class_path(conn, :show, class))
 | 
						|
 | 
						|
      {:error, %Ecto.Changeset{} = changeset} ->
 | 
						|
        render(conn, "edit.html", class: class, changeset: changeset)
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def delete(conn, %{"id" => id}) do
 | 
						|
    class = School.get_class!(id)
 | 
						|
    {:ok, _class} = School.delete_class(class)
 | 
						|
 | 
						|
    dir = Application.fetch_env!(:confient, :upload_dir)
 | 
						|
    File.rm_rf("#{dir}/#{class.name}")
 | 
						|
 | 
						|
    conn
 | 
						|
    |> put_flash(:info, "Classe supprimée.")
 | 
						|
    |> redirect(to: Routes.class_path(conn, :index))
 | 
						|
  end
 | 
						|
end
 |