Skip to content

Commit

Permalink
CU-85ztcr9ah | Bug: Song iswc and ipis fields not getting populated
Browse files Browse the repository at this point in the history
  • Loading branch information
wlara committed Jun 27, 2023
1 parent 3f84c16 commit 9905885
Show file tree
Hide file tree
Showing 9 changed files with 40 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package io.newm.server.database.migration

import org.flywaydb.core.api.migration.BaseJavaMigration
import org.flywaydb.core.api.migration.Context
import org.jetbrains.exposed.sql.transactions.transaction
import java.sql.SQLException

@Suppress("unused")
class V26__SongsUpdates : BaseJavaMigration() {
override fun migrate(context: Context?) {
transaction {
try {
exec("ALTER TABLE songs RENAME COLUMN ipi TO ipis")
} catch (e: SQLException) {
println("Column 'ipi' doesn't exist")
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -561,13 +561,13 @@ class MintingRepositoryImpl(
}
)
}
if (!song.ipi.isNullOrEmpty()) {
if (!song.ipis.isNullOrEmpty()) {
add(
plutusDataMapItem {
mapItemKey = "ipi".toPlutusData()
mapItemValue = plutusData {
list = plutusDataList {
listItem.addAll(song.ipi.map { it.toPlutusData() })
listItem.addAll(song.ipis.map { it.toPlutusData() })
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class SongEntity(id: EntityID<UUID>) : UUIDEntity(id) {
var barcodeNumber: String? by SongTable.barcodeNumber
var isrc: String? by SongTable.isrc
var iswc: String? by SongTable.iswc
var ipi: Array<String>? by SongTable.ipi
var ipis: Array<String>? by SongTable.ipis
var releaseDate: LocalDate? by SongTable.releaseDate
var publicationDate: LocalDate? by SongTable.publicationDate
var lyricsUrl: String? by SongTable.lyricsUrl
Expand Down Expand Up @@ -82,7 +82,8 @@ class SongEntity(id: EntityID<UUID>) : UUIDEntity(id) {
barcodeType = barcodeType,
barcodeNumber = barcodeNumber,
isrc = isrc,
ipi = ipi?.toList(),
iswc = iswc,
ipis = ipis?.toList(),
releaseDate = releaseDate,
publicationDate = publicationDate,
lyricsUrl = lyricsUrl,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ object SongTable : UUIDTable(name = "songs") {
val barcodeNumber: Column<String?> = text("barcode_number").nullable()
val isrc: Column<String?> = text("isrc").nullable()
val iswc: Column<String?> = text("iswc").nullable()
val ipi: Column<Array<String>?> = textArray("ipi").nullable()
val ipis: Column<Array<String>?> = textArray("ipis").nullable()
val releaseDate: Column<LocalDate?> = date("release_date").nullable()
val publicationDate: Column<LocalDate?> = date("publication_date").nullable()
val lyricsUrl: Column<String?> = text("lyrics_url").nullable()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ data class Song(
val barcodeNumber: String? = null,
val isrc: String? = null,
val iswc: String? = null,
val ipi: List<String>? = null,
val ipis: List<String>? = null,
@Serializable(with = LocalDateSerializer::class)
val releaseDate: LocalDate? = null,
@Serializable(with = LocalDateSerializer::class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ internal class SongRepositoryImpl(
barcodeType = song.barcodeType
barcodeNumber = song.barcodeNumber
isrc = song.isrc
ipi = song.ipi?.toTypedArray()
iswc = song.iswc
ipis = song.ipis?.toTypedArray()
releaseDate = song.releaseDate
lyricsUrl = song.lyricsUrl?.asValidUrl()
}.id.value
Expand Down Expand Up @@ -107,7 +108,7 @@ internal class SongRepositoryImpl(
barcodeNumber?.let { entity.barcodeNumber = it }
isrc?.let { entity.isrc = it }
iswc?.let { entity.iswc = it }
ipi?.let { entity.ipi = it.toTypedArray() }
ipis?.let { entity.ipis = it.toTypedArray() }
releaseDate?.let { entity.releaseDate = it }
lyricsUrl?.let { entity.lyricsUrl = it.asValidUrl() }
if (requesterId == null) {
Expand Down Expand Up @@ -327,7 +328,7 @@ internal class SongRepositoryImpl(
barcodeNumber?.checkLength("barcodeNumber")
isrc?.checkLength("isrc")
iswc?.checkLength("iswc")
ipi?.forEachIndexed { index, ipi -> ipi.checkLength("ipi$index") }
ipis?.forEachIndexed { index, ipi -> ipi.checkLength("ipi$index") }
nftName?.checkLength("nftName")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@ open class BaseApplicationTests {
copyright = song.copyright
parentalAdvisory = song.parentalAdvisory
isrc = song.isrc
ipi = song.ipi?.toTypedArray()
iswc = song.iswc
ipis = song.ipis?.toTypedArray()
releaseDate = song.releaseDate
lyricsUrl = song.lyricsUrl?.asValidUrl()
arweaveClipUrl = song.arweaveClipUrl
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ class SongRoutesTests : BaseApplicationTests() {
assertThat(song.barcodeType).isEqualTo(testSong1.barcodeType)
assertThat(song.barcodeNumber).isEqualTo(testSong1.barcodeNumber)
assertThat(song.isrc).isEqualTo(testSong1.isrc)
assertThat(song.ipi).isEqualTo(testSong1.ipi)
assertThat(song.ipis).isEqualTo(testSong1.ipis)
assertThat(song.releaseDate).isEqualTo(testSong1.releaseDate)
assertThat(song.lyricsUrl).isEqualTo(testSong1.lyricsUrl)
assertThat(song.mintingStatus).isEqualTo(MintingStatus.Undistributed)
Expand Down Expand Up @@ -446,7 +446,7 @@ class SongRoutesTests : BaseApplicationTests() {
assertThat(song2.barcodeType).isEqualTo(testSong2.barcodeType)
assertThat(song2.barcodeNumber).isEqualTo(testSong2.barcodeNumber)
assertThat(song2.isrc).isEqualTo(testSong2.isrc)
assertThat(song2.ipi).isEqualTo(testSong2.ipi)
assertThat(song2.ipis).isEqualTo(testSong2.ipis)
assertThat(song2.releaseDate).isEqualTo(testSong2.releaseDate)
assertThat(song2.lyricsUrl).isEqualTo(testSong2.lyricsUrl)
assertThat(song2.mintingStatus).isEqualTo(MintingStatus.Undistributed)
Expand Down Expand Up @@ -878,7 +878,8 @@ fun addSongToDatabase(
barcodeType = SongBarcodeType.values()[offset % SongBarcodeType.values().size]
barcodeNumber = "barcodeNumber$offset"
isrc = "isrc$offset"
ipi = arrayOf("ipi${offset}_0", "ipi${offset}_1")
iswc = "iswc$offset"
ipis = arrayOf("ipi${offset}_0", "ipi${offset}_1")
releaseDate = LocalDate.of(2023, 1, offset % 31 + 1)
publicationDate = LocalDate.of(2023, 1, offset % 31 + 1)
lyricsUrl = "https://newm.io/lyrics$offset"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ val testSong1 = Song(
barcodeType = SongBarcodeType.Upc,
barcodeNumber = "Barcode 1",
isrc = "Song 1 isrc",
ipi = listOf("Song 1 ipi 0", "Song 1 ipi 1"),
iswc = "Song 1 iswc",
ipis = listOf("Song 1 ipi 0", "Song 1 ipi 1"),
releaseDate = LocalDate.of(2023, 1, 1),
lyricsUrl = "https://projectnewm.io/lirycs1.txt",
)
Expand All @@ -37,7 +38,8 @@ val testSong2 = Song(
barcodeType = SongBarcodeType.Ean,
barcodeNumber = "Barcode 2",
isrc = "Song 2 isrc",
ipi = listOf("Song 2 ipi 0", "Song 2 ipi 1"),
iswc = "Song 2 iswc",
ipis = listOf("Song 2 ipi 0", "Song 2 ipi 1"),
releaseDate = LocalDate.of(2023, 2, 2),
lyricsUrl = "https://projectnewm.io/lirycs2.txt",
)

0 comments on commit 9905885

Please sign in to comment.