rename file endpoint, fixes #18

This commit is contained in:
array-in-a-matrix 2024-07-11 19:27:43 -04:00
parent 08535ab939
commit d1f3c2d673
2 changed files with 57 additions and 1 deletions

54
src/routes/update.nim Normal file
View file

@ -0,0 +1,54 @@
import std/[strutils, os]
import jester
import norm/sqlite
import ../types/[users, files]
import ../database
proc createUpdateRoutes*() =
router update:
#[
request parameters:
???
returns:
???
]#
# put "/api/v1/newTags":
#[
request parameters:
token - string - required via header
name - string - old file name via header
name - string - new file name via header
returns:
200 - file renamed successfully
]#
put "/api/v1/newFileName":
var user = newUser()
if not db.validToken(user, request.headers["Authorization"]):
resp Http403, "Invalid token.\n"
let
oldName = request.headers["Old name"]
newName = request.headers["New name"]
var file = newFile()
try:
db.select(file, "File.name = ?", oldName)
except NotFoundError:
resp Http404, "File does not exist.\n"
block FileDoesNotExist:
try:
db.select(file, "File.name = ?", newName)
except NotFoundError:
break FileDoesNotExist
resp Http403, "File with that name already exists.\n"
let newPath = file.path[0..^file.name.len+1] & newName
moveFile(file.path, newPath)
# rename file in db
file.path = newPath
file.name = newName
db.update(file)
resp Http200, "File renamed.\n"

View file

@ -4,12 +4,13 @@ import norm/[model, sqlite]
import checksums/sha3 import checksums/sha3
import ./types/[users, files] import ./types/[users, files]
import ./database import ./database
import ./routes/[auth, delete, download, upload] import ./routes/[auth, delete, download, upload, update]
createAuthenticationRoutes() createAuthenticationRoutes()
createDeletionRoutes() createDeletionRoutes()
createDownloadRoutes() createDownloadRoutes()
createUploadRoutes() createUploadRoutes()
createUpdateRoutes()
routes: routes:
#[ #[
@ -26,3 +27,4 @@ routes:
extend delete, "" extend delete, ""
extend download, "" extend download, ""
extend upload, "" extend upload, ""
extend update, ""