diff --git a/src/database.nim b/src/database.nim index 34235b7..4a91160 100644 --- a/src/database.nim +++ b/src/database.nim @@ -1,6 +1,6 @@ -import norm/[model, sqlite] +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("storage.db", "", "", "") +let db* = open("0.0.0.0", "user", "postgres", "") db.createTables(newFile()) # file objects require a user object, thus a tables for both are created diff --git a/src/routes/auth.nim b/src/routes/auth.nim index 2e81a89..5cf6e14 100644 --- a/src/routes/auth.nim +++ b/src/routes/auth.nim @@ -1,6 +1,6 @@ import std/strutils import jester -import norm/[model, sqlite] +import norm/[model, postgres] import checksums/sha3 import ../types/users import ../[database, helpers] @@ -46,7 +46,7 @@ proc createAuthenticationRoutes*() = else: try: - db.select(user, "username = ?", H"Username") + db.select(user, """"User".username = $1""", H"Username") except NotFoundError: resp Http403, "Incorrect username or password.\n" # fails if username is wrong but mentions password to obfuscates if a user exists or not if user.password == $Sha3_512.secureHash($H"Password"): diff --git a/src/routes/delete.nim b/src/routes/delete.nim index 7814b72..30da8af 100644 --- a/src/routes/delete.nim +++ b/src/routes/delete.nim @@ -1,6 +1,6 @@ import std/[strutils, os, httpclient] import jester -import norm/[model, sqlite] +import norm/[model, postgres] import ../types/[users, files] import ../[database, helpers] @@ -61,7 +61,7 @@ proc createDeletionRoutes*() = var file = newFile() try: - db.select(file, "File.name = ?", H"Name") + db.select(file, """"File".name = $1""", H"Name") except NotFoundError: resp Http404, "File does not exist.\n" @@ -83,7 +83,7 @@ proc createDeletionRoutes*() = var listOfFiles = @[newFile()] try: - db.select(listOfFiles, "File.owner = ?", user.id) + db.select(listOfFiles, """"File".owner = $1""", user.id) except NotFoundError: # this error does not occur even if no files exist resp Http404, "Files do not exist.\n" diff --git a/src/routes/download.nim b/src/routes/download.nim index a5211ed..b05d599 100644 --- a/src/routes/download.nim +++ b/src/routes/download.nim @@ -1,6 +1,6 @@ import std/strutils import jester -import norm/sqlite +import norm/postgres import ../types/[users, files] import ../[database, helpers] @@ -20,7 +20,7 @@ proc createDownloadRoutes*() = var file = newFile() try: - db.select(file, "File.name = ?", H"Name") + db.select(file, """"File".name = $1""", H"Name") except NotFoundError: resp Http404, "File does not exist.\n" @@ -38,7 +38,7 @@ proc createDownloadRoutes*() = var listOfFiles = @[newFile()] try: - db.select(listOfFiles, "File.owner = ?", user.id) + db.select(listOfFiles, """"File".owner = $1""", user.id) except NotFoundError: resp Http404, "Files does not exist.\n" diff --git a/src/routes/update.nim b/src/routes/update.nim index b5d44ae..5c67430 100644 --- a/src/routes/update.nim +++ b/src/routes/update.nim @@ -1,6 +1,6 @@ import std/[strutils, os] import jester -import norm/sqlite +import norm/postgres import ../types/[users, files] import ../[database, helpers] @@ -33,13 +33,13 @@ proc createUpdateRoutes*() = var file = newFile() try: - db.select(file, "File.name = ?", oldName) + db.select(file, """"File".name = $1""", oldName) except NotFoundError: resp Http404, "File does not exist.\n" block FileDoesNotExist: try: - db.select(file, "File.name = ?", newName) + db.select(file, """"File".name = $1""", newName) except NotFoundError: break FileDoesNotExist resp Http403, "File with that name already exists.\n" diff --git a/src/routes/upload.nim b/src/routes/upload.nim index 7792bfc..fe83e06 100644 --- a/src/routes/upload.nim +++ b/src/routes/upload.nim @@ -1,6 +1,6 @@ import std/[strutils, os, json] import jester -import norm/[model, sqlite] +import norm/[model, postgres] import ../types/[users, files] import ../[database, helpers] diff --git a/src/server.nim b/src/server.nim index 1868213..75f4ee8 100644 --- a/src/server.nim +++ b/src/server.nim @@ -1,6 +1,6 @@ import std/[strutils, os, json, asyncdispatch, httpclient] import jester -import norm/[model, sqlite] +import norm/[model, postgres] import checksums/sha3 import ./types/[users, files] import ./[database, helpers] diff --git a/src/types/users.nim b/src/types/users.nim index 316de01..3fd89c9 100644 --- a/src/types/users.nim +++ b/src/types/users.nim @@ -1,5 +1,5 @@ import std/oids -import norm/[model, sqlite] +import norm/[model, postgres] import checksums/sha3 # define user object @@ -13,7 +13,7 @@ type User* = ref object of Model # checks if the provided token exists in the database proc validToken*(db: DbConn, user: var User, token: string): bool = try: - db.select(user, "token = ?", token) + db.select(user, """"token" = $1""", token) return true except NotFoundError: return false