Skip to content

Commit

Permalink
refactor(backend): avoid creating too many nested read-only maps
Browse files Browse the repository at this point in the history
This is probably a bit more efficient
  • Loading branch information
fengelniederhammer authored and corneliusroemer committed Oct 7, 2024
1 parent d117cf1 commit ccc288f
Showing 1 changed file with 28 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -84,30 +84,35 @@ open class ReleasedDataModel(
}

var metadata = rawProcessedData.processedData.metadata +
("accession" to TextNode(rawProcessedData.accession)) +
("version" to LongNode(rawProcessedData.version)) +
(HEADER_TO_CONNECT_METADATA_AND_SEQUENCES to TextNode(rawProcessedData.submissionId)) +
("accessionVersion" to TextNode(rawProcessedData.displayAccessionVersion())) +
("isRevocation" to BooleanNode.valueOf(rawProcessedData.isRevocation)) +
("submitter" to TextNode(rawProcessedData.submitter)) +
("groupId" to IntNode(rawProcessedData.groupId)) +
("groupName" to TextNode(rawProcessedData.groupName)) +
("submittedDate" to TextNode(rawProcessedData.submittedAtTimestamp.toUtcDateString())) +
("submittedAtTimestamp" to LongNode(rawProcessedData.submittedAtTimestamp.toTimestamp())) +
("releasedAtTimestamp" to LongNode(rawProcessedData.releasedAtTimestamp.toTimestamp())) +
("releasedDate" to TextNode(rawProcessedData.releasedAtTimestamp.toUtcDateString())) +
("versionStatus" to TextNode(versionStatus.name)) +
("dataUseTerms" to TextNode(currentDataUseTerms.type.name)) +
("dataUseTermsRestrictedUntil" to restrictedDataUseTermsUntil) +
("versionComment" to TextNode(rawProcessedData.versionComment))

if (backendConfig.dataUseTermsUrls != null) {
val url = when (currentDataUseTerms) {
DataUseTerms.Open -> backendConfig.dataUseTermsUrls.open
is DataUseTerms.Restricted -> backendConfig.dataUseTermsUrls.restricted
mapOf(
("accession" to TextNode(rawProcessedData.accession)),
("version" to LongNode(rawProcessedData.version)),
(HEADER_TO_CONNECT_METADATA_AND_SEQUENCES to TextNode(rawProcessedData.submissionId)),
("accessionVersion" to TextNode(rawProcessedData.displayAccessionVersion())),
("isRevocation" to BooleanNode.valueOf(rawProcessedData.isRevocation)),
("submitter" to TextNode(rawProcessedData.submitter)),
("groupId" to IntNode(rawProcessedData.groupId)),
("groupName" to TextNode(rawProcessedData.groupName)),
("submittedDate" to TextNode(rawProcessedData.submittedAtTimestamp.toUtcDateString())),
("submittedAtTimestamp" to LongNode(rawProcessedData.submittedAtTimestamp.toTimestamp())),
("releasedAtTimestamp" to LongNode(rawProcessedData.releasedAtTimestamp.toTimestamp())),
("releasedDate" to TextNode(rawProcessedData.releasedAtTimestamp.toUtcDateString())),
("versionStatus" to TextNode(versionStatus.name)),
("dataUseTerms" to TextNode(currentDataUseTerms.type.name)),
("dataUseTermsRestrictedUntil" to restrictedDataUseTermsUntil),
("versionComment" to TextNode(rawProcessedData.versionComment)),
).let {
when (backendConfig.dataUseTermsUrls) {
null -> it
else -> {
val url = when (currentDataUseTerms) {
DataUseTerms.Open -> backendConfig.dataUseTermsUrls.open
is DataUseTerms.Restricted -> backendConfig.dataUseTermsUrls.restricted
}
it + ("dataUseTermsUrl" to TextNode(url))
}
}
}
metadata += ("dataUseTermsUrl" to TextNode(url))
}

return ProcessedData(
metadata = metadata,
Expand Down

0 comments on commit ccc288f

Please sign in to comment.