in common/app/renderers/DotcomRenderingService.scala [150:226]
def getAMPArticle(
ws: WSClient,
page: PageWithStoryPackage,
blocks: Blocks,
pageType: PageType,
newsletter: Option[NewsletterData],
filterKeyEvents: Boolean = false,
)(implicit request: RequestHeader): Future[Result] =
baseArticleRequest("/AMPArticle", ws, page, blocks, pageType, filterKeyEvents, false, newsletter)
def getAppsArticle(
ws: WSClient,
page: PageWithStoryPackage,
blocks: Blocks,
pageType: PageType,
newsletter: Option[NewsletterData],
filterKeyEvents: Boolean = false,
forceLive: Boolean = false,
)(implicit request: RequestHeader): Future[Result] =
baseArticleRequest(
"/AppsArticle",
ws,
page,
blocks,
pageType,
filterKeyEvents,
forceLive,
newsletter,
)
def getArticle(
ws: WSClient,
page: PageWithStoryPackage,
blocks: Blocks,
pageType: PageType,
newsletter: Option[NewsletterData],
filterKeyEvents: Boolean = false,
forceLive: Boolean = false,
)(implicit request: RequestHeader): Future[Result] =
baseArticleRequest(
"/Article",
ws,
page,
blocks,
pageType,
filterKeyEvents,
forceLive,
newsletter,
)
private def baseArticleRequest(
path: String,
ws: WSClient,
page: PageWithStoryPackage,
blocks: Blocks,
pageType: PageType,
filterKeyEvents: Boolean,
forceLive: Boolean = false,
newsletter: Option[NewsletterData],
)(implicit request: RequestHeader): Future[Result] = {
val dataModel = page match {
case liveblog: LiveBlogPage =>
DotcomRenderingDataModel.forLiveblog(
liveblog,
blocks,
request,
pageType,
filterKeyEvents,
forceLive,
newsletter,
)
case _ => DotcomRenderingDataModel.forArticle(page, blocks, request, pageType, newsletter)
}
val json = DotcomRenderingDataModel.toJson(dataModel)
post(ws, json, Configuration.rendering.articleBaseURL + path, page.metadata.cacheTime)
}