mirror of
https://github.com/glimpse-app/server.git
synced 2025-04-02 10:52:45 -04:00
rename file endpoint, fixes #18
This commit is contained in:
parent
08535ab939
commit
d1f3c2d673
2 changed files with 57 additions and 1 deletions
54
src/routes/update.nim
Normal file
54
src/routes/update.nim
Normal 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"
|
|
@ -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, ""
|
Loading…
Add table
Reference in a new issue