diff --git a/article-api/src/test/scala/no/ndla/articleapi/TestData.scala b/article-api/src/test/scala/no/ndla/articleapi/TestData.scala index 4f401dc60..5570aeba3 100644 --- a/article-api/src/test/scala/no/ndla/articleapi/TestData.scala +++ b/article-api/src/test/scala/no/ndla/articleapi/TestData.scala @@ -153,7 +153,7 @@ trait TestData { relatedContent = Seq.empty, revisionDate = Some(NDLADate.now().withNano(0)), slug = None, - disclaimer = Seq.empty + disclaimer = None ) val sampleDomainArticle: Article = Article( @@ -179,7 +179,7 @@ trait TestData { relatedContent = Seq.empty, revisionDate = None, slug = None, - disclaimer = Seq.empty + disclaimer = None ) val sampleDomainArticle2: Article = Article( @@ -205,7 +205,7 @@ trait TestData { relatedContent = Seq.empty, revisionDate = None, slug = None, - disclaimer = Seq.empty + disclaimer = None ) val sampleArticleWithByNcSa: Article = sampleArticleWithPublicDomain.copy(copyright = byNcSaCopyright) @@ -243,7 +243,7 @@ trait TestData { relatedContent = Seq.empty, revisionDate = None, slug = None, - disclaimer = Seq.empty + disclaimer = None ) val apiArticleWithHtmlFaultV2: api.ArticleV2DTO = api.ArticleV2DTO( @@ -313,7 +313,7 @@ trait TestData { relatedContent = Seq.empty, revisionDate = None, slug = None, - disclaimer = Seq.empty + disclaimer = None ) } diff --git a/common/src/main/scala/no/ndla/common/model/domain/article/Article.scala b/common/src/main/scala/no/ndla/common/model/domain/article/Article.scala index 3d060e711..f41cf6220 100644 --- a/common/src/main/scala/no/ndla/common/model/domain/article/Article.scala +++ b/common/src/main/scala/no/ndla/common/model/domain/article/Article.scala @@ -37,7 +37,7 @@ case class Article( relatedContent: Seq[RelatedContent], revisionDate: Option[NDLADate], slug: Option[String], - disclaimer: Seq[Disclaimer] + disclaimer: Option[Seq[Disclaimer]] ) extends Content object Article { diff --git a/common/src/main/scala/no/ndla/common/model/domain/draft/Draft.scala b/common/src/main/scala/no/ndla/common/model/domain/draft/Draft.scala index 31100c127..e4f3cce33 100644 --- a/common/src/main/scala/no/ndla/common/model/domain/draft/Draft.scala +++ b/common/src/main/scala/no/ndla/common/model/domain/draft/Draft.scala @@ -46,7 +46,7 @@ case class Draft( priority: Priority, started: Boolean, qualityEvaluation: Option[QualityEvaluation], - disclaimer: Seq[Disclaimer] + disclaimer: Option[Seq[Disclaimer]] ) extends Content { def supportedLanguages: Seq[String] = diff --git a/draft-api/src/main/scala/no/ndla/draftapi/service/ConverterService.scala b/draft-api/src/main/scala/no/ndla/draftapi/service/ConverterService.scala index a4755572b..3150ae078 100644 --- a/draft-api/src/main/scala/no/ndla/draftapi/service/ConverterService.scala +++ b/draft-api/src/main/scala/no/ndla/draftapi/service/ConverterService.scala @@ -55,7 +55,7 @@ trait ConverterService { val domainContent = newArticle.content .map(content => common.ArticleContent(removeUnknownEmbedTagAttribute(content), newArticle.language)) .toSeq - val domainDisclaimer = Seq(common.Disclaimer(newArticle.disclaimer.getOrElse(""), newArticle.language)) + val domainDisclaimer = newArticle.disclaimer.map { d => Seq(common.Disclaimer(d, newArticle.language)) } val status = externalIds match { case Nil => common.Status(PLANNED, Set.empty) @@ -391,7 +391,8 @@ trait ConverterService { val metaImage = findByLanguageOrBestEffort(article.metaImage, language).map(toApiArticleMetaImage) val revisionMetas = article.revisionMeta.map(toApiRevisionMeta) val responsible = article.responsible.map(toApiResponsible) - val disclaimer = findByLanguageOrBestEffort((article.disclaimer), language).map(toApiArticleDisclaimer) + val disclaimer = + article.disclaimer.flatMap { d => findByLanguageOrBestEffort(d, language).map(toApiArticleDisclaimer) } Success( api.ArticleDTO( @@ -460,7 +461,7 @@ trait ConverterService { def toApiArticleTitle(title: common.Title): api.ArticleTitleDTO = api.ArticleTitleDTO(Jsoup.parseBodyFragment(title.title).body().text(), title.title, title.language) - def toApiArticleDisclaimer(disclaimer: common.Disclaimer): api.DisclaimerDTO = + private def toApiArticleDisclaimer(disclaimer: common.Disclaimer): api.DisclaimerDTO = api.DisclaimerDTO( disclaimer.disclaimer, disclaimer.language @@ -795,14 +796,18 @@ trait ConverterService { .traverse(lang => articleWithNewContent.title.toSeq.map(t => toDomainTitle(api.ArticleTitleDTO(t, t, lang)))) .flatten ) - val updatedDisclaimer = mergeLanguageFields( - toMergeInto.disclaimer, - maybeLang - .traverse(lang => - articleWithNewContent.disclaimer.toSeq.map(d => toDomainDisclaimer(api.DisclaimerDTO(d, lang))) - ) - .flatten - ) + + val updatedDisclaimer = toMergeInto.disclaimer.map { disclaimer => + mergeLanguageFields( + disclaimer, + maybeLang + .traverse(lang => + articleWithNewContent.disclaimer.toSeq.map(d => toDomainDisclaimer(api.DisclaimerDTO(d, lang))) + ) + .flatten + ) + } + val updatedContents = mergeLanguageFields( toMergeInto.content, maybeLang @@ -957,7 +962,7 @@ trait ConverterService { priority = priority, started = false, qualityEvaluation = qualityEvaluationToDomain(article.qualityEvaluation), - disclaimer = article.disclaimer.map(d => common.Disclaimer(d, lang)).toSeq + disclaimer = article.disclaimer.map { d => Seq(common.Disclaimer(d, lang)) } ) } diff --git a/draft-api/src/test/scala/no/ndla/draftapi/TestData.scala b/draft-api/src/test/scala/no/ndla/draftapi/TestData.scala index ef879f8ab..27054f7a1 100644 --- a/draft-api/src/test/scala/no/ndla/draftapi/TestData.scala +++ b/draft-api/src/test/scala/no/ndla/draftapi/TestData.scala @@ -322,7 +322,7 @@ object TestData { Priority.Unspecified, false, None, - Seq.empty + None ) val sampleArticleWithPublicDomain: Draft = Draft( @@ -357,7 +357,7 @@ object TestData { Priority.Unspecified, false, None, - Seq.empty + None ) val sampleDomainArticle: Draft = Draft( @@ -394,7 +394,7 @@ object TestData { Priority.Unspecified, false, None, - Seq.empty + None ) val newArticle: NewArticleDTO = api.NewArticleDTO( @@ -485,7 +485,7 @@ object TestData { priority = Priority.Unspecified, started = false, qualityEvaluation = None, - disclaimer = Seq.empty + disclaimer = None ) val apiArticleWithHtmlFaultV2: api.ArticleDTO = api.ArticleDTO( diff --git a/draft-api/src/test/scala/no/ndla/draftapi/service/ConverterServiceTest.scala b/draft-api/src/test/scala/no/ndla/draftapi/service/ConverterServiceTest.scala index 9150be30f..3b4c02ecf 100644 --- a/draft-api/src/test/scala/no/ndla/draftapi/service/ConverterServiceTest.scala +++ b/draft-api/src/test/scala/no/ndla/draftapi/service/ConverterServiceTest.scala @@ -333,7 +333,7 @@ class ConverterServiceTest extends UnitSuite with TestEnvironment { priority = Priority.Unspecified, started = false, qualityEvaluation = None, - disclaimer = Seq(Disclaimer("Disclaimer test", "nb")) + disclaimer = Some(Seq(Disclaimer("Disclaimer test", "nb"))) ) val updatedNothing = TestData.blankUpdatedArticle.copy( @@ -381,7 +381,7 @@ class ConverterServiceTest extends UnitSuite with TestEnvironment { priority = Priority.Unspecified, started = false, qualityEvaluation = None, - disclaimer = Seq(Disclaimer("Disclaimer test", "nb")) + disclaimer = Some(Seq(Disclaimer("Disclaimer test", "nb"))) ) val expectedArticle = Draft( @@ -416,7 +416,7 @@ class ConverterServiceTest extends UnitSuite with TestEnvironment { priority = Priority.Unspecified, started = false, qualityEvaluation = None, - disclaimer = Seq(Disclaimer("NyDisclaimer test", "nb")) + disclaimer = Some(Seq(Disclaimer("NyDisclaimer test", "nb"))) ) val updatedEverything = TestData.blankUpdatedArticle.copy( @@ -482,7 +482,7 @@ class ConverterServiceTest extends UnitSuite with TestEnvironment { priority = Priority.Unspecified, started = false, qualityEvaluation = None, - disclaimer = Seq.empty + disclaimer = None ) val expectedArticle = Draft( @@ -525,7 +525,7 @@ class ConverterServiceTest extends UnitSuite with TestEnvironment { priority = Priority.Unspecified, started = false, qualityEvaluation = None, - disclaimer = Seq.empty + disclaimer = None ) val updatedEverything = TestData.blankUpdatedArticle.copy( @@ -1127,7 +1127,7 @@ class ConverterServiceTest extends UnitSuite with TestEnvironment { priority = Priority.Unspecified, started = false, qualityEvaluation = None, - disclaimer = Seq(Disclaimer("articleDisclaimer", "nb")) + disclaimer = Some(Seq(Disclaimer("articleDisclaimer", "nb"))) ) val article = common.model.domain.article.Article( id = Some(articleId), @@ -1153,7 +1153,7 @@ class ConverterServiceTest extends UnitSuite with TestEnvironment { relatedContent = Seq.empty, revisionDate = None, slug = Some("kjempe-slug"), - disclaimer = Seq(Disclaimer("articleDisclaimer", "nb")) + disclaimer = Some(Seq(Disclaimer("articleDisclaimer", "nb"))) ) val result = service.toArticleApiArticle(draft) diff --git a/draft-api/src/test/scala/no/ndla/draftapi/service/StateTransitionRulesTest.scala b/draft-api/src/test/scala/no/ndla/draftapi/service/StateTransitionRulesTest.scala index a1e17f136..bbad36f92 100644 --- a/draft-api/src/test/scala/no/ndla/draftapi/service/StateTransitionRulesTest.scala +++ b/draft-api/src/test/scala/no/ndla/draftapi/service/StateTransitionRulesTest.scala @@ -356,7 +356,7 @@ class StateTransitionRulesTest extends UnitSuite with TestEnvironment { priority = Priority.Unspecified, started = false, qualityEvaluation = None, - disclaimer = Seq.empty + disclaimer = None ) val article = common.article.Article( id = Some(articleId), @@ -381,7 +381,7 @@ class StateTransitionRulesTest extends UnitSuite with TestEnvironment { relatedContent = Seq.empty, revisionDate = None, slug = None, - disclaimer = Seq.empty + disclaimer = None ) val status = common.Status(END_CONTROL, Set.empty) @@ -479,7 +479,7 @@ class StateTransitionRulesTest extends UnitSuite with TestEnvironment { priority = Priority.Unspecified, started = false, qualityEvaluation = None, - disclaimer = Seq.empty + disclaimer = None ) val status = common.Status(PLANNED, Set.empty) val transitionsToTest = StateTransitionRules.StateTransitions.filter(_.to == PUBLISHED) @@ -536,7 +536,7 @@ class StateTransitionRulesTest extends UnitSuite with TestEnvironment { priority = Priority.Unspecified, started = false, qualityEvaluation = None, - disclaimer = Seq.empty + disclaimer = None ) val status = common.Status(PLANNED, Set.empty) val transitionsToTest = StateTransitionRules.StateTransitions.filter(_.to == ARCHIVED) @@ -597,7 +597,7 @@ class StateTransitionRulesTest extends UnitSuite with TestEnvironment { priority = Priority.Unspecified, started = false, qualityEvaluation = None, - disclaimer = Seq.empty + disclaimer = None ) val status = common.Status(PLANNED, Set.empty) val transitionsToTest = StateTransitionRules.StateTransitions.filter(_.to == UNPUBLISHED) @@ -659,7 +659,7 @@ class StateTransitionRulesTest extends UnitSuite with TestEnvironment { priority = Priority.Unspecified, started = false, qualityEvaluation = None, - disclaimer = Seq.empty + disclaimer = None ) val status = common.Status(PUBLISHED, Set.empty) val transitionToTest: StateTransition = PUBLISHED -> IN_PROGRESS