8/src/hh1.nim
2024-08-20 01:43:41 +05:30

125 lines
3.5 KiB
Nim

import
mike,
nimja,
strutils,
json,
strformat,
httpClient,
dotenv,
./lib/[mics, htmx],
./db/users,
./model/[model, rand],
./controller/[signup, login, htmx]
load()
"/^path" -> before[post, get]:
var path2 = ctx.pathParams["path"]
echo(fmt"[mike] before request: {ctx.httpMethod} {path2}")
"/" -> [get, post]:
var
user1 = ctx.cookies.getOrDefault("user", "")
user = getUserFromCookie(user1)
echo user.firstName
compileTemplateFile("view" / "index.html", baseDir = getScriptDir())
"/shop" -> get:
var
user1 = ctx.cookies.getOrDefault("user", "")
user = getUserFromCookie(user1)
compileTemplateFile("view" / "shop.html", baseDir = getScriptDir())
"/contact" -> get:
var
user1 = ctx.cookies.getOrDefault("user", "")
user = getUserFromCookie(user1)
compileTemplateFile("view" / "contact.html", baseDir = getScriptDir())
"/cart" -> get:
var
user1 = ctx.cookies.getOrDefault("user", "")
user = getUserFromCookie(user1)
compileTemplateFile("view" / "cart.html", baseDir = getScriptDir())
"/checkout" -> get:
var
user1 = ctx.cookies.getOrDefault("user", "")
user = getUserFromCookie(user1)
compileTemplateFile("view" / "checkout.html", baseDir = getScriptDir())
"/shop/:id" -> get:
var
prodId = capitalizeAscii(ctx.pathParams["id"])
user1 = ctx.cookies.getOrDefault("user", "")
user = getUserFromCookie(user1)
compileTemplateFile("view" / "shop-detail.html", baseDir = getScriptDir())
"/testimonial" -> get:
var
user1 = ctx.cookies.getOrDefault("user", "")
user = getUserFromCookie(user1)
compileTemplateFile("view" / "testimonial.html", baseDir = getScriptDir())
"/signup" -> [get, post]: ctx.signup()
"/login" -> get:
var
user1 = ctx.cookies.getOrDefault("user", "")
user = getUserFromCookie(user1)
compileTemplateFile("view" / "login.html", baseDir = getScriptDir())
"/htmx/login" -> post: ctx.htmxLogin()
"/htmx/email" -> post: htmxEmail(ctx)
"/htmx/password" -> post: htmxPassword(ctx)
"/htmx/fname" -> post: htmxFirstName(ctx)
"/htmx/lname" -> post: htmxLastName(ctx)
"/htmx/phone" -> post: htmxPhone(ctx)
"/:path" -> get:
var
user1 = ctx.cookies.getOrDefault("user", "")
user = getUserFromCookie(user1)
compileTemplateFile("view" / "404.html", baseDir = getScriptDir())
# Experimental
# "/hi" -> get:
# var
# user1 = ctx.cookies.getOrDefault("user", "")
# user = getUserFromCookie(user1)
# uploadcare_pub_key = getEnv("UPLOAD_CARE_PUBLIC_KEY")
# compileTemplateFile("view" / "hi.html", baseDir = getScriptDir())
# "/delete-hi" -> post:
# var
# client = newHttpClient()
# uploadcare_pub_key = getEnv("UPLOAD_CARE_PUBLIC_KEY")
# uploadcare_secret_key = getEnv("UPLOAD_CARE_SECRET_KEY")
# client.headers = newHttpHeaders({"Authorization": fmt"Uploadcare.Simple {uploadcare_pub_key}:{uploadcare_secret_key}"})
# var form = ctx.urlForm
# echo form
# var img_uuid = form["img1"]
# echo img_uuid
# echo fmt"https://api.uploadcare.com/files/{img_uuid}/storage/"
# try:
# let response = client.request(fmt"https://api.uploadcare.com/files/{img_uuid}/storage/", httpMethod = HttpDelete)
# echo response.status
# finally:
# client.close()
# var js = parseJson("""{"status": "success"}""")
# ctx.send(js)
"/admin" -> get:
compileTemplateFile("view" / "admin" / "index.html", baseDir = getScriptDir())
"/admin/add-product" -> get:
compileTemplateFile("view" / "admin" / "addproduct.html", baseDir = getScriptDir())
servePublic("src/public", "/static")
run()