+#https://symfony.com/doc/current/controller.html#controller-request-argument
+#CRUD: edit, index, new, show, _delete_form, _form
#https://symfony.com/doc/current/routing.html#localized-routes-i18n
#SCRUD: index, add, edit, delete, view
+
+#TODO: rename view in show ???
rapsys_air:
path:
- en: '/en'
- fr: '/'
+ en_gb: '/en'
+ fr_fr: '/'
controller: Rapsys\AirBundle\Controller\DefaultController::index
methods: GET
+rapsys_air_about:
+ path:
+ en_gb: '/en/about'
+ fr_fr: '/a-propos'
+ controller: Rapsys\AirBundle\Controller\DefaultController::about
+ methods: GET
+
+#TODO: drop it or should we keep it to be able to add an application from multiple places ???
+rapsys_air_application_add:
+ path:
+ en_gb: '/en/application'
+ fr_fr: '/reservation'
+ controller: Rapsys\AirBundle\Controller\ApplicationController::add
+ methods: GET|POST
+
rapsys_air_contact:
path:
- en: '/en/contact'
- fr: '/contacter'
+ en_gb: '/en/contact/{id<\d*>?}/{user<[\w-]*>?}'
+ fr_fr: '/contacter/{id<\d*>?}/{user<[\w-]*>?}'
controller: Rapsys\AirBundle\Controller\DefaultController::contact
methods: GET|POST
-rapsys_air_frequently_asked_questions:
+#rapsys_air_calendar:
+# path:
+# en_gb: '/en/calendar'
+# fr_fr: '/calendrier'
+# controller: Rapsys\AirBundle\Controller\CalendarController::index
+# methods: GET|POST
+
+rapsys_air_city:
path:
- en: '/en/frequently-asked-questions'
- fr: '/foire-aux-questions'
- controller: Rapsys\AirBundle\Controller\DefaultController::frequentlyAskedQuestions
- methods: GET
+ 'en_gb': '/en/city'
+ 'fr_fr': '/ville'
+ controller: Rapsys\AirBundle\Controller\LocationController::cities
+ methods: GET|POST
-rapsys_air_organizer_regulation:
+rapsys_air_city_view:
path:
- en: '/en/organizer-regulation'
- fr: '/reglement-organisateur'
- controller: Rapsys\AirBundle\Controller\DefaultController::organizerRegulation
- methods: GET
+ 'en_gb': '/en/city/{latitude<-?(?:\d*\.)?\d+>}/{longitude<-?(?:\d*\.)?\d+>}/{city<[\w-]+>}'
+ 'fr_fr': '/ville/{latitude<-?(?:\d*\.)?\d+>}/{longitude<-?(?:\d*\.)?\d+>}/{city<[\w-]+>}'
+ controller: Rapsys\AirBundle\Controller\LocationController::city
+ methods: GET|POST
-rapsys_air_terms_of_service:
+rapsys_air_dance:
path:
- en: '/en/terms-of-service'
- fr: '/conditions-generales-d-utilisation'
- controller: Rapsys\AirBundle\Controller\DefaultController::termsOfService
- methods: GET
+ 'en_gb': '/en/dance'
+ 'fr_fr': '/danse'
+ controller: Rapsys\AirBundle\Controller\DanceController::index
+ methods: GET|POST
-rapsys_air_dispute:
+rapsys_air_dance_view:
path:
- en: '/en/dispute'
- fr: '/contestation'
- controller: Rapsys\AirBundle\Controller\DefaultController::dispute
+ 'en_gb': '/en/dance/{id<[0-9]+>}/{name<[\w-]+>}/{type<[\w-]+>}'
+ 'fr_fr': '/danse/{id<[0-9]+>}/{name<[\w-]+>}/{type<[\w-]+>}'
+ controller: Rapsys\AirBundle\Controller\DanceController::view
methods: GET|POST
-rapsys_air_location:
+rapsys_air_dance_name:
path:
- en: '/en/location'
- fr: '/emplacement'
- controller: Rapsys\AirBundle\Controller\LocationController::index
- methods: GET
+ 'en_gb': '/en/dance/{name<[a-zA-Z0-9=_-]+>}/{dance<[\w-]+>}'
+ 'fr_fr': '/danse/{name<[a-zA-Z0-9=_-]+>}/{dance<[\w-]+>}'
+ controller: Rapsys\AirBundle\Controller\DanceController::name
+ methods: GET|POST
-rapsys_air_location_add:
+rapsys_air_frequently_asked_questions:
path:
- en: '/en/location'
- fr: '/emplacement'
- controller: Rapsys\AirBundle\Controller\LocationController::add
- methods: POST
+ en_gb: '/en/frequently-asked-questions'
+ fr_fr: '/foire-aux-questions'
+ controller: Rapsys\AirBundle\Controller\DefaultController::frequentlyAskedQuestions
+ methods: GET
-rapsys_air_location_edit:
+rapsys_air_google_callback:
+ path: '/google/callback'
+ controller: Rapsys\AirBundle\Controller\UserController::googleCallback
+ methods: GET
+
+rapsys_air_location:
path:
- en: '/en/location/{id<\d+>}'
- fr: '/emplacement/{id<\d+>}'
- controller: Rapsys\AirBundle\Controller\LocationController::edit
- methods: POST
+ en_gb: '/en/location'
+ fr_fr: '/emplacement'
+ controller: Rapsys\AirBundle\Controller\LocationController::index
+ methods: GET|POST
rapsys_air_location_view:
path:
- en: '/en/location/{id<\d+>}'
- fr: '/emplacement/{id<\d+>}'
+ en_gb: '/en/location/{id<\d+>}/{location<[\w-]+>?}'
+ fr_fr: '/emplacement/{id<\d+>}/{location<[\w-]+>?}'
controller: Rapsys\AirBundle\Controller\LocationController::view
methods: GET
-rapsys_air_application_add:
+rapsys_air_organizer_regulation:
path:
- en: '/en/application'
- fr: '/reservation'
- controller: Rapsys\AirBundle\Controller\ApplicationController::add
- methods: POST
+ en_gb: '/en/organizer-regulation'
+ fr_fr: '/reglement-organisateur'
+ controller: Rapsys\AirBundle\Controller\DefaultController::organizerRegulation
+ methods: GET
rapsys_air_session:
path:
- en: '/en/session'
- fr: '/seance'
+ en_gb: '/en/session'
+ fr_fr: '/seance'
controller: Rapsys\AirBundle\Controller\SessionController::index
methods: GET
-rapsys_air_session_edit:
+rapsys_air_session_tangoargentin:
path:
- en: '/en/session/{id<\d+>}'
- fr: '/seance/{id<\d+>}'
- controller: Rapsys\AirBundle\Controller\SessionController::edit
- methods: POST
+ en_gb: '/en/session/tangoargentin.{!_format?json}'
+ fr_fr: '/seance/tangoargentin.{!_format?json}'
+ controller: Rapsys\AirBundle\Controller\SessionController::tangoargentin
+ methods: GET
rapsys_air_session_view:
path:
- en: '/en/session/{id<\d+>}'
- fr: '/seance/{id<\d+>}'
+ en_gb: '/en/session/{id<\d+>}/{location<[\w-]+>?}/{dance<[\w-]*>?}/{user<[\w-]*>?}'
+ fr_fr: '/seance/{id<\d+>}/{location<[\w-]+>?}/{dance<[\w-]*>?}/{user<[\w-]*>?}'
controller: Rapsys\AirBundle\Controller\SessionController::view
- methods: GET
+ methods: GET|POST
rapsys_air_snippet_add:
path:
- en: '/en/snippet'
- fr: '/extrait'
+ en_gb: '/en/snippet'
+ fr_fr: '/extrait'
controller: Rapsys\AirBundle\Controller\SnippetController::add
methods: POST
rapsys_air_snippet_edit:
path:
- en: '/en/snippet/{id<\d+>}'
- fr: '/extrait/{id<\d+>}'
+ en_gb: '/en/snippet/{id<\d+>}'
+ fr_fr: '/extrait/{id<\d+>}'
controller: Rapsys\AirBundle\Controller\SnippetController::edit
methods: POST
-rapsys_air_user:
+rapsys_air_terms_of_service:
path:
- en: '/en/user'
- fr: '/utilisateur'
- controller: Rapsys\AirBundle\Controller\UserController::index
+ en_gb: '/en/terms-of-service'
+ fr_fr: '/conditions-generales-d-utilisation'
+ controller: Rapsys\AirBundle\Controller\DefaultController::termsOfService
methods: GET
-rapsys_air_user_view:
+rapsys_air_user:
path:
- en: '/en/user/{id<\d+>}'
- fr: '/utilisateur/{id<\d+>}'
- controller: Rapsys\AirBundle\Controller\UserController::view
+ en_gb: '/en/user'
+ fr_fr: '/utilisateur'
+ controller: Rapsys\AirBundle\Controller\DefaultController::userIndex
methods: GET
-rapsys_user_login:
+rapsys_air_user_milongaraphael:
path:
- en: /en/login
- fr: /connecter
- controller: Rapsys\UserBundle\Controller\DefaultController::login
+ en_gb: '/en/milonga-raphael'
+ fr_fr: '/milonga-raphael'
+ controller: Rapsys\AirBundle\Controller\DefaultController::userView
+ defaults:
+ # default parameters
+ id: 1
+ user: 'milonga-raphael'
+
+rapsys_air_user_view:
+ path:
+ en_gb: '/en/user/{id<\d+>}/{user<[\w-]+>?}'
+ fr_fr: '/utilisateur/{id<\d+>}/{user<[\w-]+>?}'
+ controller: Rapsys\AirBundle\Controller\DefaultController::userView
methods: GET|POST
-rapsys_user_recover:
+rapsys_user_confirm:
path:
- en: /en/recover
- fr: /recuperer
- controller: Rapsys\UserBundle\Controller\DefaultController::recover
+ en_gb: '/en/confirm/{hash}/{mail}'
+ fr_fr: '/confirmer/{hash}/{mail}'
+ controller: Rapsys\UserBundle\Controller\DefaultController::confirm
+ requirements:
+ mail: '[a-zA-Z0-9=_-]+'
+ hash: '[a-zA-Z0-9=_-]+'
methods: GET|POST
-rapsys_user_recover_mail:
+rapsys_user_edit:
path:
- en: /en/recover/{recipient}/{hash}
- fr: /recuperer/{recipient}/{hash}
- controller: Rapsys\UserBundle\Controller\DefaultController::recoverMail
+ en_gb: '/en/user/{hash}/{mail}'
+ fr_fr: '/utilisateur/{hash}/{mail}'
+ controller: Rapsys\AirBundle\Controller\UserController::edit
requirements:
- recipient: '[a-zA-Z0-9=_-]+'
+ mail: '[a-zA-Z0-9=_-]+'
hash: '[a-zA-Z0-9=_-]+'
methods: GET|POST
-rapsys_user_register:
+rapsys_user_login:
path:
- en: /en/register
- fr: /enregistrer
- controller: Rapsys\UserBundle\Controller\DefaultController::register
+ en_gb: '/en/login/{hash}/{mail}'
+ fr_fr: '/connecter/{hash}/{mail}'
+ controller: Rapsys\UserBundle\Controller\DefaultController::login
+ defaults:
+ mail: ~
+ hash: ~
+ requirements:
+ mail: '[a-zA-Z0-9=_-]+'
+ hash: '[a-zA-Z0-9=_-]+'
methods: GET|POST
rapsys_user_logout:
path:
- en: /en/logout
- fr: /deconnecter
+ en_gb: '/en/logout'
+ fr_fr: '/deconnecter'
methods: GET
+
+rapsys_user_recover:
+ path:
+ en_gb: '/en/recover/{hash}/{pass}/{mail}'
+ fr_fr: '/recuperer/{hash}/{pass}/{mail}'
+ controller: Rapsys\UserBundle\Controller\DefaultController::recover
+ defaults:
+ mail: ~
+ pass: ~
+ hash: ~
+ requirements:
+ mail: '[a-zA-Z0-9=_-]+'
+ pass: '[a-zA-Z0-9=_-]+'
+ hash: '[a-zA-Z0-9=_-]+'
+ methods: GET|POST
+
+rapsys_user_register:
+ path:
+ en_gb: '/en/register/{hash}/{field}/{mail}'
+ fr_fr: '/enregistrer/{hash}/{field}/{mail}'
+ controller: Rapsys\UserBundle\Controller\DefaultController::register
+ defaults:
+ mail: ~
+ field: ~
+ hash: ~
+ requirements:
+ mail: '[a-zA-Z0-9=_-]+'
+ field: '[a-zA-Z0-9=_-]+'
+ hash: '[a-zA-Z0-9=_-]+'
+ methods: GET|POST