diff --git a/article/app/controllers/LiveBlogController.scala b/article/app/controllers/LiveBlogController.scala index 644b2c814f45..eb04f9fdd391 100644 --- a/article/app/controllers/LiveBlogController.scala +++ b/article/app/controllers/LiveBlogController.scala @@ -45,7 +45,7 @@ class LiveBlogController( def renderEmail(path: String): Action[AnyContent] = { Action.async { implicit request => - mapModel(path, ArticleBlocks, topMentionResult = None) { + mapModel(path, ArticleBlocks, topMentions = None) { case (minute: MinutePage, _) => Future.successful(common.renderEmail(ArticleEmailHtmlPage.html(minute), minute)) case (blog: LiveBlogPage, _) => Future.successful(common.renderEmail(LiveBlogHtmlPage.html(blog), blog)) @@ -116,16 +116,16 @@ class LiveBlogController( ): Action[AnyContent] = { Action.async { implicit request: Request[AnyContent] => val filter = shouldFilter(filterKeyEvents) - val topMentionResult = getTopMentions(path, topics) - val range = getRange(lastUpdate, page, topMentionResult) + val topMentions = getTopMentions(path, topics) + val range = getRange(lastUpdate, page, topMentions) val availableTopics = topMentionsService.getTopics(path) - mapModel(path, range, filter, topMentionResult) { + mapModel(path, range, filter, topMentions) { case (blog: LiveBlogPage, _) if rendered.contains(false) => getJsonForFronts(blog) case (blog: LiveBlogPage, blocks) if request.forceDCR && lastUpdate.isEmpty => Future.successful(renderGuuiJson(blog, blocks, filter, availableTopics, selectedTopics = topics)) case (blog: LiveBlogPage, blocks) => - getJson(blog, range, isLivePage, filter, blocks.requestedBodyBlocks.getOrElse(Map.empty), topMentionResult) + getJson(blog, range, isLivePage, filter, blocks.requestedBodyBlocks.getOrElse(Map.empty), topMentions) case (minute: MinutePage, _) => Future.successful(common.renderJson(views.html.fragments.minuteBody(minute), minute)) case _ => @@ -140,13 +140,13 @@ class LiveBlogController( path: String, range: BlockRange, filterKeyEvents: Boolean, - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], availableTopics: Option[Seq[TopicWithCount]], selectedTopics: Option[String], )(implicit request: RequestHeader, ): Future[Result] = { - mapModel(path, range, filterKeyEvents, topMentionResult) { (page, blocks) => + mapModel(path, range, filterKeyEvents, topMentions) { (page, blocks) => { val isAmpSupported = page.article.content.shouldAmplify val pageType: PageType = PageType(page, request, context) @@ -203,9 +203,9 @@ class LiveBlogController( private[this] def getRange( lastUpdate: Option[String], page: Option[String], - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], ): BlockRange = { - (lastUpdate.map(ParseBlockId.fromBlockId), page.map(ParseBlockId.fromPageParam), topMentionResult) match { + (lastUpdate.map(ParseBlockId.fromBlockId), page.map(ParseBlockId.fromPageParam), topMentions) match { case (Some(ParsedBlockId(id)), _, _) => SinceBlockId(id) case (_, Some(ParsedBlockId(id)), _) => PageWithBlock(id) case (_, _, Some(_)) => TopicsLiveBlog @@ -225,7 +225,7 @@ class LiveBlogController( isLivePage: Option[Boolean], filterKeyEvents: Boolean, requestedBodyBlocks: scala.collection.Map[String, Seq[Block]] = Map.empty, - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], )(implicit request: RequestHeader): Future[Result] = { val remoteRender = !request.forceDCROff @@ -238,7 +238,7 @@ class LiveBlogController( filterKeyEvents, remoteRender, requestedBodyBlocks, - topMentionResult, + topMentions, ) case _ => Future.successful(common.renderJson(views.html.liveblog.liveBlogBody(liveblog), liveblog)) } @@ -248,7 +248,7 @@ class LiveBlogController( page: PageWithStoryPackage, lastUpdateBlockId: SinceBlockId, filterKeyEvents: Boolean, - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], ): Seq[BodyBlock] = { val requestedBlocks = page.article.fields.blocks.toSeq.flatMap { _.requestedBodyBlocks.getOrElse(lastUpdateBlockId.around, Seq()) @@ -260,8 +260,8 @@ class LiveBlogController( if (filterKeyEvents) { latestBlocks.filter(block => block.eventType == KeyEvent || block.eventType == SummaryEvent) - } else if (topMentionResult.isDefined) { - latestBlocks.filter(block => topMentionResult.get.blocks.contains(block.id)) + } else if (topMentions.isDefined) { + latestBlocks.filter(block => topMentions.get.blocks.contains(block.id)) } else latestBlocks } @@ -270,7 +270,7 @@ class LiveBlogController( requestedBodyBlocks: scala.collection.Map[String, Seq[Block]], lastUpdateBlockId: SinceBlockId, filterKeyEvents: Boolean, - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], ): Seq[Block] = { val blocksAround = requestedBodyBlocks.getOrElse(lastUpdateBlockId.around, Seq.empty).takeWhile { block => block.id != lastUpdateBlockId.lastUpdate @@ -280,8 +280,8 @@ class LiveBlogController( blocksAround.filter(block => block.attributes.keyEvent.getOrElse(false) || block.attributes.summary.getOrElse(false), ) - } else if (topMentionResult.isDefined) { - blocksAround.filter(block => topMentionResult.get.blocks.contains(block.id)) + } else if (topMentions.isDefined) { + blocksAround.filter(block => topMentions.get.blocks.contains(block.id)) } else blocksAround } @@ -300,10 +300,10 @@ class LiveBlogController( filterKeyEvents: Boolean, remoteRender: Boolean, requestedBodyBlocks: scala.collection.Map[String, Seq[Block]], - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], )(implicit request: RequestHeader): Future[Result] = { - val newBlocks = getNewBlocks(page, lastUpdateBlockId, filterKeyEvents, topMentionResult) - val newCapiBlocks = getNewBlocks(requestedBodyBlocks, lastUpdateBlockId, filterKeyEvents, topMentionResult) + val newBlocks = getNewBlocks(page, lastUpdateBlockId, filterKeyEvents, topMentions) + val newCapiBlocks = getNewBlocks(requestedBodyBlocks, lastUpdateBlockId, filterKeyEvents, topMentions) val timelineHtml = views.html.liveblog.keyEvents( "", @@ -361,13 +361,13 @@ class LiveBlogController( path: String, range: BlockRange, filterKeyEvents: Boolean = false, - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], )( render: (PageWithStoryPackage, Blocks) => Future[Result], )(implicit request: RequestHeader): Future[Result] = { capiLookup .lookup(path, Some(range)) - .map(responseToModelOrResult(range, filterKeyEvents, topMentionResult)) + .map(responseToModelOrResult(range, filterKeyEvents, topMentions)) .recover(convertApiExceptions) .flatMap { case Left((model, blocks)) => render(model, blocks) @@ -378,7 +378,7 @@ class LiveBlogController( private[this] def responseToModelOrResult( range: BlockRange, filterKeyEvents: Boolean, - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], )(response: ItemResponse)(implicit request: RequestHeader): Either[(PageWithStoryPackage, Blocks), Result] = { val supportedContent: Option[ContentType] = response.content.filter(isSupported).map(Content(_)) val supportedContentResult: Either[ContentType, Result] = ModelOrResult(supportedContent, response) @@ -395,7 +395,7 @@ class LiveBlogController( response, range, filterKeyEvents, - topMentionResult, + topMentions, ).left .map(_ -> blocks) case unknown => @@ -416,11 +416,12 @@ class LiveBlogController( topMentions <- topMentionsService.getSelectedTopic(blogId, topMentionTopic) } yield topMentions - topMentionsResult match { - case Some(_) => log.info(s"top mention result was successfully retrieved for ${topics.get}") - case None => if (topics.isDefined) log.warn(s"top mention result couldn't be retrieved for ${topics.get}") + topMentions match { + case Some(_) => log.info(s"top mention result was successfully retrieved for ${selectedTopics.get}") + case None => + if (selectedTopics.isDefined) log.warn(s"top mention result couldn't be retrieved for ${selectedTopics.get}") } - topMentionsResult + topMentions } } diff --git a/article/app/model/LiveBlogHelpers.scala b/article/app/model/LiveBlogHelpers.scala index 07ada2c58138..5a4759e4e8c9 100644 --- a/article/app/model/LiveBlogHelpers.scala +++ b/article/app/model/LiveBlogHelpers.scala @@ -40,7 +40,7 @@ object LiveBlogHelpers extends GuLogging { liveBlog: Article, range: BlockRange, filterKeyEvents: Boolean, - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], ): Option[LiveBlogCurrentPage] = { val pageSize = if (liveBlog.content.tags.tags.map(_.id).contains("sport/sport")) 30 else 10 @@ -51,7 +51,7 @@ object LiveBlogHelpers extends GuLogging { _, range, filterKeyEvents, - topMentionResult, + topMentions, ), ) @@ -64,7 +64,7 @@ object LiveBlogHelpers extends GuLogging { response: ItemResponse, range: BlockRange, filterKeyEvents: Boolean, - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], ): Either[LiveBlogPage, Status] = { val pageSize = if (liveBlog.content.tags.tags.map(_.id).contains("sport/sport")) 30 else 10 @@ -76,7 +76,7 @@ object LiveBlogHelpers extends GuLogging { blocks, range, filterKeyEvents, - topMentionResult, + topMentions, ) } getOrElse None diff --git a/article/app/topmentions/TopicService.scala b/article/app/topmentions/TopicService.scala index 173fbcbd5c54..2c8120dc0b11 100644 --- a/article/app/topmentions/TopicService.scala +++ b/article/app/topmentions/TopicService.scala @@ -1,7 +1,7 @@ package topmentions import common.{Box, GuLogging} -import model.{TopMentionsDetails, TopMentionsResult, TopMentionsTopic, TopicWithCount} +import model.{TopMentionsDetails, TopMentions, TopMentionsTopic, TopicWithCount} import scala.concurrent.{ExecutionContext, Future} diff --git a/article/test/LiveBlogControllerTest.scala b/article/test/LiveBlogControllerTest.scala index 8b3c8403783f..4bdce7fb44c5 100644 --- a/article/test/LiveBlogControllerTest.scala +++ b/article/test/LiveBlogControllerTest.scala @@ -9,7 +9,7 @@ import play.api.test._ import play.api.test.Helpers._ import org.scalatest.{BeforeAndAfterAll, DoNotDiscover} import org.scalatestplus.mockito.MockitoSugar -import model.{LiveBlogPage, TopMentionsResult, TopMentionsTopic, TopMentionsTopicType, TopicWithCount, TopicsLiveBlog} +import model.{LiveBlogPage, TopMentions, TopMentionsTopic, TopMentionsTopicType, TopicWithCount, TopicsLiveBlog} import topmentions.{TopicS3Client, TopicService} import scala.concurrent.Future @@ -31,7 +31,7 @@ import scala.concurrent.Future trait Setup { var fakeTopMentionsService = mock[TopicService] var fakeDcr = new DCRFake() - val topMentionResult = TopMentionsResult( + val topMentions = TopMentions( name = "Fifa", `type` = TopMentionsTopicType.Org, blocks = Seq("56d08042e4b0d38537b1f70b"), @@ -55,7 +55,7 @@ import scala.concurrent.Future when( fakeTopMentionsService.getSelectedTopic(path, TopMentionsTopic(TopMentionsTopicType.Org, "Fifa")), ) thenReturn Some( - topMentionResult, + topMentions, ) when( @@ -293,8 +293,8 @@ import scala.concurrent.Future liveBlogController.getTopMentions(path, Some("orgFifa")) should be(None) } - "getTopMentionsForFilters" should "returns correct topMentionResult given a correct automatic filter query parameter" in new Setup { - liveBlogController.getTopMentions(path, Some("org:Fifa")) should be(Some(topMentionResult)) + "getTopMentionsForFilters" should "returns correct topMentions given a correct automatic filter query parameter" in new Setup { + liveBlogController.getTopMentions(path, Some("org:Fifa")) should be(Some(topMentions)) } "renderArticle" should "returns the first page of filtered blog by topics" in new Setup { diff --git a/article/test/model/LiveBlogCurrentPageTest.scala b/article/test/model/LiveBlogCurrentPageTest.scala index dbaf4d4370ff..a49944dbd6b3 100644 --- a/article/test/model/LiveBlogCurrentPageTest.scala +++ b/article/test/model/LiveBlogCurrentPageTest.scala @@ -63,8 +63,8 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { blocks = Blocks(1, Seq(), None, Map()), range, filterKeyEvents = false, - topMentionResult = Some( - TopMentionsResult( + topMentions = Some( + TopMentions( `type` = TopMentionsTopicType.Org, name = "someName", blocks = Seq(), @@ -90,7 +90,7 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { result should be( Some( LiveBlogCurrentPage( - currentPage = FirstPage(Seq(fakeBlock(1)), filterKeyEvents = false, topMentionResult = None), + currentPage = FirstPage(Seq(fakeBlock(1)), filterKeyEvents = false, topMentions = None), pagination = None, pinnedBlock = None, ), @@ -251,7 +251,7 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { None, ) - should(result, currentPage = FirstPage(List(), true, topMentionResult = None), pagination = None) + should(result, currentPage = FirstPage(List(), true, topMentions = None), pagination = None) } it should "allow 3 blocks on one page" in { @@ -269,7 +269,7 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { None, ) - should(result, FirstPage(blocks, filterKeyEvents = false, topMentionResult = None), None) + should(result, FirstPage(blocks, filterKeyEvents = false, topMentions = None), None) } it should "put 4 blocks on two pages (main page)" in { @@ -288,9 +288,9 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { val expected = blocks.take(2) val expectedOldestPage = - BlockPage(blocks = Nil, blockId = "1", pageNumber = 2, filterKeyEvents = false, topMentionResult = None) + BlockPage(blocks = Nil, blockId = "1", pageNumber = 2, filterKeyEvents = false, topMentions = None) val expectedOlderPage = - BlockPage(blocks = Nil, blockId = "2", pageNumber = 2, filterKeyEvents = false, topMentionResult = None) + BlockPage(blocks = Nil, blockId = "2", pageNumber = 2, filterKeyEvents = false, topMentions = None) val expectedPagination = Some( N1Pagination( newest = None, @@ -318,11 +318,11 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { None, ) - val expectedCurrentPage = FirstPage(blocks = blocks.take(3), filterKeyEvents = false, topMentionResult = None) + val expectedCurrentPage = FirstPage(blocks = blocks.take(3), filterKeyEvents = false, topMentions = None) val expectedOldestPage = - BlockPage(blocks = Nil, blockId = "1", pageNumber = 2, filterKeyEvents = false, topMentionResult = None) + BlockPage(blocks = Nil, blockId = "1", pageNumber = 2, filterKeyEvents = false, topMentions = None) val expectedOlderPage = - BlockPage(blocks = Nil, blockId = "2", pageNumber = 2, filterKeyEvents = false, topMentionResult = None) + BlockPage(blocks = Nil, blockId = "2", pageNumber = 2, filterKeyEvents = false, topMentions = None) val expectedPagination = Some( N1Pagination( newest = None, @@ -357,11 +357,11 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { None, ) - val expectedCurrentPage = FirstPage(blocks = keyBlocks.take(3), filterKeyEvents = true, topMentionResult = None) + val expectedCurrentPage = FirstPage(blocks = keyBlocks.take(3), filterKeyEvents = true, topMentions = None) val expectedOldestPage = - BlockPage(blocks = Nil, blockId = "1", pageNumber = 3, filterKeyEvents = true, topMentionResult = None) + BlockPage(blocks = Nil, blockId = "1", pageNumber = 3, filterKeyEvents = true, topMentions = None) val expectedOlderPage = - BlockPage(blocks = Nil, blockId = "5", pageNumber = 2, filterKeyEvents = true, topMentionResult = None) + BlockPage(blocks = Nil, blockId = "5", pageNumber = 2, filterKeyEvents = true, topMentions = None) val expectedPagination = Some( N1Pagination( newest = None, @@ -383,7 +383,7 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { pageSize = 2, blocks = testFakeBlocks.blocksType, filterKeyEvents = true, - topMentionResult = Some(topMentions), + topMentions = Some(topMentions), ) result.get should be( @@ -391,7 +391,7 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { currentPage = FirstPage( testFakeBlocks.blocksSequence.slice(3, 5), filterKeyEvents = true, - topMentionResult = Some(topMentions), + topMentions = Some(topMentions), ), pagination = None, pinnedBlock = None, @@ -407,7 +407,7 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { pageSize = 2, blocks = testFakeBlocks.blocksType, filterKeyEvents = false, - topMentionResult = Some(topMentions), + topMentions = Some(topMentions), ) val expectedPagination = Some( @@ -420,7 +420,7 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { blockId = "2", pageNumber = 2, filterKeyEvents = false, - topMentionResult = Some(topMentions), + topMentions = Some(topMentions), ), ), oldest = Some( @@ -429,7 +429,7 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { blockId = "1", pageNumber = 2, filterKeyEvents = false, - topMentionResult = Some(topMentions), + topMentions = Some(topMentions), ), ), numberOfPages = 2, @@ -441,7 +441,7 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { currentPage = FirstPage( testFakeBlocks.blocksSequence.slice(1, 3), filterKeyEvents = false, - topMentionResult = Some(topMentions), + topMentions = Some(topMentions), ), pagination = expectedPagination, ) @@ -457,9 +457,9 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { blockId = "2", pageNumber = 2, filterKeyEvents = false, - topMentionResult = None, + topMentions = None, ) - val expectedNewestPage = FirstPage(blocks.take(2), filterKeyEvents = false, topMentionResult = None) + val expectedNewestPage = FirstPage(blocks.take(2), filterKeyEvents = false, topMentions = None) val expectedPagination = Some( N1Pagination( newest = Some(expectedNewestPage), @@ -483,9 +483,9 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { blockId = "2", pageNumber = 2, filterKeyEvents = false, - topMentionResult = None, + topMentions = None, ) - val expectedNewestPage = FirstPage(blocks.take(2), filterKeyEvents = false, topMentionResult = None) + val expectedNewestPage = FirstPage(blocks.take(2), filterKeyEvents = false, topMentions = None) val expectedPagination = Some( N1Pagination( newest = Some(expectedNewestPage), @@ -509,9 +509,9 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { blockId = "2", pageNumber = 2, filterKeyEvents = false, - topMentionResult = None, + topMentions = None, ) - val expectedNewestPage = FirstPage(blocks.take(3), filterKeyEvents = false, topMentionResult = None) + val expectedNewestPage = FirstPage(blocks.take(3), filterKeyEvents = false, topMentions = None) val expectedPagination = Some( N1Pagination( newest = Some(expectedNewestPage), @@ -539,11 +539,11 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { None, ) - val expectedCurrentPage = FirstPage(blocks = blocks.take(2), filterKeyEvents = false, topMentionResult = None) + val expectedCurrentPage = FirstPage(blocks = blocks.take(2), filterKeyEvents = false, topMentions = None) val expectedMiddlePage = - BlockPage(blocks = Nil, blockId = "4", pageNumber = 2, filterKeyEvents = false, topMentionResult = None) + BlockPage(blocks = Nil, blockId = "4", pageNumber = 2, filterKeyEvents = false, topMentions = None) val expectedOldestPage = - BlockPage(blocks = Nil, blockId = "1", pageNumber = 3, filterKeyEvents = false, topMentionResult = None) + BlockPage(blocks = Nil, blockId = "1", pageNumber = 3, filterKeyEvents = false, topMentions = None) val expectedPagination = Some( N1Pagination( newest = None, @@ -567,16 +567,16 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { blockId = "4", pageNumber = 2, filterKeyEvents = false, - topMentionResult = None, + topMentions = None, ) - val expectedFirstPage = FirstPage(blocks = blocks.take(2), filterKeyEvents = false, topMentionResult = None) + val expectedFirstPage = FirstPage(blocks = blocks.take(2), filterKeyEvents = false, topMentions = None) val expectedOlderPage = BlockPage( blocks = blocks.takeRight(2), blockId = "2", pageNumber = 3, filterKeyEvents = false, - topMentionResult = None, + topMentions = None, ) val expectedPagination = Some( N1Pagination( @@ -601,16 +601,16 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { blockId = "2", pageNumber = 3, filterKeyEvents = false, - topMentionResult = None, + topMentions = None, ) - val expectedFirstPage = FirstPage(blocks = blocks.take(2), filterKeyEvents = false, topMentionResult = None) + val expectedFirstPage = FirstPage(blocks = blocks.take(2), filterKeyEvents = false, topMentions = None) val expectedMiddlePage = BlockPage( blocks = blocks.slice(2, 4), blockId = "4", pageNumber = 2, filterKeyEvents = false, - topMentionResult = None, + topMentions = None, ) val expectedPagination = Some( N1Pagination( @@ -636,18 +636,18 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { blockId = "2", pageNumber = 3, filterKeyEvents = true, - topMentionResult = None, + topMentions = None, ) } val expectedFirstPage = - FirstPage(blocks = keyAndSummaryBlocks.take(2), filterKeyEvents = true, topMentionResult = None) + FirstPage(blocks = keyAndSummaryBlocks.take(2), filterKeyEvents = true, topMentions = None) val expectedMiddlePage = BlockPage( blocks = keyAndSummaryBlocks.slice(2, 4), blockId = "4", pageNumber = 2, filterKeyEvents = true, - topMentionResult = None, + topMentions = None, ) val expectedPagination = Some( N1Pagination( @@ -676,14 +676,14 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { val expectedFirstPage = FirstPage( testFakeBlocks.blocksSequence.slice(2, 5), filterKeyEvents = false, - topMentionResult = Some(topMentions), + topMentions = Some(topMentions), ) val expectedCurrentPage = BlockPage( blocks = testFakeBlocks.blocksSequence.slice(5, 7), blockId = "3", pageNumber = 2, filterKeyEvents = false, - topMentionResult = Some(topMentions), + topMentions = Some(topMentions), ) val expectedPagination = Some( N1Pagination( @@ -700,7 +700,7 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { blocks = testFakeBlocks.blocksSequence, isRequestedBlock = "3", filterKeyEvents = false, - topMentionsResult = Some(topMentions), + topMentions = Some(topMentions), ) should(result, expectedCurrentPage, expectedPagination) @@ -715,7 +715,7 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { blocks = testFakeBlocks.blocksType, sinceBlockId = SinceBlockId("5"), filterKeyEvents = false, - topMentionResult = Some(topMentions), + topMentions = Some(topMentions), ) result.get.currentPage.blocks.length should be(1) @@ -731,7 +731,7 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { blocks = testFakeBlocks.blocksType, sinceBlockId = SinceBlockId(sinceBlockId), filterKeyEvents = false, - topMentionResult = Some(topMentions), + topMentions = Some(topMentions), ) result.get.currentPage.blocks.length should be(2) @@ -744,7 +744,7 @@ class LiveBlogCurrentPageTest extends AnyFlatSpec with Matchers { topicName: String, blocks: Seq[String], ) = { - TopMentionsResult( + TopMentions( `type` = tpoicType, name = topicName, blocks = blocks, diff --git a/article/test/topmentions/TopMentionsServiceTest.scala b/article/test/topmentions/TopMentionsServiceTest.scala index 23b35af4109a..6f7259e01349 100644 --- a/article/test/topmentions/TopMentionsServiceTest.scala +++ b/article/test/topmentions/TopMentionsServiceTest.scala @@ -19,8 +19,8 @@ class TopMentionsServiceTest with MockitoSugar { val fakeClient = mock[TopicS3Client] - val topMentionResult = - TopMentionsResult( + val topMentions = + TopMentions( name = "name1", `type` = TopMentionsTopicType.Org, blocks = Seq("blockId1"), @@ -45,7 +45,7 @@ class TopMentionsServiceTest ), ) val successResponse = - TopMentionsDetails(entity_types = Seq(TopMentionsTopicType.Org), results = Seq(topMentionResult), model = "model") + TopMentionsDetails(entity_types = Seq(TopMentionsTopicType.Org), results = Seq(topMentions), model = "model") val successMultiResponse = TopMentionsDetails(entity_types = Seq(TopMentionsTopicType.Org), results = topMentionResults, model = "model") @@ -97,7 +97,7 @@ class TopMentionsServiceTest val result = topMentionService.getSelectedTopic("key1", TopMentionsTopic(TopMentionsTopicType.Org, "name1")) - result.get should equal(topMentionResult) + result.get should equal(topMentions) } "getTopMentionsByTopic" should "return none given correct blog id, filter entity and with same filter value but different case" in { diff --git a/common/app/model/LiveBlogCurrentPage.scala b/common/app/model/LiveBlogCurrentPage.scala index 8c88b202054e..6b700c3bba3d 100644 --- a/common/app/model/LiveBlogCurrentPage.scala +++ b/common/app/model/LiveBlogCurrentPage.scala @@ -18,13 +18,13 @@ object LiveBlogCurrentPage { blocks: Blocks, range: BlockRange, filterKeyEvents: Boolean, - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], ): Option[LiveBlogCurrentPage] = { range match { - case CanonicalLiveBlog | TopicsLiveBlog => firstPage(pageSize, blocks, filterKeyEvents, topMentionResult) + case CanonicalLiveBlog | TopicsLiveBlog => firstPage(pageSize, blocks, filterKeyEvents, topMentions) case PageWithBlock(isRequestedBlock) => - findPageWithBlock(pageSize, blocks.body, isRequestedBlock, filterKeyEvents, topMentionResult) - case SinceBlockId(blockId) => updates(blocks, SinceBlockId(blockId), filterKeyEvents, topMentionResult) + findPageWithBlock(pageSize, blocks.body, isRequestedBlock, filterKeyEvents, topMentions) + case SinceBlockId(blockId) => updates(blocks, SinceBlockId(blockId), filterKeyEvents, topMentions) case ArticleBlocks => None case GenericFallback => None case _ => None @@ -36,15 +36,15 @@ object LiveBlogCurrentPage { blocks: Blocks, sinceBlockId: SinceBlockId, filterKeyEvents: Boolean, - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], ): Option[LiveBlogCurrentPage] = { val bodyBlocks = blocks.requestedBodyBlocks.get(sinceBlockId.around).toSeq.flatMap { bodyBlocks => val onlyBlocksAfterLastUpdated = bodyBlocks.takeWhile(_.id != sinceBlockId.lastUpdate) - applyFilters(onlyBlocksAfterLastUpdated, filterKeyEvents, topMentionResult) + applyFilters(onlyBlocksAfterLastUpdated, filterKeyEvents, topMentions) } Some( - LiveBlogCurrentPage(FirstPage(bodyBlocks, filterKeyEvents, topMentionResult), None, None), + LiveBlogCurrentPage(FirstPage(bodyBlocks, filterKeyEvents, topMentions), None, None), ) // just pretend to be the first page, it'll be ignored } @@ -53,10 +53,10 @@ object LiveBlogCurrentPage { pageSize: Int, blocks: Blocks, filterKeyEvents: Boolean, - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], ): Option[LiveBlogCurrentPage] = { val (maybeRequestedBodyBlocks, blockCount, oldestPageBlockId) = - extractFirstPageBlocks(blocks, filterKeyEvents, topMentionResult) + extractFirstPageBlocks(blocks, filterKeyEvents, topMentions) val remainder = blockCount % pageSize val numPages = blockCount / pageSize @@ -65,11 +65,11 @@ object LiveBlogCurrentPage { val (firstPageBlocks, startOfSecondPageBlocks) = requestedBodyBlocks.splitAt(remainder + pageSize) val olderPage = startOfSecondPageBlocks.headOption.map { block => - BlockPage(blocks = Nil, blockId = block.id, pageNumber = 2, filterKeyEvents, topMentionResult) + BlockPage(blocks = Nil, blockId = block.id, pageNumber = 2, filterKeyEvents, topMentions) } val oldestPage = oldestPageBlockId map { blockId => - BlockPage(blocks = Nil, blockId = blockId, pageNumber = numPages, filterKeyEvents, topMentionResult) + BlockPage(blocks = Nil, blockId = blockId, pageNumber = numPages, filterKeyEvents, topMentions) } val pinnedBlocks = blocks.requestedBodyBlocks.get(CanonicalLiveBlog.pinned) @@ -91,39 +91,39 @@ object LiveBlogCurrentPage { else None } - LiveBlogCurrentPage(FirstPage(blocksToDisplay, filterKeyEvents, topMentionResult), pagination, pinnedBlockRenamed) + LiveBlogCurrentPage(FirstPage(blocksToDisplay, filterKeyEvents, topMentions), pagination, pinnedBlockRenamed) } } private def extractFirstPageBlocks( blocks: Blocks, filterKeyEvents: Boolean, - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], ) = { if (filterKeyEvents) { getKeyEventsBlocks(blocks) - } else if (topMentionResult.isDefined) { - getTopMentionsBlocks(blocks, topMentionResult.get) + } else if (topMentions.isDefined) { + getTopMentionsBlocks(blocks, topMentions.get) } else { getStandardBlocks(blocks) } } - private def isTopMentionBlock(topMentionsResult: TopMentionsResult)(bodyBlock: BodyBlock): Boolean = { - topMentionsResult.blocks.contains(bodyBlock.id) + private def isTopMentionBlock(topMentions: TopMentions)(bodyBlock: BodyBlock): Boolean = { + topMentions.blocks.contains(bodyBlock.id) } - private def filterBlocksByTopMentions(blocks: Seq[BodyBlock], topMentionsResult: TopMentionsResult) = { - blocks.filter(isTopMentionBlock(topMentionsResult)).sortBy(_.publishedCreatedTimestamp).reverse + private def filterBlocksByTopMentions(blocks: Seq[BodyBlock], topMentions: TopMentions) = { + blocks.filter(isTopMentionBlock(topMentions)).sortBy(_.publishedCreatedTimestamp).reverse } private def getTopMentionsBlocks( blocks: Blocks, - topMentionsResult: TopMentionsResult, + topMentions: TopMentions, ): (Option[Seq[BodyBlock]], Int, Option[String]) = { val bodyBlocks = blocks.body - val filteredBodyBlocks = filterBlocksByTopMentions(bodyBlocks, topMentionsResult) + val filteredBodyBlocks = filterBlocksByTopMentions(bodyBlocks, topMentions) (Some(filteredBodyBlocks), filteredBodyBlocks.length, filteredBodyBlocks.lastOption.map(_.id)) } @@ -164,17 +164,17 @@ object LiveBlogCurrentPage { blocks: Seq[BodyBlock], isRequestedBlock: String, filterKeyEvents: Boolean, - topMentionsResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], ): Option[LiveBlogCurrentPage] = { val pinnedBlock = blocks.find(_.attributes.pinned).map(renamePinnedBlock) - val filteredBlocks = applyFilters(blocks, filterKeyEvents, topMentionsResult) + val filteredBlocks = applyFilters(blocks, filterKeyEvents, topMentions) val (mainPageBlocks, restPagesBlocks) = getPages(pageSize, filteredBlocks) - val newestPage = FirstPage(mainPageBlocks, filterKeyEvents, topMentionsResult) + val newestPage = FirstPage(mainPageBlocks, filterKeyEvents, topMentions) val pages = newestPage :: restPagesBlocks.zipWithIndex .map { case (page, index) => // page number is index + 2 to account for first page and 0 based index - BlockPage(blocks = page, blockId = page.head.id, pageNumber = index + 2, filterKeyEvents, topMentionsResult) + BlockPage(blocks = page, blockId = page.head.id, pageNumber = index + 2, filterKeyEvents, topMentions) } val oldestPage = pages.lastOption.getOrElse(newestPage) @@ -217,12 +217,12 @@ object LiveBlogCurrentPage { private def applyFilters( blocks: Seq[BodyBlock], filterKeyEvents: Boolean, - topMentionsResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], ) = { if (filterKeyEvents) { blocks.filter(block => block.eventType == KeyEvent || block.eventType == SummaryEvent) - } else if (topMentionsResult.isDefined) { - filterBlocksByTopMentions(blocks, topMentionsResult.get) + } else if (topMentions.isDefined) { + filterBlocksByTopMentions(blocks, topMentions.get) } else { blocks } @@ -247,9 +247,9 @@ sealed trait PageReference { def isArchivePage: Boolean - def buildQueryParam(topMentionResult: Option[TopMentionsResult]) = { - topMentionResult match { - case Some(value) => s"&topics=${topMentionResult.get.`type`}:${value.name}" + def buildQueryParam(topMentions: Option[TopMentions]) = { + topMentions match { + case Some(value) => s"&topics=${topMentions.get.`type`}:${value.name}" case None => "" } } @@ -263,9 +263,9 @@ case class N1Pagination( numberOfPages: Int, ) -case class FirstPage(blocks: Seq[BodyBlock], filterKeyEvents: Boolean, topMentionResult: Option[TopMentionsResult]) +case class FirstPage(blocks: Seq[BodyBlock], filterKeyEvents: Boolean, topMentions: Option[TopMentions]) extends PageReference { - val suffix = s"?filterKeyEvents=$filterKeyEvents${buildQueryParam(topMentionResult)}" + val suffix = s"?filterKeyEvents=$filterKeyEvents${buildQueryParam(topMentions)}" val pageNumber = 1 val isArchivePage = false } @@ -275,9 +275,9 @@ case class BlockPage( blockId: String, pageNumber: Int, filterKeyEvents: Boolean, - topMentionResult: Option[TopMentionsResult], + topMentions: Option[TopMentions], ) extends PageReference { - val suffix = s"?page=with:block-$blockId&filterKeyEvents=$filterKeyEvents${buildQueryParam(topMentionResult)}" + val suffix = s"?page=with:block-$blockId&filterKeyEvents=$filterKeyEvents${buildQueryParam(topMentions)}" val isArchivePage = true } diff --git a/common/app/model/TopMentionsModel.scala b/common/app/model/TopMentionsModel.scala index 1581498f7143..d1d27a2c3fc3 100644 --- a/common/app/model/TopMentionsModel.scala +++ b/common/app/model/TopMentionsModel.scala @@ -4,19 +4,19 @@ import common.GuLogging import model.TopMentionsTopicType.TopMentionsTopicType import play.api.libs.json.{Format, Json} -case class TopMentionsResult( +case class TopMentions( name: String, `type`: TopMentionsTopicType, blocks: Seq[String], count: Int, percentage_blocks: Float, ) -case class TopMentionsDetails(entity_types: Seq[TopMentionsTopicType], results: Seq[TopMentionsResult], model: String) +case class TopMentionsDetails(entity_types: Seq[TopMentionsTopicType], results: Seq[TopMentions], model: String) case class TopMentionJsonParseException(message: String) extends Exception(message) object TopMentionsResponse { - implicit val TopMentionsResultJf: Format[TopMentionsResult] = Json.format[TopMentionsResult] + implicit val TopMentionsJf: Format[TopMentions] = Json.format[TopMentions] implicit val TopMentionsDetailsJf: Format[TopMentionsDetails] = Json.format[TopMentionsDetails] }