diff --git a/audio-api/src/main/scala/no/ndla/audioapi/service/search/AudioSearchService.scala b/audio-api/src/main/scala/no/ndla/audioapi/service/search/AudioSearchService.scala index 0ef6631d9e..7d0703e05a 100644 --- a/audio-api/src/main/scala/no/ndla/audioapi/service/search/AudioSearchService.scala +++ b/audio-api/src/main/scala/no/ndla/audioapi/service/search/AudioSearchService.scala @@ -19,6 +19,7 @@ import no.ndla.audioapi.model.{api, domain} import no.ndla.common.CirceUtil import no.ndla.common.implicits.* import no.ndla.language.Language.AllLanguages +import no.ndla.mapping.License import no.ndla.search.Elastic4sClient import scala.concurrent.ExecutionContext.Implicits.global @@ -82,7 +83,7 @@ trait AudioSearchService { ): Try[domain.SearchResult[api.AudioSummaryDTO]] = { val licenseFilter = settings.license match { - case None => Some(boolQuery().not(termQuery("license", "copyrighted"))) + case None => Some(boolQuery().not(termQuery("license", License.Copyrighted.toString))) case Some(lic) => Some(termQuery("license", lic)) } diff --git a/audio-api/src/test/scala/no/ndla/audioapi/controller/HealthControllerTest.scala b/audio-api/src/test/scala/no/ndla/audioapi/controller/HealthControllerTest.scala index 5c5b40d3d1..f2273e629b 100644 --- a/audio-api/src/test/scala/no/ndla/audioapi/controller/HealthControllerTest.scala +++ b/audio-api/src/test/scala/no/ndla/audioapi/controller/HealthControllerTest.scala @@ -14,6 +14,7 @@ import no.ndla.audioapi.{TestEnvironment, UnitSuite} import no.ndla.common.model.NDLADate import no.ndla.common.model.domain.article.Copyright import no.ndla.common.model.domain.{Author, Tag, Title} +import no.ndla.mapping.License import no.ndla.tapirtesting.TapirControllerTest import org.mockito.Mockito.when import sttp.client3.quick.* @@ -31,7 +32,16 @@ class HealthControllerTest extends UnitSuite with TestEnvironment with TapirCont val created: NDLADate = NDLADate.of(2017, 3, 1, 12, 15, 32) val copyrighted: Copyright = - Copyright("copyrighted", Some("New York"), Seq(Author("Forfatter", "Clark Kent")), Seq(), Seq(), None, None, false) + Copyright( + License.Copyrighted.toString, + Some("New York"), + Seq(Author("Forfatter", "Clark Kent")), + Seq(), + Seq(), + None, + None, + false + ) val audioMeta: AudioMetaInformation = domain.AudioMetaInformation( Some(1), diff --git a/audio-api/src/test/scala/no/ndla/audioapi/service/ConverterServiceTest.scala b/audio-api/src/test/scala/no/ndla/audioapi/service/ConverterServiceTest.scala index d792468ece..f97fa6d6d1 100644 --- a/audio-api/src/test/scala/no/ndla/audioapi/service/ConverterServiceTest.scala +++ b/audio-api/src/test/scala/no/ndla/audioapi/service/ConverterServiceTest.scala @@ -8,12 +8,13 @@ package no.ndla.audioapi.service -import no.ndla.audioapi.model.domain._ +import no.ndla.audioapi.model.domain.* import no.ndla.audioapi.model.{api, domain} import no.ndla.audioapi.{TestEnvironment, UnitSuite} import no.ndla.common.model.domain.article.Copyright import no.ndla.common.model.domain.{Author, Tag, Title} -import no.ndla.common.model.{NDLADate, domain => common, api => commonApi} +import no.ndla.common.model.{NDLADate, api as commonApi, domain as common} +import no.ndla.mapping.License import no.ndla.mapping.License.CC_BY_SA import scala.util.Success @@ -25,7 +26,16 @@ class ConverterServiceTest extends UnitSuite with TestEnvironment { val created: NDLADate = NDLADate.of(2017, 3, 1, 12, 15, 32) val copyrighted: Copyright = - Copyright("copyrighted", Some("New York"), Seq(Author("Forfatter", "Clark Kent")), Seq(), Seq(), None, None, false) + Copyright( + License.Copyrighted.toString, + Some("New York"), + Seq(Author("Forfatter", "Clark Kent")), + Seq(), + Seq(), + None, + None, + false + ) val audioMeta: AudioMetaInformation = domain.AudioMetaInformation( Some(1), diff --git a/audio-api/src/test/scala/no/ndla/audioapi/service/search/AudioSearchServiceTest.scala b/audio-api/src/test/scala/no/ndla/audioapi/service/search/AudioSearchServiceTest.scala index 275cfa3dc1..9d8bbd1c46 100644 --- a/audio-api/src/test/scala/no/ndla/audioapi/service/search/AudioSearchServiceTest.scala +++ b/audio-api/src/test/scala/no/ndla/audioapi/service/search/AudioSearchServiceTest.scala @@ -15,6 +15,7 @@ import no.ndla.audioapi.{TestData, TestEnvironment, UnitSuite} import no.ndla.common.model.NDLADate import no.ndla.common.model.domain.article.Copyright import no.ndla.common.model.domain.{Author, Tag, Title} +import no.ndla.mapping.License import no.ndla.scalatestsuite.IntegrationSuite import org.mockito.ArgumentMatchers.any import org.mockito.Mockito.when @@ -53,7 +54,16 @@ class AudioSearchServiceTest ) val copyrighted: Copyright = - Copyright("copyrighted", Some("New York"), List(Author("Forfatter", "Clark Kent")), Seq(), Seq(), None, None, false) + Copyright( + License.Copyrighted.toString, + Some("New York"), + List(Author("Forfatter", "Clark Kent")), + Seq(), + Seq(), + None, + None, + false + ) val updated1: NDLADate = NDLADate.of(2017, 4, 1, 12, 15, 32) val updated2: NDLADate = NDLADate.of(2017, 5, 1, 12, 15, 32) @@ -339,7 +349,7 @@ class AudioSearchServiceTest searchSettings.copy( query = Some("batmen"), language = Some("nb"), - license = Some("copyrighted") + license = Some(License.Copyrighted.toString) ) ) results.totalCount should be(1) diff --git a/concept-api/src/test/scala/no/ndla/conceptapi/service/search/DraftConceptSearchServiceTest.scala b/concept-api/src/test/scala/no/ndla/conceptapi/service/search/DraftConceptSearchServiceTest.scala index 13d8e6c73d..ab7b009094 100644 --- a/concept-api/src/test/scala/no/ndla/conceptapi/service/search/DraftConceptSearchServiceTest.scala +++ b/concept-api/src/test/scala/no/ndla/conceptapi/service/search/DraftConceptSearchServiceTest.scala @@ -31,6 +31,7 @@ import no.ndla.common.model.domain.concept.{ WordClass } import no.ndla.conceptapi.integration.model.TaxonomyData +import no.ndla.mapping.License import org.mockito.Mockito.when import java.util.UUID @@ -73,7 +74,7 @@ class DraftConceptSearchServiceTest extends IntegrationSuite(EnableElasticsearch ) val copyrighted: DraftCopyright = DraftCopyright( - Some("copyrighted"), + Some(License.Copyrighted.toString), Some("New York"), List(Author("Forfatter", "Clark Kent")), List(), diff --git a/concept-api/src/test/scala/no/ndla/conceptapi/service/search/PublishedConceptSearchServiceTest.scala b/concept-api/src/test/scala/no/ndla/conceptapi/service/search/PublishedConceptSearchServiceTest.scala index 0f4bc180a7..d1fec67430 100644 --- a/concept-api/src/test/scala/no/ndla/conceptapi/service/search/PublishedConceptSearchServiceTest.scala +++ b/concept-api/src/test/scala/no/ndla/conceptapi/service/search/PublishedConceptSearchServiceTest.scala @@ -30,6 +30,7 @@ import no.ndla.common.model.domain.concept.{ WordClass } import no.ndla.conceptapi.integration.model.TaxonomyData +import no.ndla.mapping.License import no.ndla.search.model.domain.{Bucket, TermAggregation} import org.mockito.Mockito.when @@ -69,7 +70,7 @@ class PublishedConceptSearchServiceTest ) val copyrighted: DraftCopyright = DraftCopyright( - Some("copyrighted"), + Some(License.Copyrighted.toString), Some("New York"), List(Author("Forfatter", "Clark Kent")), List(), diff --git a/draft-api/src/main/scala/no/ndla/draftapi/service/search/ArticleSearchService.scala b/draft-api/src/main/scala/no/ndla/draftapi/service/search/ArticleSearchService.scala index 7e5fb7936a..766950d04d 100644 --- a/draft-api/src/main/scala/no/ndla/draftapi/service/search/ArticleSearchService.scala +++ b/draft-api/src/main/scala/no/ndla/draftapi/service/search/ArticleSearchService.scala @@ -7,14 +7,15 @@ package no.ndla.draftapi.service.search -import com.sksamuel.elastic4s.ElasticDsl._ +import com.sksamuel.elastic4s.ElasticDsl.* import com.sksamuel.elastic4s.requests.searches.queries.compound.BoolQuery import com.typesafe.scalalogging.StrictLogging import no.ndla.draftapi.Props import no.ndla.draftapi.model.api import no.ndla.draftapi.model.api.ErrorHandling -import no.ndla.draftapi.model.domain._ +import no.ndla.draftapi.model.domain.* import no.ndla.language.Language +import no.ndla.mapping.License import no.ndla.search.Elastic4sClient import java.util.concurrent.Executors @@ -34,7 +35,7 @@ trait ArticleSearchService { class ArticleSearchService extends StrictLogging with SearchService[api.ArticleSummaryDTO] { import props.{ElasticSearchIndexMaxResultWindow, ElasticSearchScrollKeepAlive} - private val noCopyright = boolQuery().not(termQuery("license", "copyrighted")) + private val noCopyright = boolQuery().not(termQuery("license", License.Copyrighted.toString)) override val searchIndex: String = props.DraftSearchIndex 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 27054f7a17..399b69f8df 100644 --- a/draft-api/src/test/scala/no/ndla/draftapi/TestData.scala +++ b/draft-api/src/test/scala/no/ndla/draftapi/TestData.scala @@ -17,6 +17,7 @@ import no.ndla.common.model.{NDLADate, api as commonApi, domain as common} import no.ndla.draftapi.integration.{LearningPath, Title} import no.ndla.draftapi.model.api.* import no.ndla.draftapi.model.{api, domain} +import no.ndla.mapping.License import no.ndla.mapping.License.{CC_BY, CC_BY_NC_SA} import no.ndla.network.tapir.auth.Permission.{DRAFT_API_ADMIN, DRAFT_API_PUBLISH, DRAFT_API_WRITE} import no.ndla.network.tapir.auth.TokenUser @@ -54,7 +55,7 @@ object TestData { false ) private val copyrighted = common.draft.DraftCopyright( - Some("copyrighted"), + Some(License.Copyrighted.toString), Some("New York"), List(common.Author("Forfatter", "Clark Kent")), List(), diff --git a/draft-api/src/test/scala/no/ndla/draftapi/service/search/ArticleSearchServiceTest.scala b/draft-api/src/test/scala/no/ndla/draftapi/service/search/ArticleSearchServiceTest.scala index c0048ea0fa..fbe594fd2f 100644 --- a/draft-api/src/test/scala/no/ndla/draftapi/service/search/ArticleSearchServiceTest.scala +++ b/draft-api/src/test/scala/no/ndla/draftapi/service/search/ArticleSearchServiceTest.scala @@ -8,12 +8,13 @@ package no.ndla.draftapi.service.search import no.ndla.common.model.NDLADate -import no.ndla.common.model.domain._ -import no.ndla.common.model.domain.draft._ +import no.ndla.common.model.domain.* +import no.ndla.common.model.domain.draft.* import no.ndla.draftapi.TestData.searchSettings -import no.ndla.draftapi._ -import no.ndla.draftapi.model.domain._ +import no.ndla.draftapi.* +import no.ndla.draftapi.model.domain.* import no.ndla.language.Language +import no.ndla.mapping.License import no.ndla.scalatestsuite.IntegrationSuite import scala.util.Success @@ -53,7 +54,7 @@ class ArticleSearchServiceTest extends IntegrationSuite(EnableElasticsearchConta ) val copyrighted: DraftCopyright = DraftCopyright( - Some("copyrighted"), + Some(License.Copyrighted.toString), Some("New York"), List(Author("Forfatter", "Clark Kent")), List(), @@ -494,7 +495,7 @@ class ArticleSearchServiceTest extends IntegrationSuite(EnableElasticsearchConta val Success(results) = articleSearchService.matchingQuery( searchSettings.copy( query = Some("supermann"), - license = Some("copyrighted"), + license = Some(License.Copyrighted.toString), sort = Sort.ByTitleAsc ) ) @@ -592,7 +593,7 @@ class ArticleSearchServiceTest extends IntegrationSuite(EnableElasticsearchConta val Success(search) = articleSearchService.matchingQuery( searchSettings.copy( searchLanguage = Language.AllLanguages, - license = Some("copyrighted"), + license = Some(License.Copyrighted.toString), sort = Sort.ByTitleAsc, pageSize = 100 ) diff --git a/image-api/src/main/scala/no/ndla/imageapi/service/search/ImageSearchService.scala b/image-api/src/main/scala/no/ndla/imageapi/service/search/ImageSearchService.scala index 0a3fcf2df3..c7fc972859 100644 --- a/image-api/src/main/scala/no/ndla/imageapi/service/search/ImageSearchService.scala +++ b/image-api/src/main/scala/no/ndla/imageapi/service/search/ImageSearchService.scala @@ -38,7 +38,7 @@ trait ImageSearchService { val imageSearchService: ImageSearchService class ImageSearchService extends StrictLogging with SearchService[(SearchableImage, MatchedLanguage)] { import props.{ElasticSearchIndexMaxResultWindow, ElasticSearchScrollKeepAlive} - private val noCopyright = boolQuery().not(termQuery("license", "copyrighted")) + private val noCopyright = boolQuery().not(termQuery("license", "COPYRIGHTED")) override val searchIndex: String = props.SearchIndex override val indexService: ImageIndexService = imageIndexService diff --git a/image-api/src/test/scala/no/ndla/imageapi/controller/HealthControllerTest.scala b/image-api/src/test/scala/no/ndla/imageapi/controller/HealthControllerTest.scala index 83b26bccca..8aaa525585 100644 --- a/image-api/src/test/scala/no/ndla/imageapi/controller/HealthControllerTest.scala +++ b/image-api/src/test/scala/no/ndla/imageapi/controller/HealthControllerTest.scala @@ -22,6 +22,7 @@ import no.ndla.imageapi.model.domain.{ } import no.ndla.tapirtesting.TapirControllerTest import no.ndla.imageapi.{TestEnvironment, UnitSuite} +import no.ndla.mapping.License import org.mockito.Mockito.when import sttp.client3.quick.* @@ -35,7 +36,7 @@ class HealthControllerTest extends UnitSuite with TestEnvironment with TapirCont val copyrighted: Copyright = Copyright( - "copyrighted", + License.Copyrighted.toString, Some("New York"), Seq(Author("Forfatter", "Clark Kent")), Seq(), diff --git a/search-api/src/main/scala/no/ndla/searchapi/service/search/MultiDraftSearchService.scala b/search-api/src/main/scala/no/ndla/searchapi/service/search/MultiDraftSearchService.scala index d7326df1c9..1f4b4e2031 100644 --- a/search-api/src/main/scala/no/ndla/searchapi/service/search/MultiDraftSearchService.scala +++ b/search-api/src/main/scala/no/ndla/searchapi/service/search/MultiDraftSearchService.scala @@ -20,6 +20,7 @@ import no.ndla.common.model.domain.{Content, Priority} import no.ndla.common.model.domain.draft.DraftStatus import no.ndla.language.Language.AllLanguages import no.ndla.language.model.Iso639 +import no.ndla.mapping.License import no.ndla.search.AggregationBuilder.{buildTermsAggregation, getAggregationsFromResult} import no.ndla.search.Elastic4sClient import no.ndla.searchapi.Props @@ -268,7 +269,7 @@ trait MultiDraftSearchService { val idFilter = if (settings.withIdIn.isEmpty) None else Some(idsQuery(settings.withIdIn)) val licenseFilter = settings.license match { - case None => Some(boolQuery().not(termQuery("license", "copyrighted"))) + case None => Some(boolQuery().not(termQuery("license", License.Copyrighted.toString))) case Some(lic) => Some(termQuery("license", lic)) } val grepCodesFilter = diff --git a/search-api/src/main/scala/no/ndla/searchapi/service/search/MultiSearchService.scala b/search-api/src/main/scala/no/ndla/searchapi/service/search/MultiSearchService.scala index bd8e9b9860..fb941aca69 100644 --- a/search-api/src/main/scala/no/ndla/searchapi/service/search/MultiSearchService.scala +++ b/search-api/src/main/scala/no/ndla/searchapi/service/search/MultiSearchService.scala @@ -14,6 +14,7 @@ import com.typesafe.scalalogging.StrictLogging import no.ndla.common.model.domain.{Availability, Content} import no.ndla.language.Language.AllLanguages import no.ndla.language.model.Iso639 +import no.ndla.mapping.License import no.ndla.search.AggregationBuilder.{buildTermsAggregation, getAggregationsFromResult} import no.ndla.search.Elastic4sClient import no.ndla.searchapi.Props @@ -138,7 +139,7 @@ trait MultiSearchService { val idFilter = if (settings.withIdIn.isEmpty) None else Some(idsQuery(settings.withIdIn)) val licenseFilter = settings.license match { - case None => Some(boolQuery().not(termQuery("license", "copyrighted"))) + case None => Some(boolQuery().not(termQuery("license", License.Copyrighted.toString))) case Some(lic) => Some(termQuery("license", lic)) } diff --git a/search-api/src/test/scala/no/ndla/searchapi/TestData.scala b/search-api/src/test/scala/no/ndla/searchapi/TestData.scala index 3d90ffd8bb..b6ab104768 100644 --- a/search-api/src/test/scala/no/ndla/searchapi/TestData.scala +++ b/search-api/src/test/scala/no/ndla/searchapi/TestData.scala @@ -47,6 +47,7 @@ import no.ndla.common.model.domain.learningpath.{ } import no.ndla.common.model.{NDLADate, domain as common} import no.ndla.language.Language.DefaultLanguage +import no.ndla.mapping.License import no.ndla.search.model.domain.EmbedValues import no.ndla.search.model.{LanguageValue, SearchableLanguageList, SearchableLanguageValues} import no.ndla.searchapi.model.domain.* @@ -73,7 +74,16 @@ object TestData { private val byNcSaCopyright = Copyright("by-nc-sa", Some("Gotham City"), List(Author("Writer", "DC Comics")), List(), List(), None, None, false) private val copyrighted = - Copyright("copyrighted", Some("New York"), List(Author("Writer", "Clark Kent")), List(), List(), None, None, false) + Copyright( + License.Copyrighted.toString, + Some("New York"), + List(Author("Writer", "Clark Kent")), + List(), + List(), + None, + None, + false + ) val today: NDLADate = NDLADate.now().withNano(0) val sampleArticleTitle: ArticleApiTitle = ArticleApiTitle("tittell", "tittell", "nb") @@ -601,7 +611,7 @@ object TestData { ) val draftCopyrighted: DraftCopyright = draft.DraftCopyright( - Some("copyrighted"), + Some(License.Copyrighted.toString), Some("New York"), List(Author("Forfatter", "Clark Kent")), List(), diff --git a/search-api/src/test/scala/no/ndla/searchapi/service/search/MultiDraftSearchServiceTest.scala b/search-api/src/test/scala/no/ndla/searchapi/service/search/MultiDraftSearchServiceTest.scala index 568993ef5b..000df8ebc6 100644 --- a/search-api/src/test/scala/no/ndla/searchapi/service/search/MultiDraftSearchServiceTest.scala +++ b/search-api/src/test/scala/no/ndla/searchapi/service/search/MultiDraftSearchServiceTest.scala @@ -11,6 +11,7 @@ import no.ndla.common.model.NDLADate import no.ndla.common.model.domain.ArticleType import no.ndla.common.model.domain.draft.DraftStatus import no.ndla.language.Language.AllLanguages +import no.ndla.mapping.License import no.ndla.network.tapir.NonEmptyString import no.ndla.scalatestsuite.IntegrationSuite import no.ndla.searchapi.TestData.* @@ -67,7 +68,7 @@ class MultiDraftSearchServiceTest extends IntegrationSuite(EnableElasticsearchCo else { draftsToIndex.filter(_.title.map(_.language).contains(language)) } - x.filter(!_.copyright.flatMap(_.license).contains("copyrighted")) + x.filter(!_.copyright.flatMap(_.license).contains(License.Copyrighted.toString)) .filterNot(_.status.current == DraftStatus.ARCHIVED) } @@ -76,7 +77,7 @@ class MultiDraftSearchServiceTest extends IntegrationSuite(EnableElasticsearchCo else { learningPathsToIndex.filter(_.title.map(_.language).contains(language)) } - x.filter(_.copyright.license != "copyrighted") + x.filter(_.copyright.license != License.Copyrighted.toString) } private def idsForLang(language: String) = @@ -252,7 +253,7 @@ class MultiDraftSearchServiceTest extends IntegrationSuite(EnableElasticsearchCo multiDraftSearchService.matchingQuery( multiDraftSearchSettings.copy( query = Some(NonEmptyString.fromString("supermann").get), - license = Some("copyrighted"), + license = Some(License.Copyrighted.toString), sort = Sort.ByTitleAsc ) ) @@ -352,7 +353,12 @@ class MultiDraftSearchServiceTest extends IntegrationSuite(EnableElasticsearchCo test("Search for all languages should return all languages if copyrighted") { val Success(search) = multiDraftSearchService.matchingQuery( multiDraftSearchSettings - .copy(language = AllLanguages, license = Some("copyrighted"), pageSize = 100, sort = Sort.ByTitleAsc) + .copy( + language = AllLanguages, + license = Some(License.Copyrighted.toString), + pageSize = 100, + sort = Sort.ByTitleAsc + ) ) val hits = search.results diff --git a/search-api/src/test/scala/no/ndla/searchapi/service/search/MultiSearchServiceTest.scala b/search-api/src/test/scala/no/ndla/searchapi/service/search/MultiSearchServiceTest.scala index bc4c6851fd..8dce8fa03b 100644 --- a/search-api/src/test/scala/no/ndla/searchapi/service/search/MultiSearchServiceTest.scala +++ b/search-api/src/test/scala/no/ndla/searchapi/service/search/MultiSearchServiceTest.scala @@ -12,6 +12,7 @@ import no.ndla.common.model.domain.article.Article import no.ndla.common.model.domain.learningpath.LearningPath import no.ndla.common.model.domain.{ArticleType, Availability} import no.ndla.language.Language.AllLanguages +import no.ndla.mapping.License import no.ndla.network.tapir.NonEmptyString import no.ndla.scalatestsuite.IntegrationSuite import no.ndla.searchapi.TestData.* @@ -92,7 +93,7 @@ class MultiSearchServiceTest a.title.map(_.language).contains(language) && a.availability == Availability.everyone ) } - x.filter(_.copyright.license != "copyrighted") + x.filter(_.copyright.license != License.Copyrighted.toString) } private def expectedAllPublicLearningPaths(language: String) = { @@ -100,7 +101,7 @@ class MultiSearchServiceTest else { TestData.learningPathsToIndex.filter(_.title.map(_.language).contains(language)) } - x.filter(_.copyright.license != "copyrighted") + x.filter(_.copyright.license != License.Copyrighted.toString) } private def idsForLang(language: String) = @@ -247,7 +248,7 @@ class MultiSearchServiceTest multiSearchService.matchingQuery( searchSettings.copy( Some(NonEmptyString.fromString("supermann").get), - license = Some("copyrighted"), + license = Some(License.Copyrighted.toString), sort = Sort.ByTitleAsc ) ) @@ -336,7 +337,12 @@ class MultiSearchServiceTest test("Search for all languages should return all languages if copyrighted") { val Success(search) = multiSearchService.matchingQuery( searchSettings - .copy(language = AllLanguages, license = Some("copyrighted"), pageSize = 100, sort = Sort.ByTitleAsc) + .copy( + language = AllLanguages, + license = Some(License.Copyrighted.toString), + pageSize = 100, + sort = Sort.ByTitleAsc + ) ) val hits = search.results