defmodule FrenzyWeb.Router do use FrenzyWeb, :router pipeline :browser do plug :accepts, ["html"] plug :fetch_session plug :fetch_flash plug :protect_from_forgery plug :put_secure_browser_headers end pipeline :browser_authenticate do plug FrenzyWeb.Plug.Authenticate end pipeline :api do plug :accepts, ["json"] end pipeline :fervor_authenticate do plug FrenzyWeb.Plug.FervorAuthenticate end scope "/", FrenzyWeb do pipe_through :browser get "/login", LoginController, :login post "/login", LoginController, :login_post get "/oauth/authorize", Fervor.OauthController, :authorize_get post "/oauth/authorize", Fervor.OauthController, :authorize_post end scope "/", FrenzyWeb do pipe_through :browser pipe_through :browser_authenticate get "/", GroupController, :index resources "/groups", GroupController, except: [:edit, :update] resources "/feeds", FeedController, only: [:show, :create, :delete] post "/feeds/:id/refresh", FeedController, :refresh post "/feeds/:id/enable_filter", FeedController, :enable_filter post "/feeds/:id/disable_filter", FeedController, :disable_filter resources "/filters", FilterController, only: [:edit, :update] post "/filters/:id/add_rule", FilterController, :add_rule post "/filters/:id/remove_rule", FilterController, :remove_rule resources "/items", ItemController, only: [:show] post "/items/:id/read", ItemController, :read post "/items/:id/unread", ItemController, :unread end scope "/", FrenzyWeb do pipe_through :api get "/fever", FeverController, :get get "/api/fever.php", FeverController, :get post "/fever", FeverController, :post post "/api/fever.php", FeverController, :post end scope "/", FrenzyWeb.Fervor do pipe_through :api post "/api/v1/register", MiscController, :register post "/oauth/token", OauthController, :token get "/api/v1/instance", MiscController, :instance end scope "/", FrenzyWeb.Fervor do pipe_through :api pipe_through :fervor_authenticate get "/api/v1/groups", GroupsController, :groups_list get "/api/v1/groups/:id", GroupsController, :specific_group get "/api/v1/groups/:id/feeds", GroupsController, :specific_group_feeds get "/api/v1/groups/:id/items", GroupsController, :specific_group_items post "/api/v1/groups/create", GroupsController, :create post "/api/v1/groups/:id/delete", GroupsController, :delete get "/api/v1/feeds", FeedsController, :feeds_list get "/api/v1/feeds/:id", FeedsController, :specific_feed get "/api/v1/feeds/:id/items", FeedsController, :specific_feed_items post "/api/v1/feeds/create", FeedsController, :create post "/api/v1/feeds/:id/delete", FeedsController, :delete get "/api/v1/items", ItemsController, :items_list get "/api/v1/items/:id", ItemsController, :specific_item post "/api/v1/items/:id/read", ItemsController, :read_specific_item post "/api/v1/items/:id/unread", ItemsController, :unread_specific_item post "/api/v1/items/read", ItemsController, :read_multiple post "/api/v1/items/unread", ItemsController, :unread_multiple end end