15th Commit

This commit is contained in:
Aritra Banik 2024-02-06 03:09:34 +05:30
parent c02afc5321
commit 83aa2b543d
6 changed files with 44 additions and 5 deletions

Binary file not shown.

BIN
src/a3

Binary file not shown.

View File

@ -79,6 +79,34 @@ import
compileTemplateFile(getScriptDir() / "a3a" / "cart.nimja") compileTemplateFile(getScriptDir() / "a3a" / "cart.nimja")
"/add-to-cart" -> get:
var
email: string
password: string
db = newDatabase()
try:
email = ctx.cookies["email"]
password = ctx.cookies["password"]
except:
email = ""
password = ""
if email == "":
ctx.redirect("/login")
else:
var
cart: Cart
cart.userId = db.getUserId(email, password)
cart.productId = db.getProductByName(ctx.queryParams["prod"]).id
db.addToCart(cart)
ctx.redirect("/cart")
"/checkout" -> get: "/checkout" -> get:
var var
@ -166,7 +194,7 @@ import
productName = ctx.queryParams["prod"] productName = ctx.queryParams["prod"]
product = db.getProduct(productName) product = db.getProductByName(productName)
products: seq[Products] products: seq[Products]

View File

@ -99,14 +99,14 @@
<div class="input-group-prepend"> <div class="input-group-prepend">
<button class="btn btn-outline-primary js-btn-minus" type="button">&minus;</button> <button class="btn btn-outline-primary js-btn-minus" type="button">&minus;</button>
</div> </div>
<input type="text" class="form-control text-center" value="1" placeholder="" aria-label="Example text with button addon" aria-describedby="button-addon1"> <input type="text" id="quantity" class="form-control text-center" value="1" placeholder="" aria-label="Example text with button addon" aria-describedby="button-addon1">
<div class="input-group-append"> <div class="input-group-append">
<button class="btn btn-outline-primary js-btn-plus" type="button">&plus;</button> <button class="btn btn-outline-primary js-btn-plus" type="button">&plus;</button>
</div> </div>
</div> </div>
</div> </div>
<p><a href="/cart" class="buy-now btn btn-sm btn-primary">Add To Cart</a></p> <p><a href="#" class="buy-now btn btn-sm btn-primary" onclick="addToCart()">Add To Cart</a></p>
</div> </div>
</div> </div>
@ -188,4 +188,12 @@
</div> </div>
</div> </div>
</div> </div>
<script>
function addToCart() {
var quantity = document.getElementById("quantity").value;
window.location.href = '/add-to-cart'
+ '?prod={{productName}}&quantity='
+ quantity;
}
</script>
{% endblock %} {% endblock %}

View File

@ -38,3 +38,6 @@ proc getUserCart*(db: DbConn, userId: int): seq[Cart] =
cartDetails.add(product) cartDetails.add(product)
return cartDetails return cartDetails
proc addToCart*(db: DbConn, cart: Cart) =
db.exec(sql"INSERT INTO cart (user_id, product_id, quantity) VALUES (?, ?, ?)", cart.userId, cart.productId, cart.quantity)

View File

@ -49,7 +49,7 @@ proc availableProducts*(db: DbConn): seq[Products]=
return products return products
proc getProduct*(db: DbConn, name: string): Products = proc getProductByName*(db: DbConn, name: string): Products =
var row = db.getRow(sql"SELECT * FROM products WHERE name = ?", name) var row = db.getRow(sql"SELECT * FROM products WHERE name = ?", name)
var product: Products var product: Products
product.id = parseInt(row[0]) product.id = parseInt(row[0])