Skip to content

Commit 5780d5c

Browse files
committed
add support for tapir endpoints + update resource test kits
1 parent 1b154c6 commit 5780d5c

File tree

46 files changed

+906
-197
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+906
-197
lines changed

api/build.sbt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import app.softnetwork.sbt.build._
22
import com.typesafe.sbt.packager.docker._
33

4-
Compile / mainClass := Some("app.softnetwork.resource.api.ResourceToLocalFileSystemPostgresLauncher")
4+
Compile / mainClass := Some("app.softnetwork.resource.api.ResourceToLocalFileSystemEndpointsWithOneOffCookiePostgresLauncher")
55

66
dockerBaseImage := "openjdk:8"
77

@@ -28,6 +28,5 @@ organization := "app.softnetwork.resource"
2828
name := "resource-api"
2929

3030
libraryDependencies ++= Seq(
31-
"app.softnetwork.persistence" %% "persistence-jdbc" % Versions.genericPersistence,
32-
"com.lightbend.akka" %% "akka-persistence-jdbc" % Versions.akkaPersistenceJdbc
31+
"app.softnetwork.persistence" %% "persistence-jdbc" % Versions.genericPersistence
3332
)

api/src/main/scala/app/softnetwork/resource/api/ResourceApi.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import akka.actor.typed.ActorSystem
44
import app.softnetwork.persistence.launch.PersistentEntity
55
import app.softnetwork.persistence.launch.PersistenceGuardian._
66
import app.softnetwork.persistence.schema.SchemaProvider
7-
import app.softnetwork.resource.launch.GenericResourceApplication
7+
import app.softnetwork.resource.launch.ResourceApplication
88
import app.softnetwork.resource.message.ResourceEvents.ResourceEvent
99
import app.softnetwork.resource.message.ResourceMessages.{ResourceCommand, ResourceResult}
1010
import app.softnetwork.resource.model.Resource
1111
import app.softnetwork.resource.persistence.typed.ResourceBehavior
1212

13-
trait ResourceApi extends GenericResourceApplication[Resource] { _: SchemaProvider =>
13+
trait ResourceApi extends ResourceApplication[Resource] { _: SchemaProvider =>
1414

1515
override def resourceEntity
1616
: ActorSystem[_] => PersistentEntity[ResourceCommand, Resource, ResourceEvent, ResourceResult] =

api/src/main/scala/app/softnetwork/resource/api/ResourceToLocalFileSystemApi.scala

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import app.softnetwork.resource.persistence.query.{
88
GenericResourceToExternalProcessorStream,
99
ResourceToLocalFileSystemProcessorStream
1010
}
11-
import app.softnetwork.resource.service.{GenericResourceService, LocalFileSystemResourceService}
11+
import app.softnetwork.resource.service.{LocalFileSystemResourceService, ResourceService}
1212
import com.typesafe.config.Config
1313

1414
trait ResourceToLocalFileSystemApi extends ResourceApi { _: SchemaProvider =>
@@ -21,7 +21,4 @@ trait ResourceToLocalFileSystemApi extends ResourceApi { _: SchemaProvider =>
2121
override implicit def system: ActorSystem[_] = sys
2222
override def config: Config = ResourceToLocalFileSystemApi.this.config
2323
}
24-
25-
override def resourceService: ActorSystem[_] => GenericResourceService = sys =>
26-
LocalFileSystemResourceService(sys)
2724
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package app.softnetwork.resource.api
2+
3+
import akka.actor.typed.ActorSystem
4+
import app.softnetwork.persistence.schema.SchemaProvider
5+
import app.softnetwork.resource.launch.ResourceEndpoints
6+
import app.softnetwork.resource.model.Resource
7+
import app.softnetwork.resource.service.{
8+
LocalFileSystemResourceServiceEndpoints,
9+
ResourceServiceEndpoints
10+
}
11+
import com.softwaremill.session.CsrfCheck
12+
13+
trait ResourceToLocalFileSystemEndpointsApi
14+
extends ResourceToLocalFileSystemApi
15+
with ResourceEndpoints[Resource] { _: SchemaProvider with CsrfCheck =>
16+
17+
override def resourceEndpoints: ActorSystem[_] => ResourceServiceEndpoints = system =>
18+
LocalFileSystemResourceServiceEndpoints(system, sessionEndpoints(system))
19+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package app.softnetwork.resource.api
2+
3+
import akka.actor.typed.ActorSystem
4+
import app.softnetwork.persistence.jdbc.schema.{JdbcSchemaProvider, JdbcSchemaTypes}
5+
import app.softnetwork.persistence.schema.SchemaType
6+
import app.softnetwork.session.service.{OneOffCookieSessionEndpoints, SessionEndpoints}
7+
import com.softwaremill.session.CsrfCheckHeader
8+
import org.slf4j.{Logger, LoggerFactory}
9+
10+
object ResourceToLocalFileSystemEndpointsWithOneOffCookiePostgresLauncher
11+
extends ResourceToLocalFileSystemEndpointsApi
12+
with CsrfCheckHeader
13+
with JdbcSchemaProvider {
14+
lazy val log: Logger = LoggerFactory getLogger getClass.getName
15+
16+
def schemaType: SchemaType = JdbcSchemaTypes.Postgres
17+
18+
override def sessionEndpoints: ActorSystem[_] => SessionEndpoints = system =>
19+
SessionEndpoints.oneOffCookie(system, checkHeaderAndForm)
20+
}

api/src/main/scala/app/softnetwork/resource/api/ResourceToLocalFileSystemPostgresLauncher.scala

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package app.softnetwork.resource.api
2+
3+
import akka.actor.typed.ActorSystem
4+
import app.softnetwork.persistence.schema.SchemaProvider
5+
import app.softnetwork.resource.launch.ResourceRoutes
6+
import app.softnetwork.resource.model.Resource
7+
import app.softnetwork.resource.service.{LocalFileSystemResourceService, ResourceService}
8+
9+
trait ResourceToLocalFileSystemRoutesApi
10+
extends ResourceToLocalFileSystemApi
11+
with ResourceRoutes[Resource] { _: SchemaProvider =>
12+
13+
override def resourceService: ActorSystem[_] => ResourceService = system =>
14+
LocalFileSystemResourceService(system, sessionService(system))
15+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package app.softnetwork.resource.api
2+
3+
import akka.actor.typed.ActorSystem
4+
import app.softnetwork.persistence.jdbc.schema.{JdbcSchemaProvider, JdbcSchemaTypes}
5+
import app.softnetwork.persistence.schema.SchemaType
6+
import app.softnetwork.session.service.SessionService
7+
import org.slf4j.{Logger, LoggerFactory}
8+
9+
object ResourceToLocalFileSystemRoutesWithOneOffCookiePostgresLauncher
10+
extends ResourceToLocalFileSystemRoutesApi
11+
with JdbcSchemaProvider {
12+
lazy val log: Logger = LoggerFactory getLogger getClass.getName
13+
14+
def schemaType: SchemaType = JdbcSchemaTypes.Postgres
15+
16+
override def sessionService: ActorSystem[_] => SessionService = system =>
17+
SessionService.oneOffCookie(system)
18+
}

build.sbt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ ThisBuild / organization := "app.softnetwork"
3131

3232
name := "resource"
3333

34-
ThisBuild / version := "0.2.0.1"
34+
ThisBuild / version := "0.2.1"
3535

3636
ThisBuild / scalaVersion := "2.12.15"
3737

38-
ThisBuild / scalacOptions ++= Seq("-deprecation", "-feature", "-target:jvm-1.8")
38+
ThisBuild / scalacOptions ++= Seq("-deprecation", "-feature", "-target:jvm-1.8", "-Ypartial-unification")
3939

4040
ThisBuild / javacOptions ++= Seq("-source", "1.8", "-target", "1.8", "-Xlint")
4141

common/build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ organization := "app.softnetwork.resource"
55
name := "resource-common"
66

77
libraryDependencies ++= Seq(
8-
"app.softnetwork.api" %% "generic-server-api" % Versions.server,
8+
"app.softnetwork.api" %% "generic-server-api" % Versions.genericPersistence,
99
"app.softnetwork.protobuf" %% "scalapb-extensions" % "0.1.6"
1010
)
1111

0 commit comments

Comments
 (0)