starting with asset manager
parent
ac412385bb
commit
949f87800a
|
|
@ -1,3 +1,3 @@
|
||||||
dependencies {
|
dependencies {
|
||||||
api(project(":libraries:core-api"))
|
api(project(":libraries:core-api"))
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
package de.itkl.assetmanager.interfaces
|
||||||
|
interface AssetManager {
|
||||||
|
fun assets(name: String): Assets
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
package de.itkl.assetmanager.interfaces
|
||||||
|
|
||||||
|
import de.itkl.core_api.interfaces.Resource
|
||||||
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
|
||||||
|
interface Assets : Flow<Resource> {
|
||||||
|
suspend fun store(resource: Resource)
|
||||||
|
suspend fun retrieve(name: String): Resource?
|
||||||
|
suspend fun delete(name: String)
|
||||||
|
}
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
package de.itkl.io.implementation
|
|
||||||
|
|
||||||
import de.itkl.core_api.interfaces.Resource
|
|
||||||
import io.ktor.http.*
|
|
||||||
import java.io.File
|
|
||||||
import java.io.InputStream
|
|
||||||
|
|
||||||
class FileSystemResource(private val file: File) : Resource() {
|
|
||||||
override val filename: String
|
|
||||||
get() = file.name
|
|
||||||
override val contentType: ContentType
|
|
||||||
get() = ContentType.fromFilePath(file.path).first()
|
|
||||||
override val length: Long
|
|
||||||
get() = file.length()
|
|
||||||
|
|
||||||
override fun doRead(): InputStream {
|
|
||||||
return file.inputStream()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
package de.itkl.io
|
|
||||||
|
|
||||||
import de.itkl.core_api.interfaces.NoopResourceReadDecorator
|
|
||||||
import de.itkl.core_api.interfaces.ResourceReadDecorator
|
|
||||||
import org.koin.dsl.module
|
|
||||||
|
|
||||||
val ioModule = module {
|
|
||||||
single<ResourceReadDecorator> { NoopResourceReadDecorator() }
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue