72 lines
2.2 KiB
Elixir
72 lines
2.2 KiB
Elixir
defmodule Content.Router do
|
|
use Content, :router
|
|
alias Content.{RequireAdmin, RequireAuth}
|
|
|
|
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 :feed do
|
|
plug :accepts, ["rss"]
|
|
plug :fetch_session
|
|
plug :protect_from_forgery
|
|
plug :put_secure_browser_headers
|
|
end
|
|
|
|
pipeline :require_auth do
|
|
plug(RequireAuth)
|
|
end
|
|
|
|
pipeline :require_admin do
|
|
plug(RequireAdmin)
|
|
end
|
|
|
|
pipeline :admin_layout do
|
|
plug :put_layout, {Content.LayoutView, :admin}
|
|
end
|
|
|
|
scope "/", Content do
|
|
pipe_through([:browser, :require_auth, :require_admin, :admin_layout])
|
|
|
|
get "/wp-admin/", AdminHomeController, :index
|
|
get "/posts", AdminPostsController, :index, as: :admin_posts
|
|
post "/posts", PostsController, :create
|
|
get "/posts/new", PostsController, :new
|
|
put "/posts/preview", PostsController, :preview
|
|
post "/posts/preview", PostsController, :preview
|
|
get "/posts/:id/edit", PostsController, :edit
|
|
put "/posts/:id", PostsController, :update
|
|
delete "/posts/:id", PostsController, :delete
|
|
get "/menus/:id/edit", MenusController, :edit
|
|
put "/menus/:id", MenusController, :update
|
|
end
|
|
|
|
scope "/", Content do
|
|
pipe_through :feed # Use the default browser stack
|
|
|
|
get "/category/:category/feed.rss", FeedsController, :index, as: :category_feed
|
|
get "/feed.rss", FeedsController, :index, as: :index_feed
|
|
end
|
|
|
|
scope "/", Content do
|
|
pipe_through :browser # Use the default browser stack
|
|
|
|
resources "/comments", CommentController, as: :comment, only: [:create, :delete, :update]
|
|
get "/page/:page", PostsController, :index_posts, as: :blog_page
|
|
get "/category/:category", PostsController, :index_posts, as: :category
|
|
get "/category/:category/page/:page", PostsController, :index, as: :category_page
|
|
post "/wp-login.php", PostPasswordController, :create
|
|
get "/", PostsController, :index
|
|
resources "/sitemap", SitemapController, only: [:index]
|
|
get "/:id", PostsController, :show
|
|
get "/:id/:page", PostsController, :show, as: :paged_post
|
|
end
|
|
end
|