Skip to content

Commit

Permalink
Fix etag yet again
Browse files Browse the repository at this point in the history
  • Loading branch information
corneliusroemer committed Sep 11, 2024
1 parent a2fa5c0 commit c01aed8
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -244,12 +244,11 @@ class SubmissionController(
@RequestParam compression: CompressionFormat?,
@RequestHeader(value = HttpHeaders.IF_NONE_MATCH, required = false) ifNoneMatch: String?,
): ResponseEntity<StreamingResponseBody> {
val lastDatabaseWrite = releasedDataModel.getLastDatabaseWrite()
val formattedETag = "\"$lastDatabaseWrite\""
if (ifNoneMatch == formattedETag) return ResponseEntity.status(HttpStatus.NOT_MODIFIED).build()
val lastDatabaseWriteETag = releasedDataModel.getLastDatabaseWriteETag()
if (ifNoneMatch == lastDatabaseWriteETag) return ResponseEntity.status(HttpStatus.NOT_MODIFIED).build()

val headers = HttpHeaders()
headers.eTag = formattedETag
headers.eTag = lastDatabaseWriteETag
headers.contentType = MediaType.parseMediaType(MediaType.APPLICATION_NDJSON_VALUE)
compression?.let { headers.add(HttpHeaders.CONTENT_ENCODING, it.compressionName) }
val streamBody = streamTransactioned(compression) { releasedDataModel.getReleasedData(organism) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,14 @@ open class ReleasedDataModel(
}

@Transactional(readOnly = true)
open fun getLastDatabaseWrite(): String = UpdateTrackerTable.selectAll()
.mapNotNull { it[UpdateTrackerTable.lastTimeUpdatedDbColumn] }
.maxOrNull() ?: ""
open fun getLastDatabaseWriteETag(): String {
val lastUpdateTime = UpdateTrackerTable.selectAll()
.mapNotNull { it[UpdateTrackerTable.lastTimeUpdatedDbColumn] }
.maxOrNull()
?.replace(" ", "Z")
?: ""
return "\"$lastUpdateTime\"" // ETag must be enclosed in double quotes
}

private fun computeAdditionalMetadataFields(
rawProcessedData: RawProcessedData,
Expand Down

0 comments on commit c01aed8

Please sign in to comment.