Skip to content

Commit

Permalink
chore: use repository interface instead of db manager
Browse files Browse the repository at this point in the history
  • Loading branch information
andrea-acampora committed Mar 12, 2023
1 parent d1072cd commit 5c16b32
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 11 deletions.
20 changes: 10 additions & 10 deletions src/main/kotlin/application/service/TrackingServices.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,56 +8,56 @@

package application.service

import application.controller.manager.StaffTrackingDatabaseManager
import entity.HealthProfessionalId
import entity.RoomId
import entity.TrackingData
import usecase.repository.TrackingDataRepository
import java.time.Instant

/** The module with all application services. */
object TrackingServices {

/** The application service to add some [trackingData] given the [staffTrackingDatabaseManager]. */
/** The application service to add some [trackingData] given the [trackingDataRepository]. */
class AddTrackingData(
private val trackingData: TrackingData,
private val staffTrackingDatabaseManager: StaffTrackingDatabaseManager
private val trackingDataRepository: TrackingDataRepository
) : ApplicationService<Boolean> {
override fun execute(): Boolean =
staffTrackingDatabaseManager.addTrackingData(trackingData)
trackingDataRepository.addTrackingData(trackingData)
}

/** The application service to get health professionals tracking data
* given the [healthProfessionalId], the [trackingDataRepository] and [from] a certain moment. */
class GetHealthProfessionalTrackingData(
private val healthProfessionalId: HealthProfessionalId,
private val from: Instant?,
private val staffTrackingDatabaseManager: StaffTrackingDatabaseManager
private val trackingDataRepository: TrackingDataRepository
) : ApplicationService<Set<TrackingData>> {

override fun execute(): Set<TrackingData> =
staffTrackingDatabaseManager.getHealthProfessionalTrackingData(healthProfessionalId, from)
trackingDataRepository.getHealthProfessionalTrackingData(healthProfessionalId, from)
}

/** The application service to get room tracking data
* given the [roomId], the [trackingDataRepository] and [from] a certain moment. */
class GetRoomTrackingData(
private val roomId: RoomId,
private val from: Instant?,
private val staffTrackingDatabaseManager: StaffTrackingDatabaseManager
private val trackingDataRepository: TrackingDataRepository
) : ApplicationService<Set<TrackingData>> {

override fun execute(): Set<TrackingData> =
staffTrackingDatabaseManager.getRoomTrackingData(roomId, from)
trackingDataRepository.getRoomTrackingData(roomId, from)
}

/** The application service to get the latest tracking data
* given the [trackingDataRepository] and [from] a certain moment. */
class GetLatestTrackingData(
private val from: Instant?,
private val staffTrackingDatabaseManager: StaffTrackingDatabaseManager
private val trackingDataRepository: TrackingDataRepository
) : ApplicationService<Set<TrackingData>> {

override fun execute(): Set<TrackingData> =
staffTrackingDatabaseManager.getLatestTrackingData(from)
trackingDataRepository.getLatestTrackingData(from)
}
}
3 changes: 2 additions & 1 deletion src/main/kotlin/infrastructure/events/KafkaClient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

package infrastructure.events

import application.controller.StaffTrackingController
import application.controller.manager.StaffTrackingDatabaseManager
import application.service.TrackingServices
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
Expand Down Expand Up @@ -60,7 +61,7 @@ class KafkaClient(private val dbManager: StaffTrackingDatabaseManager) : EventCo
}

override fun consume(event: TrackingEventDto): Boolean =
TrackingServices.AddTrackingData(event.toTrackingData(), dbManager).execute()
TrackingServices.AddTrackingData(event.toTrackingData(), StaffTrackingController(dbManager)).execute()

companion object {
/** The topic on which consume tracking events. */
Expand Down

0 comments on commit 5c16b32

Please sign in to comment.