Clean Base64 from database
continuous-integration/drone/push Build is passing Details

pull/17/head
luevard 1 year ago
parent 73d33cc5f0
commit 9069432225

@ -14,5 +14,5 @@ interface UserDataSource {
fun canHaveDailyGift(username: String): Boolean
fun addImage(userid: String, image: ByteArray)
fun removeImage(userid: String)
fun getImage(userid: String): ByteArray?
fun getImage(userid: String): String?
}

@ -55,7 +55,6 @@ class MockBetDataSource(private val mockData: MockDataSource.MockData) : BetData
}.map { it }
}
}
}
override fun getBetById(id: String): Bet? =

@ -65,7 +65,7 @@ class MockUserDataSource(private val mockData: MockDataSource.MockData) : UserDa
TODO("Not yet implemented")
}
override fun getImage(userid: String): ByteArray? {
override fun getImage(userid: String): String? {
TODO("Not yet implemented")
}

@ -92,7 +92,18 @@ class PostgresUserDataSource(private val database: Database) : UserDataSource {
database.usersimage.removeIf { it.id eq userid }
}
override fun getImage(userid: String): ByteArray? =
database.usersimage.find { it.id eq userid }?.image
/*override fun getImage(userid: String): ByteArray? =
database.usersimage.find { it.id eq userid }?.image*/
override fun getImage(userid: String): String? {
val resultSet = database.executeWithResult("SELECT encode(image, 'base64') AS image FROM userimage WHERE user_id = '${userid}'")?: return null
if (resultSet.next()) {
val base64Image: String? = resultSet.getString("image")
if (base64Image != null) {
return base64Image
}
}
return null
}
}

@ -111,16 +111,14 @@ fun Application.userRouter() {
get("/users/images/{fileName}") {
val fileName = call.parameters["fileName"]
val urlfile = "images/$fileName"
val file = File("$urlfile.png")
if (file.exists()) {
call.respondFile(file)
} else {
val imageBytes = userDataSource.getImage(fileName.toString())
if (imageBytes != null) {
imageManagerUser.saveImage(urlfile, imageBytes.toString())
imageManagerUser.saveImage(urlfile, imageBytes)
call.respondFile(file)
} else {
call.respond(HttpStatusCode.NotFound, "File not found")

@ -4,8 +4,10 @@ import java.io.File
import java.util.*
class ImageManager {
fun saveImage(urlfile: String, base64Image: String): ByteArray? {
val imageBytes = Base64.getDecoder().decode(base64Image)
val cleanedBase64Image = cleanBase64(base64Image)
val imageBytes = Base64.getDecoder().decode(cleanedBase64Image)
val file = File("${urlfile}.png")
file.parentFile.mkdirs()
file.writeBytes(imageBytes)
@ -19,4 +21,6 @@ class ImageManager {
}
fun imageAvailable(urlfile: String) = File(urlfile).exists()
fun cleanBase64(base64Image: String) = base64Image.replace("\n", "").replace("\r", "")
}
Loading…
Cancel
Save