index:
  path: /{format}
  controller: App\Controller\LandingController::index
  methods: GET
  defaults:
    format: html
  requirements:
    format: html|json
cards:
  path: /cards
  controller: App\Controller\LandingController::cards
  methods: GET
mini-calendar:
  path: /mini
  controller: App\Controller\LandingController::miniCalendar
  methods: GET
full-calendar:
  path: /full
  controller: App\Controller\LandingController::fullCalendar
  methods: GET

new-post:
  path: /post/new
  controller: App\Controller\PostFormController::new
  methods: GET
edit-post-form:
  path: /post/{id}/edit
  controller: App\Controller\PostFormController::edit
  methods: GET
submit-post:
  path: /post/new/submit
  controller: App\Controller\PostManagerController::submit
  methods: POST
edit-post:
  path: /post/edit/submit
  controller: App\Controller\PostManagerController::edit
  methods: POST
delete-post:
  path: /post/{id}/delete
  controller: App\Controller\PostManagerController::delete
  methods: POST

post:
  path: /post/{id}
  controller: App\Controller\PostController::index
  methods: GET
poster:
  path: /post/{id}/poster
  controller: App\Controller\PostController::poster
  methods: GET
post-by-date:
  path: /post/{year}/{month}
  controller: App\Controller\PostController::postsByMonth
  requirements:
    month: january|february|march|april|may|june|july|august|september|october|november|december
    year: \d+

sponsor-all:
  path: /sponsor/all
  controller: App\Controller\SponsorController::listAll
  methods: GET

location-all:
  path: /location/all
  controller: App\Controller\LocationController::listAll
  methods: GET
location-address:
  path: /location/address
  controller: App\Controller\LocationController::lookupByName
  methods: GET

register:
  path: /register
  controller: App\Controller\RegistrationController::index
  methods: GET
admin-register:
  path: /admin/register
  controller: App\Controller\RegistrationController::adminIndex
  methods: GET
register-submit:
  path: /register/submit
  controller: App\Controller\RegistrationController::submit
  methods: POST
login:
  path: /login
  controller: App\Controller\LoginController::index
  methods: GET
login-submit:
  path: /login/submit
  controller: App\Controller\LoginController::submit
  methods: POST
logout:
  path: /logout
  controller: App\Controller\LoginController::logout
  methods: GET
approve-post:
  path: /approve
  controller: App\Controller\PostManagerController::approve
  methods: POST
  defaults:
    role: 1
reject-post:
  path: /reject
  controller: App\Controller\PostManagerController::reject
  methods: POST
  defaults:
    role: 1

unsubscribe:
  path: /unsubscribe
  controller: App\Controller\NewsletterController::unsubscribe
  methods: GET
customize-subscriptions-form:
  path: /newsletter/subscriptions
  controller: App\Controller\NewsletterController::subscriptionsForm
  methods: GET
customize-subscriptions:
  path: /newsletter/subscriptions/submit
  controller: App\Controller\NewsletterController::setSubscriptions
  methods: POST

slideshow:
  path: /slideshow
  controller: App\Controller\SlideshowController::index
  methods: GET

account:
  path: /account
  controller: App\Controller\AccountController::index
  methods: GET