62 lines
No EOL
1.5 KiB
Nim
62 lines
No EOL
1.5 KiB
Nim
import
|
|
mike,
|
|
nimja,
|
|
strutils,
|
|
json,
|
|
strformat,
|
|
./lib/mics,
|
|
./db/users,
|
|
./model/model,
|
|
./controller/signup
|
|
|
|
"/^path" -> before[post, get]:
|
|
var path2 = ctx.pathParams["path"]
|
|
echo(fmt"[mike] before request: {ctx.httpMethod} {path2}")
|
|
|
|
"/" -> [get, post]:
|
|
var
|
|
user = parseJson(ctx.cookies.getOrDefault("user", ""))
|
|
user2 = to(user, User)
|
|
compileTemplateFile(getScriptDir() / "view" / "index.nimja")
|
|
|
|
"/shop" -> get:
|
|
compileTemplateFile(getScriptDir() / "view" / "shop.nimja")
|
|
|
|
"/contact" -> get:
|
|
compileTemplateFile(getScriptDir() / "view" / "contact.nimja")
|
|
|
|
"/cart" -> get:
|
|
compileTemplateFile(getScriptDir() / "view" / "cart.nimja")
|
|
|
|
"/checkout" -> get:
|
|
compileTemplateFile(getScriptDir() / "view" / "checkout.nimja")
|
|
|
|
"/shop/:id" -> get:
|
|
var prodId = capitalizeAscii(ctx.pathParams["id"])
|
|
compileTemplateFile(getScriptDir() / "view" / "shop-detail.nimja")
|
|
|
|
"/testimonial" -> get:
|
|
compileTemplateFile(getScriptDir() / "view" / "testimonial.nimja")
|
|
|
|
"/signup" -> [get, post]: ctx.signup()
|
|
|
|
"/login" -> get:
|
|
compileTemplateFile(getScriptDir() / "view" / "login.nimja")
|
|
"/login" -> post:
|
|
var em =ctx.urlForm["email"]
|
|
var ps=ctx.urlForm["password"]
|
|
let conn=newTurso()
|
|
var temp=getUser(conn, em, ps)
|
|
if temp[0]:
|
|
echo $(%* temp[1])
|
|
ctx &= initCookie("user", $(%* temp[1]))
|
|
ctx.redirect("/")
|
|
else:
|
|
echo "user not found"
|
|
|
|
"/:path" -> get:
|
|
compileTemplateFile(getScriptDir() / "view" / "404.nimja")
|
|
|
|
servePublic("src/public", "/static")
|
|
|
|
run() |