Skip to content
This repository has been archived by the owner on May 5, 2022. It is now read-only.

Commit

Permalink
Merge pull request #266 from echo-webkom/fix/spot-range-insert
Browse files Browse the repository at this point in the history
🐛 Fix spot range not inserted in database
  • Loading branch information
bakseter authored Mar 3, 2022
2 parents 6d38769 + 0a99896 commit 18c1914
Showing 1 changed file with 28 additions and 6 deletions.
34 changes: 28 additions & 6 deletions src/main/kotlin/no/uib/echo/schema/Happening.kt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ data class HappeningJson(

data class HappeningSlugJson(val slug: String, val type: HAPPENING_TYPE)

data class HappeningResponseJson(val registrationsLink: String, val message: String)
data class HappeningResponseJson(val registrationsLink: String?, val message: String)

object Happening : Table() {
val slug: Column<String> = text("slug").uniqueIndex()
Expand Down Expand Up @@ -78,6 +78,13 @@ suspend fun insertOrUpdateHappening(
sendEmail: Boolean,
sendGridApiKey: String?
): Pair<HttpStatusCode, HappeningResponseJson> {
if (newHappening.spotRanges.isEmpty()) {
return Pair(
HttpStatusCode.BadRequest,
HappeningResponseJson(null, "No spot range given for happening with slug ${newHappening.slug}.")
)
}

val happening = selectHappening(newHappening.slug)
val registrationsLink =
(1..REG_LINK_LENGTH).map {
Expand Down Expand Up @@ -172,11 +179,26 @@ suspend fun insertOrUpdateHappening(
it[registrationDate] = DateTime(newHappening.registrationDate)
it[organizerEmail] = newHappening.organizerEmail.lowercase()
}
newHappening.spotRanges.map { range ->
SpotRange.update({ SpotRange.happeningSlug eq newHappening.slug }) {
it[spots] = range.spots
it[minDegreeYear] = range.minDegreeYear
it[maxDegreeYear] = range.maxDegreeYear

val spotRangeExists = SpotRange.select {
SpotRange.happeningSlug eq newHappening.slug
}.firstOrNull() != null

if (spotRangeExists) {
newHappening.spotRanges.map { range ->
SpotRange.update({ SpotRange.happeningSlug eq newHappening.slug }) {
it[spots] = range.spots
it[minDegreeYear] = range.minDegreeYear
it[maxDegreeYear] = range.maxDegreeYear
}
}
} else {
newHappening.spotRanges.map { range ->
SpotRange.insert {
it[spots] = range.spots
it[minDegreeYear] = range.minDegreeYear
it[maxDegreeYear] = range.maxDegreeYear
}
}
}
}
Expand Down

0 comments on commit 18c1914

Please sign in to comment.