mirror of
https://github.com/glimpse-app/server.git
synced 2025-04-02 10:52:45 -04:00
move registeration endpoint to its own file
This commit is contained in:
parent
5b63e777b0
commit
4fd51c0367
2 changed files with 36 additions and 23 deletions
28
src/routes/newUser.nim
Normal file
28
src/routes/newUser.nim
Normal file
|
@ -0,0 +1,28 @@
|
|||
# import libs
|
||||
import std/[strutils, os, logging]
|
||||
import jester
|
||||
import norm/[model, sqlite]
|
||||
import ../types/[users, files]
|
||||
import checksums/sha3
|
||||
import ../database
|
||||
|
||||
proc createNewUserRoute*() =
|
||||
router newUser:
|
||||
#[
|
||||
request parameters:
|
||||
username - string - required
|
||||
email - string - required
|
||||
password - string - required
|
||||
returns:
|
||||
success - token - new login token
|
||||
fail - 403 - not all required parameters are provided
|
||||
]#
|
||||
post "/api/v1/newUser":
|
||||
# creates new user with provided info
|
||||
# TODO: sanitization + check if username and email are unique
|
||||
if @"username".isEmptyOrWhitespace() or @"email".isEmptyOrWhitespace() or @"password".isEmptyOrWhitespace():
|
||||
resp Http403, "Not all required parameters are provided."
|
||||
|
||||
var user = newUser(@"username", @"email", @"password")
|
||||
db.insert(user)
|
||||
resp Http200, user.token
|
|
@ -4,35 +4,16 @@ import jester
|
|||
import norm/[model, sqlite]
|
||||
import types/[users, files]
|
||||
import checksums/sha3
|
||||
import database
|
||||
|
||||
addHandler newConsoleLogger(fmtStr = "")
|
||||
|
||||
# using sqlite as it makes setup faster
|
||||
# once project is stable enough this will switch to postgresql
|
||||
let db = open("storage.db", "", "", "")
|
||||
db.createTables(newFile()) # file objects require a user object, thus a tables for both are created
|
||||
import routes/[newUser]
|
||||
|
||||
createNewUserRoute()
|
||||
|
||||
routes:
|
||||
|
||||
#[
|
||||
request parameters:
|
||||
username - string - required
|
||||
email - string - required
|
||||
password - string - required
|
||||
returns:
|
||||
success - token - new login token
|
||||
fail - 403 - not all required parameters are provided
|
||||
]#
|
||||
post "/api/v1/newUser":
|
||||
# creates new user with provided info
|
||||
# TODO: sanitization + check if username and email are unique
|
||||
if @"username".isEmptyOrWhitespace() or @"email".isEmptyOrWhitespace() or @"password".isEmptyOrWhitespace():
|
||||
resp Http403, "Not all required parameters are provided."
|
||||
|
||||
var user = newUser(@"username", @"email", @"password")
|
||||
db.insert(user)
|
||||
resp Http200, user.token
|
||||
|
||||
#[
|
||||
request parameters:
|
||||
token - string - required via header
|
||||
|
@ -204,3 +185,7 @@ routes:
|
|||
|
||||
# db.delete(user)
|
||||
# resp Http200, "User has been deleted."
|
||||
|
||||
# template respJson*(node: JsonNode) =
|
||||
# resp $node, "application/json"
|
||||
extend newUser, ""
|
Loading…
Add table
Reference in a new issue