From b0486686ffc3fa44fff640c29c01097cf099f552 Mon Sep 17 00:00:00 2001 From: array-in-a-matrix Date: Wed, 24 Jul 2024 14:31:12 -0400 Subject: [PATCH] use config file --- src/database.nim | 6 +++--- src/routes/delete.nim | 9 +++++---- src/routes/upload.nim | 5 +++-- src/server.nim | 6 ++---- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/database.nim b/src/database.nim index 4a91160..a17d916 100644 --- a/src/database.nim +++ b/src/database.nim @@ -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 diff --git a/src/routes/delete.nim b/src/routes/delete.nim index 30da8af..5e81410 100644 --- a/src/routes/delete.nim +++ b/src/routes/delete.nim @@ -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" diff --git a/src/routes/upload.nim b/src/routes/upload.nim index fe83e06..2331c08 100644 --- a/src/routes/upload.nim +++ b/src/routes/upload.nim @@ -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) diff --git a/src/server.nim b/src/server.nim index 44e5d97..2927559 100644 --- a/src/server.nim +++ b/src/server.nim @@ -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: