From a8cbf219b0849e09acd18508252d71af4146e2d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Manciot?= Date: Thu, 11 May 2023 10:13:17 +0200 Subject: [PATCH] update mangopay api to get rid of jdbc schema provider --- .../softnetwork/payment/api/MangoPayApi.scala | 4 ++-- .../payment/api/MangoPayPostgresLauncher.scala | 17 +++++++++++++---- .../payment/api/MangoPayWithSchedulerApi.scala | 3 ++- ...MangoPayWithSchedulerPostgresLauncher.scala | 18 ++++++++++++++---- 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayApi.scala b/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayApi.scala index 5662b29..bd8a934 100644 --- a/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayApi.scala +++ b/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayApi.scala @@ -12,13 +12,13 @@ import app.softnetwork.payment.persistence.query.{ import app.softnetwork.payment.persistence.typed.{GenericPaymentBehavior, MangoPayPaymentBehavior} import app.softnetwork.payment.service.{GenericPaymentService, MangoPayPaymentService} import app.softnetwork.persistence.jdbc.query.{JdbcJournalProvider, JdbcOffsetProvider} -import app.softnetwork.persistence.jdbc.schema.JdbcSchemaProvider +import app.softnetwork.persistence.schema.SchemaProvider import app.softnetwork.scheduler.config.SchedulerSettings import com.typesafe.config.Config import scala.concurrent.Future -trait MangoPayApi extends PaymentApplication with JdbcSchemaProvider { +trait MangoPayApi extends PaymentApplication { _: SchemaProvider => override def paymentAccountBehavior: ActorSystem[_] => GenericPaymentBehavior = _ => MangoPayPaymentBehavior diff --git a/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayPostgresLauncher.scala b/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayPostgresLauncher.scala index 95e6b1c..b94df19 100644 --- a/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayPostgresLauncher.scala +++ b/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayPostgresLauncher.scala @@ -1,11 +1,20 @@ package app.softnetwork.payment.api -import app.softnetwork.persistence.jdbc.schema.JdbcSchemaTypes -import app.softnetwork.persistence.schema.SchemaType +import akka.actor +import akka.actor.typed.ActorSystem +import app.softnetwork.persistence.jdbc.schema.{JdbcSchema, JdbcSchemaTypes} +import app.softnetwork.persistence.schema.{Schema, SchemaProvider, SchemaType} +import app.softnetwork.persistence.typed._ +import com.typesafe.config.Config import org.slf4j.{Logger, LoggerFactory} -object MangoPayPostgresLauncher extends MangoPayApi { +object MangoPayPostgresLauncher extends MangoPayApi with SchemaProvider { lazy val log: Logger = LoggerFactory getLogger getClass.getName - override val schemaType: SchemaType = JdbcSchemaTypes.Postgres + override def schema: ActorSystem[_] => Schema = sys => + new JdbcSchema { + override def schemaType: SchemaType = JdbcSchemaTypes.Postgres + override implicit def classicSystem: actor.ActorSystem = sys + override def config: Config = MangoPayPostgresLauncher.this.config + } } diff --git a/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayWithSchedulerApi.scala b/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayWithSchedulerApi.scala index 2641b9d..10e8059 100644 --- a/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayWithSchedulerApi.scala +++ b/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayWithSchedulerApi.scala @@ -5,6 +5,7 @@ import akka.http.scaladsl.model.{HttpRequest, HttpResponse} import app.softnetwork.persistence.jdbc.query.{JdbcJournalProvider, JdbcOffsetProvider} import app.softnetwork.persistence.launch.PersistentEntity import app.softnetwork.persistence.query.EventProcessorStream +import app.softnetwork.persistence.schema.SchemaProvider import app.softnetwork.scheduler.api.{SchedulerApi, SchedulerServiceApiHandler} import app.softnetwork.scheduler.handlers.SchedulerHandler import app.softnetwork.scheduler.persistence.query.Entity2SchedulerProcessorStream @@ -12,7 +13,7 @@ import com.typesafe.config.Config import scala.concurrent.Future -trait MangoPayWithSchedulerApi extends MangoPayApi with SchedulerApi { +trait MangoPayWithSchedulerApi extends MangoPayApi with SchedulerApi { _: SchemaProvider => override def entity2SchedulerProcessorStream: ActorSystem[_] => Entity2SchedulerProcessorStream = sys => diff --git a/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayWithSchedulerPostgresLauncher.scala b/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayWithSchedulerPostgresLauncher.scala index 3a99b83..854d9af 100644 --- a/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayWithSchedulerPostgresLauncher.scala +++ b/mangopay/api/src/main/scala/app/softnetwork/payment/api/MangoPayWithSchedulerPostgresLauncher.scala @@ -1,10 +1,20 @@ package app.softnetwork.payment.api -import app.softnetwork.persistence.jdbc.schema.JdbcSchemaTypes -import app.softnetwork.persistence.schema.SchemaType +import akka.actor +import akka.actor.typed.ActorSystem +import app.softnetwork.persistence.jdbc.schema.{JdbcSchema, JdbcSchemaTypes} +import app.softnetwork.persistence.schema.{Schema, SchemaProvider, SchemaType} +import app.softnetwork.persistence.typed._ +import com.typesafe.config.Config import org.slf4j.{Logger, LoggerFactory} -object MangoPayWithSchedulerPostgresLauncher extends MangoPayWithSchedulerApi { +object MangoPayWithSchedulerPostgresLauncher extends MangoPayWithSchedulerApi with SchemaProvider { lazy val log: Logger = LoggerFactory getLogger getClass.getName - override val schemaType: SchemaType = JdbcSchemaTypes.Postgres + + override def schema: ActorSystem[_] => Schema = sys => + new JdbcSchema { + override def schemaType: SchemaType = JdbcSchemaTypes.Postgres + override implicit def classicSystem: actor.ActorSystem = sys + override def config: Config = MangoPayWithSchedulerPostgresLauncher.this.config + } }