Fix WebDAV deletion results
authorLanius Trolling <lanius@laniustrolling.dev>
Sun, 22 Dec 2024 19:38:47 +0000 (14:38 -0500)
committerLanius Trolling <lanius@laniustrolling.dev>
Sun, 22 Dec 2024 19:39:45 +0000 (14:39 -0500)
src/main/kotlin/info/mechyrdia/route/ResourceWebDav.kt

index 0425c378e4d3f8750f020344972390ba92dca9c3..c33a6dff505643e04cc559939b1380b17cbcfb3a 100644 (file)
@@ -177,13 +177,13 @@ suspend fun FileStorage.copyWebDav(source: StoragePath, target: StoragePath): Bo
        }
 }
 
-suspend fun FileStorage.deleteWebDav(path: StoragePath): Boolean {
+suspend fun FileStorage.deleteWebDav(path: StoragePath): Boolean? {
        return when (getType(path)) {
                StoredFileType.DIRECTORY -> deleteDir(path)
                
                StoredFileType.FILE -> eraseFile(path)
                
-               null -> false
+               null -> null
        }
 }
 
@@ -313,7 +313,7 @@ suspend fun ApplicationCall.webDavPut(path: StoragePath) {
        
        val body = receive<ByteArray>()
        
-       if (!FileStorage.instance.deleteWebDav(path))
+       if (FileStorage.instance.deleteWebDav(path) == false)
                return respond(HttpStatusCode.Conflict)
        
        if (FileStorage.instance.writeFile(path, body))
@@ -341,7 +341,7 @@ suspend fun ApplicationCall.webDavMove(path: StoragePath) {
        if (!FileStorage.instance.copyWebDav(path, dest))
                return respond(HttpStatusCode.NotFound)
        
-       if (FileStorage.instance.deleteWebDav(path))
+       if (FileStorage.instance.deleteWebDav(path) != false)
                respond(HttpStatusCode.NoContent)
        else
                respond(HttpStatusCode.Conflict)
@@ -350,7 +350,7 @@ suspend fun ApplicationCall.webDavMove(path: StoragePath) {
 suspend fun ApplicationCall.webDavDelete(path: StoragePath) {
        beforeWebDav()
        
-       if (FileStorage.instance.deleteWebDav(path))
+       if (FileStorage.instance.deleteWebDav(path) == true)
                respond(HttpStatusCode.NoContent)
        else
                respond(HttpStatusCode.NotFound)