Add Ormin ORM support for BaraDB (Nim client)
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
import asyncdispatch, times
|
||||
import jester
|
||||
import database, model, views/[user, general]
|
||||
|
||||
proc userLogin(request: Request, user: var User): bool =
|
||||
if request.cookies.hasKey("username"):
|
||||
let username = request.cookies["username"]
|
||||
if not findUser(username, user):
|
||||
user = (username: username, following: @[])
|
||||
create(user)
|
||||
return true
|
||||
else:
|
||||
return false
|
||||
|
||||
routes:
|
||||
get "/":
|
||||
var user: User
|
||||
if userLogin(request, user):
|
||||
let messages = findMessage(user.following & user.username)
|
||||
resp renderMain(renderTimeline(user.username, messages))
|
||||
else:
|
||||
resp renderMain(renderLogin())
|
||||
|
||||
get "/@name":
|
||||
cond '.' notin @"name"
|
||||
var user: User
|
||||
if not findUser(@"name", user):
|
||||
halt "User not found"
|
||||
let messages = findMessage([user.username])
|
||||
|
||||
var currentUser: User
|
||||
if userLogin(request, currentUser):
|
||||
resp renderMain(renderUser(user, currentUser) & renderMessages(messages))
|
||||
else:
|
||||
resp renderMain(renderUser(user) & renderMessages(messages))
|
||||
|
||||
post "/follow":
|
||||
var follower, target: User
|
||||
if not findUser(@"follower", follower):
|
||||
halt "Follower not found"
|
||||
if not findUser(@"target", target):
|
||||
halt "Follow target not found"
|
||||
follow(follower, target)
|
||||
redirect uri("/" & @"target")
|
||||
|
||||
post "/login":
|
||||
setCookie("username", @"username", getTime().utc() + 2.hours)
|
||||
redirect "/"
|
||||
|
||||
post "/createMessage":
|
||||
let message = (
|
||||
username: @"username",
|
||||
time: getTime().toUnix().int,
|
||||
msg: @"message"
|
||||
)
|
||||
post(message)
|
||||
redirect "/"
|
||||
|
||||
runForever()
|
||||
Reference in New Issue
Block a user