# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

# Home page
GET     /                                       Application.index

# Import CRUD routes
*       /admin                                  module:crud

# Ignore favicon requests
GET     /favicon.ico                            404

# Map static resources from the /app/public folder to the /public path
GET     /public/                                staticDir:public

# Login
GET     /login                                  Login.index
GET     /login/linkit                           Login.loginLinkIt
GET     /login/signup                           Login.signup
GET     /login/with/{provider}                  Login.loginWith

# Application
GET     /speakers                               Application.speakers
GET     /staff                                  Application.staff
GET     /sponsors                               Application.sponsors
GET     /members                                Application.members
GET     /interest/{interest}                    Application.searchByInterest
# I fucking don't know why this route is not used!
GET     /search/{query}                         Application.search 

# Activities    
GET     /activities                             Activities.general
GET     /activities/incoming/{providers}        Activities.for
GET     /activities/{login}/{providers}         Activities.of

# Profile
POST    /profile/save/{originalLogin}           Profile.save
GET     /profile/edit                           Profile.edit
GET     /profile/register/{login}/{provider}    Profile.register
GET     /profile/link                           Profile.link
GET     /profile/unlink                         Profile.unlink
GET     /profile/delete                         Profile.delete
GET     /profile/confirmdelete                  Profile.confirmDelete
GET     /profile/{login}                        Profile.show

# Dashboard
GET     /dashboard                              Dashboard.index
GET     /dashboard/link                         Dashboard.link

# Sessions
GET     /sessions                               Sessions.index
GET     /session/new                            Sessions.create
POST    /session                                Sessions.save
GET     /session/edit                           Sessions.edit
GET     /session/validate/{talkId}              Sessions.validate
GET     /session/delete/{talkId}                Sessions.delete
GET     /session/unvalidate/{talkId}            Sessions.unvalidate
POST    /session/comment                        Sessions.postComment
GET     /session/{sessionId}/{slugify}          Sessions.show
# Just in case we forget the slugified title as parameter
GET     /session/{sessionId}                    Sessions.show   

# Lightning
GET     /lightnings                             LightningTalks.list
GET     /lightning/new                          LightningTalks.create
GET     /lightning/delete/{sessionId}           LightningTalks.delete
GET     /lightning/{sessionId}                  LightningTalks.show
POST    /lightning/vote/{id}/{name}             LightningTalks.vote
POST    /lightning                              LightningTalks.save
POST    /lightning/comment                      LightningTalks.postComment

# Articles
GET     /articles                               Articles.index
GET     /articles/{size}                        Articles.list
POST    /article                                Articles.save
GET     /article/delete/{articleId}             Articles.delete
GET     /article/validate/{articleId}           Articles.validate
GET     /article/unvalidate/{articleId}         Articles.unvalidate
GET     /article/new                            Articles.create
GET     /article/edit                           Articles.edit
POST    /article/comment                        Articles.postComment
GET     /article/{articleId}                    Articles.show

# Secure
GET     /logout                                 Secure.logout

# Live activities
WS      /live                                   LiveActivities.listen

# Bots resources
*       /robots.txt                             staticFile:public/robots.txt
*       /humans.txt                             staticFile:public/humans.txt

# Catch all
*       /{controller}                           {controller}.index
*       /{controller}/{action}                  {controller}.{action}
