legendary-doc-site/apps/content/lib/content_web/routes.ex
2021-07-20 15:50:51 -05:00

44 lines
1.5 KiB
Elixir

defmodule Legendary.Content.Routes do
@moduledoc """
Routes for the content engine, including blog posts, feeds, and pages.
"""
defmacro __using__(_opts \\ []) do
quote do
pipeline :feed do
plug :accepts, ["rss"]
plug :fetch_session
plug :protect_from_forgery
plug :put_secure_browser_headers
end
scope "/", Legendary.Content do
pipe_through([:browser, :require_auth, :require_admin])
put "/posts/preview", PostsController, :preview
post "/posts/preview", PostsController, :preview
end
scope "/", Legendary.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 "/", Legendary.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", PostsController, :show, as: :nested_posts
end
end
end
end