wishlists + statics + some fixes
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
package space.luminic.budgerapp.services
|
||||
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.reactor.awaitSingleOrNull
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.springframework.http.codec.multipart.FilePart
|
||||
import org.springframework.stereotype.Service
|
||||
import space.luminic.budgerapp.configs.StorageConfig
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Paths
|
||||
import java.util.*
|
||||
|
||||
@Service
|
||||
class StaticService(private val storageConfig: StorageConfig) {
|
||||
|
||||
suspend fun saveFile(spaceId: String, wishListItemId: String, filePart: FilePart): String {
|
||||
|
||||
val folder = Paths.get(storageConfig.rootLocation.toString(), spaceId, "wishlists", wishListItemId)
|
||||
withContext(Dispatchers.IO) {
|
||||
Files.createDirectories(folder)
|
||||
}
|
||||
val filename = UUID.randomUUID().toString().split("-")[0] + "." + filePart.filename().split(".").last()
|
||||
val filePath =
|
||||
folder.resolve(filename)
|
||||
filePart.transferTo(filePath).awaitSingleOrNull()
|
||||
return filePath.toString()
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user