Skip to content

Commit

Permalink
myndla-api: Initial commit
Browse files Browse the repository at this point in the history
myndla-api: Add initial database setup

WIP: Begin moving Folder domain classes

Many stuff moved to common, old stuff still works

adwapod

myndlalib

Moving more stuff!

mye greier det her ja

lalalal

testalite

detta kompilerer, men det holder jo ikke

yedd

yepp

closer

nære

hm

tests back to testing

yay

single folders working

yez

even more endpoints

folder controller is done without testing

add user controller

hola it works a lot

lapskaus

imports
  • Loading branch information
jnatten committed Dec 7, 2023
1 parent 33ff9e5 commit 62370a3
Show file tree
Hide file tree
Showing 116 changed files with 5,469 additions and 3,835 deletions.
5 changes: 2 additions & 3 deletions article-api/src/main/scala/no/ndla/articleapi/Main.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,10 @@

package no.ndla.articleapi

import cats.effect.{ExitCode, IO, IOApp}
import no.ndla.common.Environment.setPropsFromEnv

object Main extends IOApp {
def run(args: List[String]): IO[ExitCode] = {
object Main {
def main(args: Array[String]): Unit = {
setPropsFromEnv()
val props = new ArticleApiProperties
val mainClass = new MainClass(props)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,6 @@ class MainClass(override val props: ArticleApiProperties) extends NdlaTapirMain[
logger.info(s"Done db migration, took ${System.currentTimeMillis() - startDBMillis}ms")
}

override def startServer(name: String, port: Int)(warmupFunc: => Unit): IO[Unit] =
override def startServer(name: String, port: Int)(warmupFunc: => Unit): Unit =
componentRegistry.Routes.startJdkServer(name, port)(warmupFunc)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,17 @@ package no.ndla.articleapi.controller

import cats.implicits._
import io.circe.generic.auto._
import no.ndla.articleapi.{Eff, Props}
import no.ndla.articleapi.model.api
import no.ndla.articleapi.model.api._
import no.ndla.articleapi.model.domain.{DynamicHeaders, Sort}
import no.ndla.articleapi.service.search.{ArticleSearchService, SearchConverterService}
import no.ndla.articleapi.service.{ConverterService, ReadService, WriteService}
import no.ndla.articleapi.validation.ContentValidator
import no.ndla.articleapi.{Eff, Props}
import no.ndla.common.ContentURIUtil.parseArticleIdAndRevision
import no.ndla.language.Language.AllLanguages
import no.ndla.network.tapir.NoNullJsonPrinter.jsonBody
import no.ndla.network.tapir.Parameters.feideHeader
import no.ndla.network.tapir.Service
import no.ndla.network.tapir.TapirErrors.errorOutputsFor
import sttp.tapir.EndpointIO.annotations.{header, jsonbody}
Expand Down Expand Up @@ -97,11 +98,6 @@ trait ArticleControllerV2 {
)
.default(Delimited[",", String](List.empty))

private val feideHeader = sttp.tapir
.header[Option[String]]("FeideAuthorization")
.description("Header containing FEIDE access token.")
.mapDecode(mbHeader => DecodeResult.Value(mbHeader.map(_.replaceFirst("Bearer ", ""))))(x => x)

private case class SummaryWithHeader(
@jsonbody
body: SearchResultV2,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

package no.ndla.articleapi.controller

import cats.effect.IO
import cats.effect.unsafe.implicits.global
import no.ndla.articleapi.model.{api, domain}
import no.ndla.articleapi.model.search.SearchResult
Expand Down Expand Up @@ -49,7 +50,7 @@ class ArticleControllerV2Test extends UnitSuite with TestEnvironment {
override val services = List(controller)

override def beforeAll(): Unit = {
Routes.startJdkServer(this.getClass.getName, serverPort) {}.unsafeRunAndForget()
IO { Routes.startJdkServer(this.getClass.getName, serverPort) {} }.unsafeRunAndForget()
Thread.sleep(1000)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

package no.ndla.articleapi.controller

import cats.effect.IO
import cats.effect.unsafe.implicits.global
import no.ndla.articleapi.{Eff, TestEnvironment, UnitSuite}
import no.ndla.network.tapir.Service
Expand All @@ -21,7 +22,7 @@ class HealthControllerTest extends UnitSuite with TestEnvironment {
override val services: List[Service[Eff]] = List(healthController)

override def beforeAll(): Unit = {
Routes.startJdkServer(this.getClass.getName, serverPort) {}.unsafeRunAndForget()
IO { Routes.startJdkServer(this.getClass.getName, serverPort) {} }.unsafeRunAndForget()
Thread.sleep(1000)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

package no.ndla.articleapi.controller

import cats.effect.IO
import cats.effect.unsafe.implicits.global
import enumeratum.Json4s
import no.ndla.articleapi.{TestEnvironment, UnitSuite}
Expand Down Expand Up @@ -39,7 +40,7 @@ class InternControllerTest extends UnitSuite with TestEnvironment {
override val services = List(controller)

override def beforeAll(): Unit = {
Routes.startJdkServer(this.getClass.getName, serverPort) {}.unsafeRunAndForget()
IO { Routes.startJdkServer(this.getClass.getName, serverPort) {} }.unsafeRunAndForget()
Thread.sleep(1000)
}

Expand Down
4 changes: 2 additions & 2 deletions audio-api/src/main/scala/no/ndla/audioapi/Main.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ package no.ndla.audioapi
import cats.effect.{ExitCode, IO, IOApp}
import no.ndla.common.Environment.setPropsFromEnv

object Main extends IOApp {
def run(args: List[String]): IO[ExitCode] = {
object Main {
def main(args: Array[String]): Unit = {
setPropsFromEnv()
val props = new AudioApiProperties
val mainClass = new MainClass(props)
Expand Down
2 changes: 1 addition & 1 deletion audio-api/src/main/scala/no/ndla/audioapi/MainClass.scala
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,6 @@ class MainClass(val props: AudioApiProperties) extends NdlaTapirMain[Eff] {
logger.info(s"Done DB Migration took ${System.currentTimeMillis() - dBstartMillis} ms")
}

override def startServer(name: String, port: Int)(warmupFunc: => Unit): IO[Unit] =
override def startServer(name: String, port: Int)(warmupFunc: => Unit): Unit =
componentRegistry.Routes.startJdkServer(name, port)(warmupFunc)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

package no.ndla.audioapi.controller

import cats.effect.IO
import cats.effect.unsafe.implicits.global
import io.circe.parser
import no.ndla.audioapi.model.api._
Expand Down Expand Up @@ -36,7 +37,7 @@ class AudioControllerTest extends UnitSuite with TestEnvironment with Retries {
override val services: List[Service[Eff]] = List(controller)

override def beforeAll(): Unit = {
Routes.startJdkServer("AudioControllerTest", serverPort) {}.unsafeRunAndForget()
IO { Routes.startJdkServer("AudioControllerTest", serverPort) {} }.unsafeRunAndForget()
Thread.sleep(1000)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

package no.ndla.audioapi.controller

import cats.effect.IO
import cats.effect.unsafe.implicits.global
import no.ndla.audioapi.model.domain
import no.ndla.audioapi.model.domain._
Expand All @@ -33,7 +34,7 @@ class HealthControllerTest extends UnitSuite with TestEnvironment {

override val services: List[Service[Eff]] = List(controller)
override def beforeAll(): Unit = {
Routes.startJdkServer("HealthControllerTest", serverPort) {}.unsafeRunAndForget()
IO { Routes.startJdkServer("HealthControllerTest", serverPort) {} }.unsafeRunAndForget()
Thread.sleep(1000)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

package no.ndla.audioapi.controller

import cats.effect.IO
import cats.effect.unsafe.implicits.global
import no.ndla.audioapi.TestData._
import no.ndla.audioapi.model.domain
Expand All @@ -27,7 +28,7 @@ class InternControllerTest extends UnitSuite with TestEnvironment {
override val services: List[InternController] = List(controller)

override def beforeAll(): Unit = {
Routes.startJdkServer("InternControllerTest", serverPort) {}.unsafeRunAndForget()
IO { Routes.startJdkServer("InternControllerTest", serverPort) {} }.unsafeRunAndForget()
Thread.sleep(1000)
}

Expand Down
16 changes: 16 additions & 0 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ lazy val `learningpath-api` = Module.setup(
language,
common,
search,
myndla,
testWith(scalatestsuite)
)
)
Expand All @@ -115,6 +116,19 @@ lazy val `search-api` = Module.setup(
)
)

lazy val `myndla-api` = Module.setup(
project in file("./myndla-api/"),
myndlaapi,
deps = Seq(
network,
mapping,
language,
common,
myndla,
testWith(scalatestsuite)
)
)

// Libraries
lazy val common = Module.setup(project in file("./common/"), commonlib, deps = Seq(testWith(scalatestsuite), language))
lazy val scalatestsuite = Module.setup(project in file("./scalatestsuite/"), scalatestsuitelib)
Expand All @@ -124,6 +138,8 @@ lazy val mapping = Module.setup(project in file("./mapping/"), mappinglib
lazy val validation = Module.setup(project in file("./validation/"), validationlib, deps = Seq(common))
lazy val search =
Module.setup(project in file("./search/"), searchlib, deps = Seq(testWith(scalatestsuite), language, common))
lazy val myndla =
Module.setup(project in file("./myndla/"), myndlalib, deps = Seq(common, network, testWith(scalatestsuite)))

lazy val `integration-tests` = Module.setup(
project in file("./integration-tests/"),
Expand Down
4 changes: 2 additions & 2 deletions frontpage-api/src/main/scala/no/ndla/frontpageapi/Main.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ package no.ndla.frontpageapi
import cats.effect.{ExitCode, IO, IOApp}
import no.ndla.common.Environment.setPropsFromEnv

object Main extends IOApp {
def run(args: List[String]): IO[ExitCode] = {
object Main {
def main(args: Array[String]): Unit = {
setPropsFromEnv()
val props = new FrontpageApiProperties
val mainClass = new MainClass(props)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ class MainClass(override val props: FrontpageApiProperties) extends NdlaTapirMai
componentRegistry.healthController.setWarmedUp()
}

override def startServer(name: String, port: Int)(warmupFunc: => Unit): IO[Unit] =
override def startServer(name: String, port: Int)(warmupFunc: => Unit): Unit =
componentRegistry.Routes.startJdkServer(name, port)(warmupFunc)
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

package no.ndla.frontpageapi

import cats.effect.IO
import cats.effect.unsafe.implicits.global
import sttp.client3.quick._

Expand All @@ -18,7 +19,7 @@ class FilmPageControllerTest extends UnitSuite with TestEnvironment {
override val services = List(filmPageController)

override def beforeAll(): Unit = {
Routes.startJdkServer(this.getClass.getName, serverPort) {}.unsafeRunAndForget()
IO { Routes.startJdkServer(this.getClass.getName, serverPort) {} }.unsafeRunAndForget()
Thread.sleep(1000)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

package no.ndla.frontpageapi

import cats.effect.IO
import cats.effect.unsafe.implicits.global
import io.circe.syntax.EncoderOps
import no.ndla.common.model.NDLADate
Expand All @@ -20,7 +21,7 @@ class SubjectPageControllerTest extends UnitSuite with TestEnvironment {
override val services = List(subjectPageController)

override def beforeAll(): Unit = {
Routes.startJdkServer(this.getClass.getName, serverPort) {}.unsafeRunAndForget()
IO { Routes.startJdkServer(this.getClass.getName, serverPort) {} }.unsafeRunAndForget()
Thread.sleep(1000)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

package no.ndla.frontpageapi.controller

import cats.effect.IO
import cats.effect.unsafe.implicits.global
import no.ndla.common.{errors => common}
import no.ndla.frontpageapi.model.api
Expand All @@ -24,7 +25,7 @@ class FrontPageControllerTest extends UnitSuite with TestEnvironment {
override val services = List(controller)

override def beforeAll(): Unit = {
Routes.startJdkServer("FrontPageControllerTest", serverPort) {}.unsafeRunAndForget()
IO { Routes.startJdkServer("FrontPageControllerTest", serverPort) {} }.unsafeRunAndForget()
Thread.sleep(1000)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

package no.ndla.integrationtests.draftapi.articleapi

import cats.effect.unsafe
import cats.effect.{IO, unsafe}
import no.ndla.articleapi.ArticleApiProperties
import no.ndla.common.model.domain.Priority
import no.ndla.common.model.domain.draft.Draft
Expand Down Expand Up @@ -61,7 +61,7 @@ class ArticleApiClientTest

override def beforeAll(): Unit = {
articleApi = new articleapi.MainClass(articleApiProperties)
cancelFunc = articleApi.run().unsafeRunCancelable()(unsafe.IORuntime.global)
cancelFunc = IO { articleApi.run() }.unsafeRunCancelable()(unsafe.IORuntime.global)
blockUntil(() => {
import sttp.client3.quick._
val req = quickRequest.get(uri"$articleApiBaseUrl/health")
Expand Down Expand Up @@ -126,7 +126,7 @@ class ArticleApiClientTest
slug = None,
comments = Seq.empty,
priority = Priority.Unspecified,
started = false,
started = false
)

val exampleToken =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

package no.ndla.integrationtests.searchapi.articleapi

import cats.effect.unsafe
import cats.effect.{IO, unsafe}
import enumeratum.Json4s
import no.ndla.articleapi.ArticleApiProperties
import no.ndla.common.model.NDLADate
Expand Down Expand Up @@ -71,7 +71,7 @@ class ArticleApiClientTest

override def beforeAll(): Unit = {
articleApi = new articleapi.MainClass(articleApiProperties)
cancelFunc = articleApi.run().unsafeRunCancelable()(unsafe.IORuntime.global)
cancelFunc = IO { articleApi.run() }.unsafeRunCancelable()(unsafe.IORuntime.global)

blockUntil(() => {
import sttp.client3.quick._
Expand Down
Loading

0 comments on commit 62370a3

Please sign in to comment.