use config file

This commit is contained in:
array-in-a-matrix 2024-07-24 14:31:12 -04:00
parent bef0102210
commit b0486686ff
4 changed files with 13 additions and 13 deletions

View file

@ -1,6 +1,6 @@
import norm/[model, postgres]
import types/[users, files]
# using sqlite as it makes setup faster
# once project is stable enough this will switch to postgresql
let db* = open("0.0.0.0", "user", "postgres", "")
import config/config
let db* = open(cfg.dbHost, cfg.dbUser, cfg.dbPassword, cfg.dbDatabase)
db.createTables(newFile()) # file objects require a user object, thus a tables for both are created

View file

@ -1,20 +1,21 @@
import std/[strutils, os, httpclient]
import std/[strutils, os, httpclient, strformat]
import jester
import norm/[model, postgres]
import ../types/[users, files]
import ../[database, helpers]
import ../config/config
proc purgeUserFiles*(token: string): Future[string] {.async.} =
var client = newAsyncHttpClient()
client.headers = newHttpHeaders({"Authorization": token})
try:
return await client.deleteContent("http://localhost:5000/api/v1/files")
return await client.deleteContent(fmt"http://{cfg.bindAddr}:{cfg.port}/api/v1/files")
finally:
client.close()
proc createDeletionRoutes*() =
proc createDeletionRoutes*(cfg: Cfg) =
router delete:
#[
request parameters:
@ -92,6 +93,6 @@ proc createDeletionRoutes*() =
db.delete(file)
user.fileCount = 0
db.update(user)
removeDir("uploads/" & user.username & "/")
removeDir(cfg.uploadDir & user.username & "/")
resp Http200, "All files have been deleted.\n"

View file

@ -3,8 +3,9 @@ import jester
import norm/[model, postgres]
import ../types/[users, files]
import ../[database, helpers]
import ../config/config
proc createUploadRoutes*() =
proc createUploadRoutes*(cfg: Cfg) =
router upload:
#[
request parameters:
@ -37,7 +38,7 @@ proc createUploadRoutes*() =
resp Http400, "Bad JSON.\n"
# create needed directories if they don't exist already
let directory = "uploads/" & user.username & "/"
let directory = cfg.uploadDir & user.username & "/"
if not dirExists(directory):
createDir(directory)

View file

@ -9,8 +9,6 @@ import ./[database, helpers]
import ./types/[users, files]
import ./routes/[auth, delete, download, upload, update]
let cfg = getConfig()
settings:
bindAddr = cfg.bindAddr
port = Port(cfg.port)
@ -19,9 +17,9 @@ settings:
appName = cfg.appName
createAuthenticationRoutes()
createDeletionRoutes()
createDeletionRoutes(cfg)
createDownloadRoutes()
createUploadRoutes()
createUploadRoutes(cfg)
createUpdateRoutes()
routes: