|
defmodule Portal.Router do |
|
use Portal.Web, :router |
|
|
|
pipeline :browser do |
|
plug(:accepts, ["html"]) |
|
plug(:fetch_session) |
|
plug(:fetch_flash) |
|
plug(:protect_from_forgery) |
|
plug(:put_secure_browser_headers) |
|
plug(Portal.Auth, repo: Portal.Repo) |
|
plug(Portal.Plug.Locale, "en") |
|
end |
|
|
|
pipeline :api do |
|
plug(:fetch_session) |
|
plug(Portal.Auth, repo: Portal.Repo) |
|
plug(:accepts, ["json"]) |
|
end |
|
|
|
scope "/api", Portal do |
|
pipe_through([:api]) |
|
|
|
resources("/feedback", FeedbackController, except: [:new, :edit]) |
|
end |
|
|
|
scope "/", Portal do |
|
# Use the default browser stack |
|
pipe_through([:browser]) |
|
|
|
# The dummy route is never hit but the router must have a "/" path. |
|
get("/", PageController, :dummy) |
|
end |
|
|
|
scope "/:locale", Portal do |
|
pipe_through([:browser]) |
|
|
|
resources "/users/", UserController do |
|
resources("/relations", RelationController, only: [:index, :create, :update]) |
|
post("/followers/:id", RelationController, :followers_update) |
|
put("/followers/:id", RelationController, :followers_update) |
|
get("/followers", RelationController, :followers_index) |
|
get("/following", RelationController, :following_index) |
|
get("/friends", RelationController, :friends_index) |
|
end |
|
|
|
get("/experts/img/:id", InterviewController, :img) |
|
get("/video/:id", InterviewController, :webrtc) |
|
resources("/experts", InterviewController) |
|
resources("/languages", LanguageController) |
|
resources("/guests", GuestController) |
|
|
|
# content creation for phonics quizzes |
|
get("/phonics-items/spellings", PhoneticSpellingController, :global_index) |
|
|
|
resources "/phonics-items", PhonicsItemController do |
|
resources("/spellings", PhoneticSpellingController, name: "spelling") |
|
end |
|
|
|
post("/phonics-lessons/add_point", PhonicsLessonController, :add_point) |
|
delete("/phonics-lessons/:id/remove_point/:point_id", PhonicsLessonController, :remove_point) |
|
put("/phonics-lessons/add_quiz/:id", PhonicsLessonController, :add_quiz) |
|
patch("/phonics-lessons/add_quiz/:id", PhonicsLessonController, :add_quiz) |
|
delete("/phonics-lessons/remove_quiz/:id", PhonicsLessonController, :remove_quiz) |
|
resources("/phonics-lessons", PhonicsLessonController) |
|
post("/phonics-points/add_example", PhonicsPointController, :add_example) |
|
delete("/phonics-points/remove_example/:id", PhonicsPointController, :remove_example) |
|
resources("/phonics-points", PhonicsPointController) |
|
post("/phonics-quizzes/add_item", PhonicsQuizController, :add_item) |
|
delete("/phonics-quizzes/remove_item/:id", PhonicsQuizController, :remove_item) |
|
resources("/phonics-quizzes", PhonicsQuizController) |
|
|
|
# user-facing phonics routes |
|
get("/phonics/quiz/:id", PhonicsQuizController, :take) |
|
|
|
resources("/resources", ResourcePageController) |
|
resources("/feedback", ResolutionController, only: [:index, :show, :edit, :update]) |
|
resources("/rooms", RoomController) |
|
get("/room/chat/:room", RoomController, :chat) |
|
resources("/sessions", SessionController, only: [:new, :create, :delete]) |
|
get("/signup", UserController, :new) |
|
get("/login", SessionController, :new) |
|
get("/logout", SessionController, :delete) |
|
get("/", PageController, :index) |
|
get("/:name", PageController, :show) |
|
# the mighty Pokemon route |
|
get("/*name", PageController, :show) |
|
end |
|
end |