Skip to content

Commit

Permalink
Merge branch 'develop' into 179-Claims-are-not-granted-when-inviting-…
Browse files Browse the repository at this point in the history
…participant-by-email
  • Loading branch information
yuanchen233 authored Nov 25, 2024
2 parents e38f6eb + 08aa82c commit fd28da2
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import org.springframework.data.jpa.repository.Query
import org.springframework.data.repository.query.Param
import org.springframework.stereotype.Repository
import org.springframework.transaction.annotation.Transactional
import java.time.Instant

@Repository
interface DataStreamSequenceRepository : JpaRepository<DataStreamSequence, Int> {
Expand Down Expand Up @@ -42,4 +43,15 @@ interface DataStreamSequenceRepository : JpaRepository<DataStreamSequence, Int>
fun findAllByDataStreamIds(
@Param("dataStreamIds") dataStreamIds: Collection<Int>,
): List<DataStreamSequence>

@Query(
"""
SELECT MAX(dss.updatedAt)
FROM data_stream_sequence dss
WHERE dss.dataStreamId IN :dataStreamIds
""",
)
fun findMaxUpdatedAtByDataStreamIds(
@Param("dataStreamIds") dataStreamIds: List<Int>,
): Instant?
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,21 +46,20 @@ class DataStreamService(
*/

override fun getLatestUpdatedAt(deploymentId: UUID): Instant? {
val dataStreamIds =
dataStreamIdRepository.getAllByDeploymentId(
deploymentId.toString(),
)

val dataStreams =
dataStreamSequenceRepository.findAllByDataStreamIds(
dataStreamIds.map { it.id },
)
val dataStreamIds = findDataStreamIdsByDeploymentId(deploymentId)
return findLatestUpdatedAtByDataStreamIds(dataStreamIds)
}

val sortedDataPoint =
dataStreams.sortedByDescending { it.updatedAt }.firstOrNull()
?: return null
fun findDataStreamIdsByDeploymentId(deploymentId: UUID): List<Int> {
return dataStreamIdRepository.getAllByDeploymentId(deploymentId.toString()).map { it.id }
}

return sortedDataPoint.updatedAt?.toKotlinInstant()
fun findLatestUpdatedAtByDataStreamIds(dataStreamIds: List<Int>): Instant? {
return if (dataStreamIds.isEmpty()) {
null
} else {
dataStreamSequenceRepository.findMaxUpdatedAtByDataStreamIds(dataStreamIds)?.toKotlinInstant()
}
}

/**
Expand Down

0 comments on commit fd28da2

Please sign in to comment.