You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							1.3 KiB
						
					
					
				defmodule LinkShortenerWeb.Router do
 | 
						|
  use LinkShortenerWeb, :router
 | 
						|
 | 
						|
  pipeline :browser do
 | 
						|
    plug :accepts, ["html"]
 | 
						|
    plug :fetch_session
 | 
						|
    plug :fetch_live_flash
 | 
						|
    plug :put_root_layout, html: {LinkShortenerWeb.Layouts, :root}
 | 
						|
    plug :protect_from_forgery
 | 
						|
    plug :put_secure_browser_headers
 | 
						|
  end
 | 
						|
 | 
						|
  pipeline :api do
 | 
						|
    plug :accepts, ["json"]
 | 
						|
  end
 | 
						|
 | 
						|
  scope "/", LinkShortenerWeb do
 | 
						|
    pipe_through :browser
 | 
						|
 | 
						|
    get "/", PageController, :home
 | 
						|
    get "/u/:shorten", RedirectionController, :show
 | 
						|
  end
 | 
						|
 | 
						|
  scope "/api", LinkShortenerWeb do
 | 
						|
    pipe_through :api
 | 
						|
 | 
						|
    scope "/v1", Api.V1, as: :v1 do
 | 
						|
      resources "/links", LinkController
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  # Enable LiveDashboard and Swoosh mailbox preview in development
 | 
						|
  if Application.compile_env(:link_shortener, :dev_routes) do
 | 
						|
    # 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).
 | 
						|
    import Phoenix.LiveDashboard.Router
 | 
						|
 | 
						|
    scope "/dev" do
 | 
						|
      pipe_through :browser
 | 
						|
 | 
						|
      live_dashboard "/dashboard", metrics: LinkShortenerWeb.Telemetry
 | 
						|
      forward "/mailbox", Plug.Swoosh.MailboxPreview
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |