mirror of
https://github.com/glimpse-app/server.git
synced 2025-04-02 10:52:45 -04:00
logging
This commit is contained in:
parent
a0be08d559
commit
918ae510cc
5 changed files with 44 additions and 34 deletions
|
@ -16,7 +16,7 @@ proc createAuthenticationRoutes*() =
|
||||||
returns: JSON
|
returns: JSON
|
||||||
]#
|
]#
|
||||||
post "/api/v1/newUser":
|
post "/api/v1/newUser":
|
||||||
info "Endpoint used.\n" & reqInfo
|
debug "Endpoint used.\n" & reqInfo
|
||||||
|
|
||||||
if @"username".isEmptyOrWhitespace() or @"email".isEmptyOrWhitespace() or
|
if @"username".isEmptyOrWhitespace() or @"email".isEmptyOrWhitespace() or
|
||||||
@"password".isEmptyOrWhitespace():
|
@"password".isEmptyOrWhitespace():
|
||||||
|
@ -60,7 +60,7 @@ proc createAuthenticationRoutes*() =
|
||||||
returns: JSON
|
returns: JSON
|
||||||
]#
|
]#
|
||||||
get "/api/v1/newSession":
|
get "/api/v1/newSession":
|
||||||
info "Endpoint used.\n" & reqInfo
|
debug "Endpoint used.\n" & reqInfo
|
||||||
|
|
||||||
var user = newUser()
|
var user = newUser()
|
||||||
|
|
||||||
|
@ -86,6 +86,6 @@ proc createAuthenticationRoutes*() =
|
||||||
add("\"token\": \"" & user.token & "\"")
|
add("\"token\": \"" & user.token & "\"")
|
||||||
add "}]"
|
add "}]"
|
||||||
|
|
||||||
info "User's token replaced.\n" & reqInfo
|
info "Replaced token.\n" & reqInfo
|
||||||
resp Http200, userToken & "\n", "application/json"
|
resp Http200, userToken & "\n", "application/json"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import std/[strutils, os, httpclient, strformat, with]
|
import std/[strutils, os, httpclient, strformat, with, logging]
|
||||||
import jester
|
import jester
|
||||||
import norm/model
|
import norm/model
|
||||||
import norm/postgres except error
|
import norm/postgres except error
|
||||||
|
@ -13,6 +13,7 @@ proc purgeUserFiles*(token: string): Future[string] {.async.} =
|
||||||
try:
|
try:
|
||||||
return await client.deleteContent(fmt"http://{cfg.bindAddr}:{cfg.port}/api/v1/files")
|
return await client.deleteContent(fmt"http://{cfg.bindAddr}:{cfg.port}/api/v1/files")
|
||||||
finally:
|
finally:
|
||||||
|
info "Finished deleting user's files.\n"
|
||||||
client.close()
|
client.close()
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,13 +25,15 @@ proc createDeletionRoutes*(cfg: Cfg) =
|
||||||
returns: JSON
|
returns: JSON
|
||||||
]#
|
]#
|
||||||
delete "/api/v1/userCompletely":
|
delete "/api/v1/userCompletely":
|
||||||
|
debug "Endpoint used.\n" & reqInfo
|
||||||
var user = newUser()
|
var user = newUser()
|
||||||
if not db.validToken(user, H"Authorization"):
|
if not db.validToken(user, H"Authorization"):
|
||||||
resp Http403, "Invalid token.\n"
|
respErr "Invalid token.\n"
|
||||||
|
|
||||||
discard waitFor purgeUserFiles(H"Authorization")
|
discard waitFor purgeUserFiles(H"Authorization")
|
||||||
db.delete(user)
|
db.delete(user)
|
||||||
|
|
||||||
|
info "User deactivated.\n" & reqInfo
|
||||||
resp Http200, "[]\n", "application/json"
|
resp Http200, "[]\n", "application/json"
|
||||||
|
|
||||||
#[
|
#[
|
||||||
|
@ -39,15 +42,16 @@ proc createDeletionRoutes*(cfg: Cfg) =
|
||||||
returns: JSON
|
returns: JSON
|
||||||
]#
|
]#
|
||||||
delete "/api/v1/user":
|
delete "/api/v1/user":
|
||||||
|
debug "Endpoint used.\n" & reqInfo
|
||||||
var user = newUser()
|
var user = newUser()
|
||||||
if not db.validToken(user, H"Authorization"):
|
if not db.validToken(user, H"Authorization"):
|
||||||
resp Http403, "Invalid token.\n"
|
respErr "Invalid token.\n"
|
||||||
|
|
||||||
db.delete(user)
|
db.delete(user)
|
||||||
|
|
||||||
|
info "User account deleted.\n" & reqInfo
|
||||||
resp Http200, "[]\n", "application/json"
|
resp Http200, "[]\n", "application/json"
|
||||||
|
|
||||||
#! endpoint crashes server
|
|
||||||
#[
|
#[
|
||||||
request parameters:
|
request parameters:
|
||||||
token - string - required via header
|
token - string - required via header
|
||||||
|
@ -55,15 +59,16 @@ proc createDeletionRoutes*(cfg: Cfg) =
|
||||||
returns: JSON
|
returns: JSON
|
||||||
]#
|
]#
|
||||||
delete "/api/v1/file":
|
delete "/api/v1/file":
|
||||||
|
debug "Endpoint used.\n" & reqInfo
|
||||||
var user = newUser()
|
var user = newUser()
|
||||||
if not db.validToken(user, H"Authorization"):
|
if not db.validToken(user, H"Authorization"):
|
||||||
resp Http403, "Invalid token.\n"
|
respErr "Invalid token.\n"
|
||||||
|
|
||||||
var file = newFile()
|
var file = newFile()
|
||||||
try:
|
try:
|
||||||
db.select(file, """"File".name = $1 AND "File".owner = $2""", H"Name", user)
|
db.select(file, """"File".name = $1 AND "File".owner = $2""", H"Name", user)
|
||||||
except NotFoundError:
|
except NotFoundError:
|
||||||
resp Http404, "File does not exist.\n"
|
respErr Http404, "File does not exist.\n"
|
||||||
|
|
||||||
removeFile(file.path)
|
removeFile(file.path)
|
||||||
db.delete(file)
|
db.delete(file)
|
||||||
|
@ -75,6 +80,8 @@ proc createDeletionRoutes*(cfg: Cfg) =
|
||||||
add "[{"
|
add "[{"
|
||||||
add("\"fileCount\": \"" & $user.fileCount & "\"")
|
add("\"fileCount\": \"" & $user.fileCount & "\"")
|
||||||
add "}]"
|
add "}]"
|
||||||
|
|
||||||
|
info "Deleted file.\n" & reqInfo
|
||||||
resp Http200, userFileCount & "\n", "application/json"
|
resp Http200, userFileCount & "\n", "application/json"
|
||||||
|
|
||||||
#[
|
#[
|
||||||
|
@ -84,15 +91,16 @@ proc createDeletionRoutes*(cfg: Cfg) =
|
||||||
200 - deleted all of the user's file from db and filesystem only
|
200 - deleted all of the user's file from db and filesystem only
|
||||||
]#
|
]#
|
||||||
delete "/api/v1/files":
|
delete "/api/v1/files":
|
||||||
|
debug "Endpoint used.\n" & reqInfo
|
||||||
var user = newUser()
|
var user = newUser()
|
||||||
if not db.validToken(user, H"Authorization"):
|
if not db.validToken(user, H"Authorization"):
|
||||||
resp Http403, "Invalid token.\n"
|
respErr "Invalid token.\n"
|
||||||
|
|
||||||
var listOfFiles = @[newFile()]
|
var listOfFiles = @[newFile()]
|
||||||
try:
|
try:
|
||||||
db.select(listOfFiles, """"File".owner = $1""", user)
|
db.select(listOfFiles, """"File".owner = $1""", user)
|
||||||
except NotFoundError: # this error does not occur even if no files exist
|
except NotFoundError: # this error does not occur even if no files exist
|
||||||
resp Http404, "Files do not exist.\n"
|
respErr Http404, "Files do not exist.\n"
|
||||||
|
|
||||||
for i in 0..(listOfFiles.len - 1):
|
for i in 0..(listOfFiles.len - 1):
|
||||||
var file = listOfFiles[i]
|
var file = listOfFiles[i]
|
||||||
|
@ -101,4 +109,5 @@ proc createDeletionRoutes*(cfg: Cfg) =
|
||||||
db.update(user)
|
db.update(user)
|
||||||
removeDir(cfg.uploadDir & user.username & "/")
|
removeDir(cfg.uploadDir & user.username & "/")
|
||||||
|
|
||||||
|
info "Deleting user's files.\n" & reqInfo
|
||||||
resp Http200, "[]\n", "application/json"
|
resp Http200, "[]\n", "application/json"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import std/strutils
|
import std/[strutils, logging]
|
||||||
import jester
|
import jester
|
||||||
import norm/postgres except error
|
import norm/postgres except error
|
||||||
import ../types/[users, files]
|
import ../types/[users, files]
|
||||||
|
@ -13,16 +13,19 @@ proc createDownloadRoutes*() =
|
||||||
returns: string/binary
|
returns: string/binary
|
||||||
]#
|
]#
|
||||||
get "/api/v1/fileByName":
|
get "/api/v1/fileByName":
|
||||||
|
debug "Endpoint used.\n" & reqInfo
|
||||||
|
|
||||||
var user = newUser()
|
var user = newUser()
|
||||||
if not db.validToken(user, H"Authorization"):
|
if not db.validToken(user, H"Authorization"):
|
||||||
resp Http403, "Invalid token.\n"
|
respErr "Invalid token.\n"
|
||||||
|
|
||||||
var file = newFile()
|
var file = newFile()
|
||||||
try:
|
try:
|
||||||
db.select(file, """"File".name = $1 AND "File".owner = $2""", H"Name", user)
|
db.select(file, """"File".name = $1 AND "File".owner = $2""", H"Name", user)
|
||||||
except NotFoundError:
|
except NotFoundError:
|
||||||
resp Http404, "File does not exist.\n"
|
respErr Http404, "File does not exist.\n"
|
||||||
|
|
||||||
|
info "User downloaded file.\n" & reqInfo
|
||||||
sendFile file.path
|
sendFile file.path
|
||||||
|
|
||||||
#[
|
#[
|
||||||
|
@ -31,15 +34,16 @@ proc createDownloadRoutes*() =
|
||||||
returns: JSON
|
returns: JSON
|
||||||
]#
|
]#
|
||||||
get "/api/v1/listOfAllFiles":
|
get "/api/v1/listOfAllFiles":
|
||||||
|
debug "Endpoint used.\n" & reqInfo
|
||||||
var user = newUser()
|
var user = newUser()
|
||||||
if not db.validToken(user, H"Authorization"):
|
if not db.validToken(user, H"Authorization"):
|
||||||
resp Http403, "Invalid token.\n"
|
respErr "Invalid token.\n"
|
||||||
|
|
||||||
var listOfFiles = @[newFile()]
|
var listOfFiles = @[newFile()]
|
||||||
try:
|
try:
|
||||||
db.select(listOfFiles, """"File".owner = $1""", user.id)
|
db.select(listOfFiles, """"File".owner = $1""", user.id)
|
||||||
except NotFoundError:
|
except NotFoundError:
|
||||||
resp Http404, "Files does not exist.\n"
|
respErr Http404, "Files does not exist.\n"
|
||||||
|
|
||||||
var allFiles: string
|
var allFiles: string
|
||||||
|
|
||||||
|
@ -48,4 +52,5 @@ proc createDownloadRoutes*() =
|
||||||
"\", \"tags\": " & file.tags & "},"
|
"\", \"tags\": " & file.tags & "},"
|
||||||
allFiles = "[" & allFiles[0..^2] & "]" # trim last comma
|
allFiles = "[" & allFiles[0..^2] & "]" # trim last comma
|
||||||
|
|
||||||
|
info "List user's file.\n" & reqInfo
|
||||||
resp Http200, allFiles & "\n", "application/json"
|
resp Http200, allFiles & "\n", "application/json"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import std/[strutils, os, with]
|
import std/[strutils, os, with, logging]
|
||||||
import jester
|
import jester
|
||||||
import norm/postgres except error
|
import norm/postgres except error
|
||||||
import ../types/[users, files]
|
import ../types/[users, files]
|
||||||
|
@ -6,25 +6,18 @@ import ../[database, helpers]
|
||||||
|
|
||||||
proc createUpdateRoutes*() =
|
proc createUpdateRoutes*() =
|
||||||
router update:
|
router update:
|
||||||
#[
|
|
||||||
request parameters:
|
|
||||||
???
|
|
||||||
returns:
|
|
||||||
???
|
|
||||||
]#
|
|
||||||
# put "/api/v1/newTags":
|
|
||||||
|
|
||||||
#[
|
#[
|
||||||
request parameters:
|
request parameters:
|
||||||
token - string - required via header
|
token - string - required via header
|
||||||
name - string - old file name via header
|
name - string - old file name via header
|
||||||
name - string - new file name via header
|
name - string - new file name via header
|
||||||
returns: JSON
|
|
||||||
]#
|
]#
|
||||||
put "/api/v1/newFileName":
|
put "/api/v1/newFileName":
|
||||||
|
debug "Endpoint used.\n" & reqInfo
|
||||||
var user = newUser()
|
var user = newUser()
|
||||||
if not db.validToken(user, H"Authorization"):
|
if not db.validToken(user, H"Authorization"):
|
||||||
resp Http403, "Invalid token.\n"
|
respErr "Invalid token.\n"
|
||||||
|
|
||||||
let
|
let
|
||||||
oldName = H"Old name"
|
oldName = H"Old name"
|
||||||
|
@ -34,14 +27,14 @@ proc createUpdateRoutes*() =
|
||||||
try:
|
try:
|
||||||
db.select(file, """"File".name = $1 AND "File".owner = $2""", oldName, user)
|
db.select(file, """"File".name = $1 AND "File".owner = $2""", oldName, user)
|
||||||
except NotFoundError:
|
except NotFoundError:
|
||||||
resp Http404, "File does not exist.\n"
|
respErr Http404, "File does not exist.\n"
|
||||||
|
|
||||||
block FileDoesNotExistCheck:
|
block FileDoesNotExistCheck:
|
||||||
try:
|
try:
|
||||||
db.select(file, """"File".name = $1 AND "File".owner = $2""", newName, user)
|
db.select(file, """"File".name = $1 AND "File".owner = $2""", newName, user)
|
||||||
except NotFoundError:
|
except NotFoundError:
|
||||||
break FileDoesNotExistCheck
|
break FileDoesNotExistCheck
|
||||||
resp Http403, "File with that name already exists.\n"
|
respErr "File with that name already exists.\n"
|
||||||
|
|
||||||
let newPath = file.path[0..^file.name.len+1] & newName
|
let newPath = file.path[0..^file.name.len+1] & newName
|
||||||
moveFile(file.path, newPath)
|
moveFile(file.path, newPath)
|
||||||
|
@ -58,5 +51,5 @@ proc createUpdateRoutes*() =
|
||||||
add("\"tags\": \"" & file.tags & "\"")
|
add("\"tags\": \"" & file.tags & "\"")
|
||||||
add "}]"
|
add "}]"
|
||||||
|
|
||||||
|
info "File renamed.\n" & reqInfo
|
||||||
resp Http200, fileInfo & "\n", "application/json"
|
resp Http200, fileInfo & "\n", "application/json"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import std/[strutils, os, json, with]
|
import std/[strutils, os, json, with, logging]
|
||||||
import jester
|
import jester
|
||||||
import norm/model
|
import norm/model
|
||||||
import norm/postgres except error
|
import norm/postgres except error
|
||||||
|
@ -16,10 +16,11 @@ proc createUploadRoutes*(cfg: Cfg) =
|
||||||
returns: JSON
|
returns: JSON
|
||||||
]#
|
]#
|
||||||
post "/api/v1/newFile":
|
post "/api/v1/newFile":
|
||||||
|
debug "Endpoint used.\n" & reqInfo
|
||||||
# fills the new `user` var with saved user data from database
|
# fills the new `user` var with saved user data from database
|
||||||
var user = newUser()
|
var user = newUser()
|
||||||
if not db.validToken(user, H"Authorization"):
|
if not db.validToken(user, H"Authorization"):
|
||||||
resp Http403, "Invalid token.\n"
|
respErr "Invalid token.\n"
|
||||||
|
|
||||||
# pull request form data arguments
|
# pull request form data arguments
|
||||||
let fileData = request.formData["file"].body
|
let fileData = request.formData["file"].body
|
||||||
|
@ -35,7 +36,7 @@ proc createUploadRoutes*(cfg: Cfg) =
|
||||||
except KeyError:
|
except KeyError:
|
||||||
fileTags = "[]"
|
fileTags = "[]"
|
||||||
except: # "except JsonError:" doesn't work for some reason
|
except: # "except JsonError:" doesn't work for some reason
|
||||||
resp Http400, "Bad JSON.\n"
|
respErr Http400, "Bad JSON.\n"
|
||||||
|
|
||||||
# create needed directories if they don't exist already
|
# create needed directories if they don't exist already
|
||||||
let directory = cfg.uploadDir & user.username & "/"
|
let directory = cfg.uploadDir & user.username & "/"
|
||||||
|
@ -49,7 +50,7 @@ proc createUploadRoutes*(cfg: Cfg) =
|
||||||
try:
|
try:
|
||||||
db.insert(file)
|
db.insert(file)
|
||||||
except DbError:
|
except DbError:
|
||||||
resp Http403, "A file with this name already exists.\n"
|
respErr "A file with this name already exists.\n"
|
||||||
db.update(user)
|
db.update(user)
|
||||||
|
|
||||||
# write the file from memory
|
# write the file from memory
|
||||||
|
@ -59,4 +60,6 @@ proc createUploadRoutes*(cfg: Cfg) =
|
||||||
add "[{"
|
add "[{"
|
||||||
add("\"fileCount\": \"" & $user.fileCount & "\"")
|
add("\"fileCount\": \"" & $user.fileCount & "\"")
|
||||||
add "}]"
|
add "}]"
|
||||||
|
|
||||||
|
info "File uploaded.\n" & reqInfo
|
||||||
resp Http200, userFileCount & "\n", "application/json"
|
resp Http200, userFileCount & "\n", "application/json"
|
||||||
|
|
Loading…
Add table
Reference in a new issue