sport/app/services/dotcomrendering/FootballPagePicker.scala (36 lines of code) (raw):

package services.dotcomrendering import conf.switches.Switches.DCRFootballPages import football.controllers.FootballPage import model.Cors.RichRequestHeader import play.api.mvc.RequestHeader import utils.DotcomponentsLogger object FootballPagePicker { def isSupportedInDcr(page: FootballPage): Boolean = { val footballMatchesPattern = """^football(?:/[^/]+)?/(live|fixtures|results)(?:/more)?(?:/\d{4}/[A-Za-z]{3}/\d{1,2})?$""".r footballMatchesPattern.matches(page.metadata.id) } def getTier( footballPage: FootballPage, )(implicit request: RequestHeader, ): RenderType = { val dcrCanRender = isSupportedInDcr(footballPage) val dcrShouldRender = DCRFootballPages.isSwitchedOn val tier = { if (request.forceDCROff) LocalRender else if (request.forceDCR) RemoteRender else if (dcrCanRender && dcrShouldRender) RemoteRender else LocalRender } if (tier == RemoteRender) { DotcomponentsLogger.logger.logRequestForNonContentPage( s"path executing in dotcomponents", Map.empty, ) } else { DotcomponentsLogger.logger.logRequestForNonContentPage(s"path executing in web (frontend)", Map.empty) } tier } }