Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Use catalog process instead of management #81

Merged
merged 2 commits into from
Apr 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions project/Dependencies.scala
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ object Dependencies {

private[this] object pagopa {
lazy val namespace = "it.pagopa"
lazy val catalogManagementClient =
namespace %% "interop-be-catalog-management-client" % catalogManagementVersion
lazy val catalogProcessClient =
namespace %% "interop-be-catalog-process-client" % catalogProcessVersion

lazy val catalogManagementModels =
namespace %% "interop-be-catalog-management-models" % catalogManagementVersion
Expand Down Expand Up @@ -155,7 +155,7 @@ object Dependencies {
logback.classic % Compile,
mustache.mustache % Compile,
pagopa.agreementManagementModels % Compile,
pagopa.catalogManagementClient % Compile,
pagopa.catalogProcessClient % Compile,
pagopa.catalogManagementModels % Compile,
pagopa.purposeManagementModels % Compile,
pagopa.authorizationManagementModels % Compile,
Expand Down
1 change: 1 addition & 0 deletions project/Versions.scala
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,5 @@ object PagopaVersions {
lazy val purposeManagementVersion = "1.0.x-SNAPSHOT"
lazy val agreementManagementVersion = "1.0.x-SNAPSHOT"
lazy val catalogManagementVersion = "1.0.x-SNAPSHOT"
lazy val catalogProcessVersion = "1.0.x-SNAPSHOT"
}
2 changes: 1 addition & 1 deletion src/it/resources/application-it.conf
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ notifier {
services {
agreement-management = "http://localhost"
purpose-management = "http://localhost"
catalog-management = "http://localhost"
catalog-process = "http://localhost"
}
dynamo {
notification-table-name = "a_table"
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/application-standalone.conf
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ notifier {
services {
agreement-management = ${AGREEMENT_MANAGEMENT_URL}
purpose-management = ${PURPOSE_MANAGEMENT_URL}
catalog-management = ${CATALOG_MANAGEMENT_URL}
catalog-process = ${CATALOG_PROCESS_URL}
}

dynamo {
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/application.conf
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ notifier {
services {
agreement-management = ${AGREEMENT_MANAGEMENT_URL}
purpose-management = ${PURPOSE_MANAGEMENT_URL}
catalog-management = ${CATALOG_MANAGEMENT_URL}
catalog-process = ${CATALOG_PROCESS_URL}
}
dynamo {
notification-table-name = ${NOTIFICATION_DYNAMO_TABLE_NAME}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import it.pagopa.interop.commons.cqrs.model.MongoDbConfig
object ApplicationConfiguration {
val config: Config = ConfigFactory.load()
val serverPort: Int = config.getInt("notifier.port")
val catalogManagementURL: String = config.getString("notifier.services.catalog-management")
val catalogProcessURL: String = config.getString("notifier.services.catalog-process")
val dynamoNotificationTableName: String = config.getString("notifier.dynamo.notification-table-name")
val dynamoNotificationResourcesTableName: String =
config.getString("notifier.dynamo.notification-resources-table-name")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,12 +117,12 @@ trait Dependencies {
loggingEnabled = false
)

def catalogManagementService(
def catalogProcessService(
blockingEc: ExecutionContextExecutor
)(implicit ec: ExecutionContext, actorSystem: ActorSystem[_]): CatalogManagementService =
new CatalogManagementServiceImpl(
CatalogManagementInvoker(blockingEc)(actorSystem.classicSystem),
CatalogManagementApi(ApplicationConfiguration.catalogManagementURL)
)(implicit ec: ExecutionContext, actorSystem: ActorSystem[_]): CatalogProcessService =
new CatalogProcessServiceImpl(
CatalogProcessInvoker(blockingEc)(actorSystem.classicSystem),
CatalogProcessApi(ApplicationConfiguration.catalogProcessURL)
)

def authorizationEventsHandler(blockingEc: ExecutionContextExecutor): AuthorizationEventsHandler =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ object Main extends App with CORSSupport with Dependencies {
idRetriever = eventIdRetriever(sharding),
dynamoNotificationService = dynamoNotificationService,
dynamoIndexService = dynamoIndexService,
catalogManagementService = catalogManagementService(blockingEc),
catalogProcessService = catalogProcessService(blockingEc),
authorizationEventsHandler = authorizationEventsHandler(blockingEc)
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ package it.pagopa.interop.notifier.service
import java.util.UUID
import scala.concurrent.Future

trait CatalogManagementService {
trait CatalogProcessService {
def getEServiceProducerByEServiceId(eServiceId: UUID)(implicit contexts: Seq[(String, String)]): Future[UUID]
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package it.pagopa.interop.notifier.service.converters
import it.pagopa.interop.commons.queue.message.ProjectableEvent
import it.pagopa.interop.commons.utils.errors.ComponentError
import it.pagopa.interop.notifier.model.{MessageId, NotificationPayload, PurposePayload}
import it.pagopa.interop.notifier.service.CatalogManagementService
import it.pagopa.interop.notifier.service.CatalogProcessService
import it.pagopa.interop.notifier.service.converters.EventType._
import it.pagopa.interop.notifier.service.impl.DynamoNotificationResourcesService
import it.pagopa.interop.purposemanagement.model.persistence._
Expand All @@ -13,24 +13,24 @@ import scala.concurrent.{ExecutionContext, Future}

object PurposeEventsConverter {
def getMessageId(
catalogManagementService: CatalogManagementService,
catalogProcessService: CatalogProcessService,
dynamoIndexService: DynamoNotificationResourcesService
)(implicit
ec: ExecutionContext,
contexts: Seq[(String, String)]
): PartialFunction[ProjectableEvent, Future[Option[MessageId]]] = { case e: Event =>
getMessageIdFromEvent(catalogManagementService, dynamoIndexService, e)
getMessageIdFromEvent(catalogProcessService, dynamoIndexService, e)
}

private[this] def getMessageIdFromEvent(
catalogManagementService: CatalogManagementService,
catalogProcessService: CatalogProcessService,
dynamoIndexService: DynamoNotificationResourcesService,
event: Event
)(implicit ec: ExecutionContext, contexts: Seq[(String, String)]): Future[Option[MessageId]] =
event match {
case PurposeCreated(purpose) =>
for {
messageId <- catalogManagementService
messageId <- catalogProcessService
.getEServiceProducerByEServiceId(purpose.eserviceId)
.map(organizationId => MessageId(purpose.id, organizationId.toString()))
_ <- dynamoIndexService.put(messageId)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
package it.pagopa.interop.notifier.service.impl

import it.pagopa.interop.catalogmanagement.client.invoker.BearerToken
import it.pagopa.interop.catalogmanagement.client.model.EService
import it.pagopa.interop.catalogprocess.client.invoker.BearerToken
import it.pagopa.interop.catalogprocess.client.model.EService
import it.pagopa.interop.commons.utils.withHeaders
import it.pagopa.interop.notifier.service.{CatalogManagementApi, CatalogManagementInvoker, CatalogManagementService}
import it.pagopa.interop.notifier.service.{CatalogProcessApi, CatalogProcessInvoker, CatalogProcessService}
import com.typesafe.scalalogging.{Logger, LoggerTakingImplicit}
import it.pagopa.interop.commons.logging.{CanLogContextFields, ContextFieldsToLog}

import java.util.UUID
import scala.concurrent.{ExecutionContext, Future}

final class CatalogManagementServiceImpl(invoker: CatalogManagementInvoker, api: CatalogManagementApi)(implicit
final class CatalogProcessServiceImpl(invoker: CatalogProcessInvoker, api: CatalogProcessApi)(implicit
ec: ExecutionContext
) extends CatalogManagementService {
) extends CatalogProcessService {

implicit val logger: LoggerTakingImplicit[ContextFieldsToLog] =
Logger.takingImplicit[ContextFieldsToLog](this.getClass)

private[this] def getEServiceById(eServiceId: UUID)(implicit contexts: Seq[(String, String)]): Future[EService] =
withHeaders { (bearerToken, correlationId) =>
val request = api.getEService(xCorrelationId = correlationId, eServiceId.toString)(BearerToken(bearerToken))
val request = api.getEServiceById(xCorrelationId = correlationId, eServiceId)(BearerToken(bearerToken))
invoker.invoke(request, s"Retrieving EService $eServiceId")
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import it.pagopa.interop.notifier.service.converters.{
}
import it.pagopa.interop.notifier.service.converters.separator
import it.pagopa.interop.notifier.model.persistence.PersistentOrganizationEvent
import it.pagopa.interop.notifier.service.{AuthorizationEventsHandler, CatalogManagementService}
import it.pagopa.interop.notifier.service.{AuthorizationEventsHandler, CatalogProcessService}

import java.util.UUID
import scala.concurrent.{ExecutionContext, Future}
Expand All @@ -26,7 +26,7 @@ final class QueueHandler(
idRetriever: EventIdRetriever,
dynamoNotificationService: DynamoNotificationService,
dynamoIndexService: DynamoNotificationResourcesService,
catalogManagementService: CatalogManagementService,
catalogProcessService: CatalogProcessService,
authorizationEventsHandler: AuthorizationEventsHandler
)(implicit ec: ExecutionContext) {

Expand Down Expand Up @@ -55,7 +55,7 @@ final class QueueHandler(
Function.unlift({ msg: Message =>
implicit val ctx: Seq[(String, String)] = contexts
val getMessageId: PartialFunction[ProjectableEvent, Future[Option[MessageId]]] =
PurposeEventsConverter.getMessageId(catalogManagementService, dynamoIndexService) orElse
PurposeEventsConverter.getMessageId(catalogProcessService, dynamoIndexService) orElse
AgreementEventsConverter.getMessageId(dynamoIndexService) orElse
CatalogEventsConverter.getMessageId(dynamoIndexService)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ import scala.concurrent.ExecutionContextExecutor

package object service {

type CatalogManagementInvoker = catalogmanagement.client.invoker.ApiInvoker
type CatalogManagementApi = catalogmanagement.client.api.EServiceApi
type CatalogProcessInvoker = catalogprocess.client.invoker.ApiInvoker
type CatalogProcessApi = catalogprocess.client.api.ProcessApi

object CatalogManagementInvoker {
def apply(blockingEc: ExecutionContextExecutor)(implicit actorSystem: ActorSystem): CatalogManagementInvoker =
catalogmanagement.client.invoker.ApiInvoker(catalogmanagement.client.api.EnumsSerializers.all, blockingEc)
object CatalogProcessInvoker {
def apply(blockingEc: ExecutionContextExecutor)(implicit actorSystem: ActorSystem): CatalogProcessInvoker =
catalogprocess.client.invoker.ApiInvoker(catalogprocess.client.api.EnumsSerializers.all, blockingEc)
}

object CatalogManagementApi {
def apply(baseUrl: String): CatalogManagementApi = catalogmanagement.client.api.EServiceApi(baseUrl)
object CatalogProcessApi {
def apply(baseUrl: String): CatalogProcessApi = catalogprocess.client.api.ProcessApi(baseUrl)
}
}
2 changes: 1 addition & 1 deletion src/test/resources/application-test.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ notifier {
services {
agreement-management = ${AGREEMENT_MANAGEMENT_URL}
purpose-management = ${PURPOSE_MANAGEMENT_URL}
catalog-management = ${CATALOG_MANAGEMENT_URL}
catalog-process = ${CATALOG_PROCESS_URL}
}

dynamo {
Expand Down
Loading