Skip to content

Commit

Permalink
feat: implement getLatestTrackingData query
Browse files Browse the repository at this point in the history
  • Loading branch information
giacomoaccursi committed Mar 13, 2023
1 parent c2ad650 commit ee7f4f6
Showing 1 changed file with 16 additions and 18 deletions.
34 changes: 16 additions & 18 deletions src/main/kotlin/infrastructure/database/MongoClient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,16 @@ package infrastructure.database

import application.controller.manager.StaffTrackingDatabaseManager
import application.presenter.database.TimeSeriesTrackingData
import application.presenter.database.TimeSeriesTrackingDataMetadata
import application.presenter.database.toTimeSeriesTrackingData
import application.presenter.database.toTrackingData
import com.mongodb.MongoException
import entity.HealthProfessionalId
import entity.RoomId
import entity.TrackingData
import entity.TrackingType
import org.litote.kmongo.KMongo
import org.litote.kmongo.div
import org.litote.kmongo.getCollection
import java.time.Instant

Expand All @@ -36,17 +41,6 @@ class MongoClient(
private val trackingDataCollection =
database.getCollection<TimeSeriesTrackingData>("tracking_data")

// override fun insertPatient(patient: Patient): Boolean =
// patientsCollection.insertOne(patient).run {
// getPatient(patient.taxCode) != null
// }
//
// override fun deletePatient(taxCode: PatientData.TaxCode): Boolean =
// patientsCollection.deleteOne(Patient::taxCode eq taxCode).deletedCount > 0
//
// override fun getPatient(taxCode: PatientData.TaxCode): Patient? =
// patientsCollection.findOne(Patient::taxCode eq taxCode)

override fun addTrackingData(trackingData: TrackingData) =
try {
trackingDataCollection.insertOne(trackingData.toTimeSeriesTrackingData()).wasAcknowledged()
Expand Down Expand Up @@ -80,13 +74,17 @@ class MongoClient(
it.toTrackingData()
}.toSet()

override fun getRoomTrackingData(roomId: RoomId, from: Instant?, to: Instant?): Set<TrackingData> {
TODO("Not yet implemented")
}

override fun getLatestTrackingData(from: Instant?, to: Instant?): Set<TrackingData> {
TODO("Not yet implemented")
}
override fun getLatestTrackingData(from: Instant?, to: Instant?): Set<TrackingData> =
if (from != null) {
trackingDataCollection.find()
.map {
it.toTrackingData()
}.filter {
it.dateTime.isAfter(from) && it.dateTime.isBefore(to)
}.toSet()
} else {
getBlockCurrentTrackingData()
}

companion object {
/**
Expand Down

0 comments on commit ee7f4f6

Please sign in to comment.