]> Raphaƫl G. Git Repositories - airbundle/blobdiff - Resources/config/routes/rapsys_air.yaml
Set location, dance and user as optional in session view route
[airbundle] / Resources / config / routes / rapsys_air.yaml
index edbb2e521be71592091d35c8fa5399b7a0e250e0..ca01a8c76afe0ec759106dbd7197569079870791 100644 (file)
@@ -1,30 +1,34 @@
+#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-gb: '/en'
-        fr-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'
+        en_gb: '/en/about'
+        fr_fr: '/a-propos'
     controller: Rapsys\AirBundle\Controller\DefaultController::about
     methods: GET
 
 rapsys_air_contact:
     path:
-        en-gb: '/en/contact'
-        fr-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_calendar:
     path:
-        en-gb: '/en/calendar'
-        fr-fr: '/calendrier'
+        en_gb: '/en/calendar'
+        fr_fr: '/calendrier'
     controller: Rapsys\AirBundle\Controller\CalendarController::index
     methods: GET|POST
 
@@ -33,159 +37,214 @@ rapsys_air_calendar_callback:
     controller: Rapsys\AirBundle\Controller\CalendarController::callback
     methods: GET
 
+rapsys_air_city:
+    path:
+        'en_gb': '/en/city'
+        'fr_fr': '/ville'
+    controller: Rapsys\AirBundle\Controller\LocationController::cities
+    methods: GET|POST
+
+rapsys_air_city_view:
+    path:
+        '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_dance:
+    path:
+        'en_gb': '/en/dance'
+        'fr_fr': '/danse'
+    controller: Rapsys\AirBundle\Controller\DanceController::index
+    methods: GET|POST
+
+rapsys_air_dance_view:
+    path:
+        '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_dance_name:
+    path:
+        '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_frequently_asked_questions:
     path:
-        en-gb: '/en/frequently-asked-questions'
-        fr-fr: '/foire-aux-questions'
+        en_gb: '/en/frequently-asked-questions'
+        fr_fr: '/foire-aux-questions'
     controller: Rapsys\AirBundle\Controller\DefaultController::frequentlyAskedQuestions
     methods: GET
 
 rapsys_air_organizer_regulation:
     path:
-        en-gb: '/en/organizer-regulation'
-        fr-fr: '/reglement-organisateur'
+        en_gb: '/en/organizer-regulation'
+        fr_fr: '/reglement-organisateur'
     controller: Rapsys\AirBundle\Controller\DefaultController::organizerRegulation
     methods: GET
 
 rapsys_air_terms_of_service:
     path:
-        en-gb: '/en/terms-of-service'
-        fr-fr: '/conditions-generales-d-utilisation'
+        en_gb: '/en/terms-of-service'
+        fr_fr: '/conditions-generales-d-utilisation'
     controller: Rapsys\AirBundle\Controller\DefaultController::termsOfService
     methods: GET
 
 rapsys_air_dispute:
     path:
-        en-gb: '/en/dispute'
-        fr-fr: '/contestation'
+        en_gb: '/en/dispute'
+        fr_fr: '/contestation'
     controller: Rapsys\AirBundle\Controller\DefaultController::dispute
     methods: GET|POST
 
 rapsys_air_location:
     path:
-        en-gb: '/en/location'
-        fr-fr: '/emplacement'
+        en_gb: '/en/location'
+        fr_fr: '/emplacement'
     controller: Rapsys\AirBundle\Controller\LocationController::index
-    methods: GET
-
-rapsys_air_location_add:
-    path:
-        en-gb: '/en/location'
-        fr-fr: '/emplacement'
-    controller: Rapsys\AirBundle\Controller\LocationController::add
-    methods: POST
-
-rapsys_air_location_edit:
-    path:
-        en-gb: '/en/location/{id<\d+>}'
-        fr-fr: '/emplacement/{id<\d+>}'
-    controller: Rapsys\AirBundle\Controller\LocationController::edit
-    methods: POST
+    methods: GET|POST
 
 rapsys_air_location_view:
     path:
-        en-gb: '/en/location/{id<\d+>}'
-        fr-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:
     path:
-        en-gb: '/en/application'
-        fr-fr: '/reservation'
+        en_gb: '/en/application'
+        fr_fr: '/reservation'
     controller: Rapsys\AirBundle\Controller\ApplicationController::add
-    methods: POST
+    methods: GET|POST
 
 rapsys_air_session:
     path:
-        en-gb: '/en/session'
-        fr-fr: '/seance'
+        en_gb: '/en/session'
+        fr_fr: '/seance'
     controller: Rapsys\AirBundle\Controller\SessionController::index
     methods: GET
 
-rapsys_air_session_edit:
-    path:
-        en-gb: '/en/session/{id<\d+>}'
-        fr-fr: '/seance/{id<\d+>}'
-    controller: Rapsys\AirBundle\Controller\SessionController::edit
-    methods: POST
-
 rapsys_air_session_tangoargentin:
     path:
-        en-gb: '/en/session/tangoargentin'
-        fr-fr: '/seance/tangoargentin'
-    format: json
+        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-gb: '/en/session/{id<\d+>}'
-        fr-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-gb: '/en/snippet'
-        fr-fr: '/extrait'
+        en_gb: '/en/snippet'
+        fr_fr: '/extrait'
     controller: Rapsys\AirBundle\Controller\SnippetController::add
     methods: POST
 
 rapsys_air_snippet_edit:
     path:
-        en-gb: '/en/snippet/{id<\d+>}'
-        fr-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:
     path:
-        en-gb: '/en/user'
-        fr-fr: '/utilisateur'
-    controller: Rapsys\AirBundle\Controller\UserController::index
+        en_gb: '/en/user'
+        fr_fr: '/utilisateur'
+    controller: Rapsys\AirBundle\Controller\DefaultController::userIndex
     methods: GET
 
 rapsys_air_user_view:
     path:
-        en-gb: '/en/user/{id<\d+>}'
-        fr-fr: '/utilisateur/{id<\d+>}'
-    controller: Rapsys\AirBundle\Controller\UserController::view
+        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_login:
+rapsys_air_user_milongaraphael:
     path:
-        en-gb: /en/login
-        fr-fr: /connecter
-    controller: Rapsys\UserBundle\Controller\DefaultController::login
-    methods: GET|POST
+        en_gb: '/en/milonga-raphael'
+        fr_fr: '/milonga-raphael'
+    controller: Rapsys\AirBundle\Controller\DefaultController::userView
+    defaults:
+        # default parameters
+        id: 1
+        user: 'milonga-raphael'
 
-rapsys_user_recover:
+rapsys_user_confirm:
     path:
-        en-gb: /en/recover
-        fr-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-gb: /en/recover/{recipient}/{hash}
-        fr-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-gb: /en/register
-        fr-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-gb: /en/logout
-        fr-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