-
Notifications
You must be signed in to change notification settings - Fork 558
/
Copy pathroutes
143 lines (111 loc) · 12.9 KB
/
routes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
# For dev machines
GET /assets/*path dev.DevAssetsController.at(path)
GET /_healthcheck controllers.HealthCheck.healthCheck()
GET /sitemaps/news.xml controllers.SiteMapController.renderNewsSiteMap()
GET /sitemaps/video.xml controllers.SiteMapController.renderVideoSiteMap()
GET /email-newsletters.json controllers.SignupPageController.renderNewsletters()
GET /email-newsletters controllers.SignupPageController.renderNewsletters()
GET /survey/:formName/show controllers.SurveyPageController.renderFormStackSurvey(formName)
GET /survey/thankyou controllers.SurveyPageController.thankYou()
# NOTE: Leave this as it is, otherwise we don't render /crosswords/series/prize, for example.
GET /crosswords/$crosswordType<cryptic|quick|quiptic|quick-cryptic|prize|everyman|azed|special|genius|speedy|weekend>/:id.svg controllers.CrosswordPageController.thumbnail(crosswordType: String, id: Int)
GET /crosswords/$crosswordType<cryptic|quick|quiptic|quick-cryptic|prize|everyman|azed|special|genius|speedy|weekend>/:id.json controllers.CrosswordPageController.renderJson(crosswordType: String, id: Int)
GET /crosswords/$crosswordType<cryptic|quick|quiptic|quick-cryptic|prize|everyman|azed|special|genius|speedy|weekend>/:id controllers.CrosswordPageController.crossword(crosswordType: String, id: Int)
GET /crosswords/$crosswordType<cryptic|quick|quiptic|quick-cryptic|prize|everyman|special|genius|speedy|weekend>/:id/print controllers.CrosswordPageController.printableCrossword(crosswordType: String, id: Int)
GET /crosswords/accessible/$crosswordType<cryptic|quick|quiptic|quick-cryptic|prize|everyman|azed|special|genius|speedy|weekend>/:id controllers.CrosswordPageController.accessibleCrossword(crosswordType: String, id: Int)
# Crosswords search
GET /crosswords/search controllers.CrosswordSearchController.search()
GET /crosswords/lookup controllers.CrosswordSearchController.lookup()
# Crosswords digital edition
GET /crosswords/digital-edition controllers.CrosswordEditionsController.digitalEdition
GET /crosswords/digital-edition.json controllers.CrosswordEditionsController.digitalEditionJson
# Email paths
GET /email/form/$emailType<plain|plaindark|plaintone>/$listId<[0-9]+> controllers.EmailSignupController.renderForm(emailType: String, listId: Int)
GET /email/form/$emailType<plain|plaindark|plaintone>/:listName controllers.EmailSignupController.renderFormFromName(emailType: String, listName: String)
GET /email/form/$emailType<plain|plaindark|plaintone>/:parentComponent/$listId<[0-9]+> controllers.EmailSignupController.renderFormWithParentComponent(emailType: String, listId: Int, parentComponent:String)
GET /email/form/$emailType<plain|plaindark|plaintone>/:parentComponent/:listName controllers.EmailSignupController.renderFormFromNameWithParentComponent(emailType: String, listName: String, parentComponent: String)
GET /email/form/footer/:listName controllers.EmailSignupController.renderFooterForm(listName: String)
GET /email/form/thrasher/$listId<[0-9]+> controllers.EmailSignupController.renderThrasherForm(listId: Int)
GET /email/form/thrasher/:listName controllers.EmailSignupController.renderThrasherFormFromName(listName: String)
## Submission results (Only accessed server side)
GET /email/$result<success|invalid|error>/footer controllers.EmailSignupController.subscriptionResultFooter(result: String)
GET /email/success/:listName controllers.EmailSignupController.subscriptionSuccessResult(listName: String)
GET /email/$result<invalid|error> controllers.EmailSignupController.subscriptionNonsuccessResult(result: String)
## Submission endpoints
POST /email/footer controllers.EmailSignupController.submitFooter()
POST /email controllers.EmailSignupController.submit()
POST /email/many controllers.EmailSignupController.submitMany()
OPTIONS /email controllers.EmailSignupController.options()
GET /index/subjects controllers.TagIndexController.keywords()
GET /index/subjects/*index controllers.TagIndexController.keyword(index)
GET /index/contributors controllers.TagIndexController.contributors()
GET /index/contributors/*contributor controllers.TagIndexController.contributor(contributor)
GET /embed/video/*path controllers.EmbedController.render(path)
GET /embed/atom/:atomType/:id controllers.AtomPageController.render(atomType: String, id: String, isJsEnabled: Boolean = true, hasVerticalScrollbar: Boolean = false)
GET /embed/atom/:atomType/:id/nojs controllers.AtomPageController.renderNoJs(atomType: String, id: String)
GET /embed/atom/:atomType/:id/nojs/scroll-y controllers.AtomPageController.renderNoJsVerticalScroll(atomType: String, id: String)
POST /story-questions/answers/signup controllers.AtomPageController.signup()
OPTIONS /story-questions/answers/signup controllers.AtomPageController.options()
# Preferences
GET /preferences controllers.PreferencesController.indexPrefs()
# opt-in/out routes
GET /opt/$choice<in|out|delete>/:feature controllers.OptInController.handle(feature, choice)
GET /opt/reset controllers.OptInController.reset()
GET /getnext/$tag<[\w\d-]*(/[\w\d-]*)?(/[\w\d-]*)?>/*path controllers.ImageContentController.getNextLightboxJson(path, tag, direction = "next")
GET /getprev/$tag<[\w\d-]*(/[\w\d-]*)?(/[\w\d-]*)?>/*path controllers.ImageContentController.getNextLightboxJson(path, tag, direction = "prev")
# Newspaper pages
GET /theguardian controllers.NewspaperController.latestGuardianNewspaper()
GET /theobserver controllers.NewspaperController.latestObserverNewspaper()
GET /$path<theguardian|theobserver>/$year<\d\d\d\d>/$month<\w\w\w>/$day<\d\d> controllers.NewspaperController.newspaperForDate(path, day, month, year)
GET /$path<theguardian|theobserver>/$year<\d\d\d\d>/$month<\w\w\w>/$day<\d\d>/all controllers.NewspaperController.allOn(path, day, month, year)
# Atoms
POST /atom/quiz/:id/*path controllers.QuizController.submit(id, path)
GET /atom/youtube/:id.json controllers.YoutubeController.getAtomId(id: String)
# Nx1Config
# mark: 2QJfZo - keep these in sync with other instances https://github.com/search?q=org%3Aguardian+2QJfZo&type=code
GET /switches.json controllers.Nx1ConfigController.switches
GET /tests.json controllers.Nx1ConfigController.tests
GET /$path<.+/\d\d\d\d/\w\w\w/\d\d> controllers.AllIndexController.on(path)
GET /$path<.+>/latest controllers.LatestIndexController.latest(path)
GET /$path<.+>/latest/email controllers.LatestIndexController.latest(path)
GET /$path<.+>/latest/email/headline.txt controllers.LatestIndexController.latest(path)
GET /$path<.+>/latest/email.emailjson controllers.LatestIndexController.latest(path)
GET /$path<.+>/latest/email.emailtxt controllers.LatestIndexController.latest(path)
GET /$path<.+>/$year<\d\d\d\d>/$month<\w\w\w>/$day<\d\d>/all controllers.AllIndexController.allOn(path, day, month, year)
GET /$path<.+>/$year<\d\d\d\d>/$month<\w\w\w>/$day<\d\d>/altdate controllers.AllIndexController.altDate(path, day, month, year)
GET /$path<.+>/all.json controllers.AllIndexController.renderJson(path)
GET /$path<.+>/all controllers.AllIndexController.all(path)
# Gallery paths
GET /$path<[\w\d-]*(/[\w\d-]*)?/gallery/.*>/lightbox.json controllers.GalleryController.lightboxJson(path)
GET /$path<[\w\d-]*(/[\w\d-]*)?/gallery/.*>.json controllers.GalleryController.renderJson(path)
GET /$path<[\w\d-]*(/[\w\d-]*)?/gallery/.*> controllers.GalleryController.render(path)
# Image Content paths
GET /$path<[\w\d-]*(/[\w\d-]*)?/(cartoon|picture|graphic)/.*>.json controllers.ImageContentController.renderJson(path)
GET /$path<[\w\d-]*(/[\w\d-]*)?/(cartoon|picture|graphic)/.*> controllers.ImageContentController.render(path)
# Audio and Video paths
GET /$path<[\w\d-]*(/[\w\d-]*)?/(video|audio)/.*>/info.json controllers.MediaController.renderInfoJson(path)
GET /$path<[\w\d-]*(/[\w\d-]*)?/(video|audio)/.*>.json controllers.MediaController.renderJson(path)
GET /$path<[\w\d-]*(/[\w\d-]*)?/(video|audio)/.*> controllers.MediaController.render(path)
# Interactive service worker
GET /$path<[\w\d-]*(/[\w\d-]*)+>/$file<interactive(-service)?-worker.js> controllers.InteractiveController.proxyInteractiveWebWorker(path, file)
# Interactive paths
GET /$path<[\w\d-]*(/[\w\d-]*)?/(interactive|ng-interactive)/.*>.json controllers.InteractiveController.renderInteractiveJson(path)
GET /$path<[\w\d-]*(/[\w\d-]*)?/(interactive|ng-interactive)/.*> controllers.InteractiveController.renderInteractive(path)
# Interactive test (removing ng-interactive in the url)
GET /$path<info/2017/jul/26/interactive-test> controllers.InteractiveController.renderInteractive(path)
# Short urls with campaign codes
GET /$shortCode<p/[\w]+> controllers.ShortUrlsController.redirectShortUrl(shortCode)
GET /$shortCode<p/[\w]+>/:campaignCode controllers.ShortUrlsController.fetchCampaignAndRedirectShortCode(shortCode, campaignCode)
#GET /getprevious/$path<[\w\d-]*(/[\w\d-]*)?(/[\w\d-]*)?> controllers.IndexController.render(path)
# Index pages for tags
GET /$path<[\w\d-]*(/[\w\d-]*)?(/[\w\d-]*)?>/trails.json controllers.IndexController.renderTrailsJson(path)
GET /$path<[\w\d-]*(/[\w\d-]*)?(/[\w\d-]*)?>/trails controllers.IndexController.renderTrails(path)
GET /$path<[\w\d-]*(/[\w\d-]*)?(/[\w\d-]*)?>.json controllers.IndexController.renderJson(path)
GET /$path<[\w\d-]*(/[\w\d-]*)?(/[\w\d-]*)?> controllers.IndexController.render(path)
# Tag combiners
GET /$leftSide<[^+]+>+*rightSide controllers.IndexController.renderCombiner(leftSide, rightSide)
# Google site verification
GET /google$account<[\w\d-]*>.html controllers.SiteVerificationController.googleSiteVerify(account)