83 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
defmodule ConfientWeb.Router do
 | 
						|
  use ConfientWeb, :router
 | 
						|
 | 
						|
  pipeline :browser do
 | 
						|
    plug :accepts, ["html"]
 | 
						|
    plug :fetch_session
 | 
						|
    plug :fetch_flash
 | 
						|
    plug :protect_from_forgery
 | 
						|
    plug :put_secure_browser_headers
 | 
						|
  end
 | 
						|
 | 
						|
  pipeline :api do
 | 
						|
    plug :accepts, ["json"]
 | 
						|
  end
 | 
						|
 | 
						|
  pipeline :uploads do
 | 
						|
    plug :fetch_session
 | 
						|
    plug :fetch_flash
 | 
						|
 | 
						|
    plug Plug.Static,
 | 
						|
      at: "/uploads/",
 | 
						|
      from: Application.get_env(:confiant, :base_upload_dir, "/tmp/confient/uploads")
 | 
						|
  end
 | 
						|
 | 
						|
  scope "/", ConfientWeb do
 | 
						|
    scope "/uploads" do
 | 
						|
      pipe_through [:uploads, ConfientWeb.Plugs.Auth]
 | 
						|
      get "/*path", ErrorController, :notfound
 | 
						|
    end
 | 
						|
 | 
						|
    pipe_through :browser
 | 
						|
 | 
						|
    scope "/" do
 | 
						|
      pipe_through ConfientWeb.Plugs.Auth
 | 
						|
 | 
						|
      resources "/classes", ClassController
 | 
						|
 | 
						|
      resources "/students", StudentController
 | 
						|
      get "/students-bulk-create", StudentController, :bulkform
 | 
						|
      post "/students-bulk-create", StudentController, :bulkcreate
 | 
						|
 | 
						|
      resources "/assignments", AssignmentController
 | 
						|
      get "/assignements/:id/archive", AssignmentController, :archive
 | 
						|
 | 
						|
      get "/deposits/", DepositController, :index
 | 
						|
 | 
						|
      delete "/logout", SessionController, :delete
 | 
						|
    end
 | 
						|
 | 
						|
    scope "/" do
 | 
						|
      pipe_through ConfientWeb.Plugs.InjectUser
 | 
						|
      get "/", PageController, :index
 | 
						|
    end
 | 
						|
 | 
						|
    get "/login", SessionController, :new
 | 
						|
    post "/login", SessionController, :create
 | 
						|
 | 
						|
    get "/deposit/:id", DepositController, :form
 | 
						|
    post "/deposit/:id", DepositController, :deposit
 | 
						|
  end
 | 
						|
 | 
						|
  # Other scopes may use custom stacks.
 | 
						|
  # scope "/api", ConfientWeb do
 | 
						|
  #   pipe_through :api
 | 
						|
  # end
 | 
						|
 | 
						|
  # Enables LiveDashboard only for development
 | 
						|
  #
 | 
						|
  # If you want to use the LiveDashboard in production, you should put
 | 
						|
  # it behind authentication and allow only admins to access it.
 | 
						|
  # If your application does not have an admins-only section yet,
 | 
						|
  # you can use Plug.BasicAuth to set up some basic authentication
 | 
						|
  # as long as you are also using SSL (which you should anyway).
 | 
						|
  if Mix.env() in [:dev, :test] do
 | 
						|
    import Phoenix.LiveDashboard.Router
 | 
						|
 | 
						|
    scope "/" do
 | 
						|
      pipe_through :browser
 | 
						|
      live_dashboard "/dashboard", metrics: ConfientWeb.Telemetry
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |