return json

This commit is contained in:
array-in-a-matrix 2024-07-04 20:27:22 -04:00
parent 1cc84e88ef
commit b161be29e4

View file

@ -1,4 +1,4 @@
import std/strutils
import std/[strutils, strformat]
import jester
import norm/sqlite
import ../types/[users, files]
@ -18,13 +18,13 @@ proc createDownloadRoutes*() =
get "/api/v1/fileByName":
var user = newUser()
if not db.validToken(user, request.headers["Authorization"]):
resp Http403, "Invalid token."
resp Http403, "Invalid token.\n"
var file = newFile()
try:
db.select(file, "File.name = ?", request.headers["name"])
except NotFoundError:
resp Http404, "File does not exist"
resp Http404, "File does not exist.\n"
sendFile file.path
#[
@ -38,17 +38,18 @@ proc createDownloadRoutes*() =
get "/api/v1/listAllFiles":
var user = newUser()
if not db.validToken(user, request.headers["Authorization"]):
resp Http403, "Invalid token."
resp Http403, "Invalid token.\n"
var listOfFiles = @[newFile()]
try:
db.select(listOfFiles, "File.owner = ?", user.id)
except NotFoundError:
resp Http404, "Files does not exist"
resp Http404, "Files does not exist.\n"
# TODO: make this use JsonNode type and respond with JSON
var allFiles: string
for file in listOfFiles:
allFiles = allFiles & '\n' & $file[]
resp Http200, allFiles
for file in listOfFiles:
allFiles = allFiles & "{" & "\"name\": \"" & file.name & "\", \"tags\": " & fmt"""{file.tags}""" & "},"
allFiles = "[" & allFiles[0..^2] & "]" # trim last comma
resp Http200, allFiles & "\n", "application/json"