Skip to content

Commit

Permalink
Check must be in a transaction
Browse files Browse the repository at this point in the history
  • Loading branch information
anna-parker committed Sep 19, 2024
1 parent efdba92 commit 2debb16
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 @@ -37,8 +37,6 @@ import org.loculus.backend.model.RELEASED_DATA_RELATED_TABLES
import org.loculus.backend.model.ReleasedDataModel
import org.loculus.backend.model.SubmissionParams
import org.loculus.backend.model.SubmitModel
import org.loculus.backend.service.submission.MetadataUploadAuxTable
import org.loculus.backend.service.submission.SequenceUploadAuxTable
import org.loculus.backend.service.submission.SubmissionDatabaseService
import org.loculus.backend.utils.Accession
import org.loculus.backend.utils.IteratorStreamer
Expand Down Expand Up @@ -377,10 +375,8 @@ class SubmissionController(
headers.add(HttpHeaders.CONTENT_ENCODING, compression.compressionName)
}

val metadataInAuxTable = MetadataUploadAuxTable.select(MetadataUploadAuxTable.submissionIdColumn).count() > 0
val sequencesInAuxTable =
SequenceUploadAuxTable.select(SequenceUploadAuxTable.sequenceSubmissionIdColumn).count() > 0
if (metadataInAuxTable || sequencesInAuxTable) {
val stillProcessing = submissionDatabaseService.checkIfStillProcessingSubmittedData()
if (stillProcessing) {
return ResponseEntity.status(HttpStatus.SERVICE_UNAVAILABLE).build()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -561,7 +561,7 @@ open class SubmissionDatabaseService(
)
}.count()

// Make sure to keep in sync with countReleasedSubmissions query
// Make sure to keep in sync with countReleasedSubmissions query
fun streamReleasedSubmissions(organism: Organism): Sequence<RawProcessedData> = SequenceEntriesView.join(
DataUseTermsTable,
JoinType.LEFT,
Expand Down Expand Up @@ -950,6 +950,14 @@ open class SubmissionDatabaseService(
)
}

fun checkIfStillProcessingSubmittedData(): Boolean {
val metadataInAuxTable: Boolean =
MetadataUploadAuxTable.select(MetadataUploadAuxTable.submissionIdColumn).count() > 0
val sequencesInAuxTable: Boolean =
SequenceUploadAuxTable.select(SequenceUploadAuxTable.sequenceSubmissionIdColumn).count() > 0
return metadataInAuxTable || sequencesInAuxTable
}

fun streamOriginalMetadata(
authenticatedUser: AuthenticatedUser,
organism: Organism,
Expand Down

0 comments on commit 2debb16

Please sign in to comment.