adding stuff to the onClick

This commit is contained in:
noahnghg
2025-04-20 21:18:43 -06:00
parent f7e4b49ac8
commit 25f2c3d8af
5 changed files with 39 additions and 4 deletions

View File

@@ -7,10 +7,11 @@ exports.createTransaction = async (req, res) => {
const { userID, productID, date, paymentStatus } = req.body; const { userID, productID, date, paymentStatus } = req.body;
try { try {
const formattedDate = new Date(date).toISOString().slice(0, 19).replace("T", " ");
const [result] = await db.execute( const [result] = await db.execute(
`INSERT INTO Transaction (UserID, ProductID, Date, PaymentStatus) `INSERT INTO Transaction (UserID, ProductID, Date, PaymentStatus)
VALUES (?, ?, ?, ?)`, VALUES (?, ?, ?, ?)`,
[userID, productID, date, paymentStatus] [userID, productID, formattedDate, paymentStatus]
); );
res.json({ res.json({

View File

@@ -4,6 +4,7 @@ const pool = mysql.createPool({
host: "localhost", host: "localhost",
user: "root", user: "root",
database: "Marketplace", database: "Marketplace",
password: "12345678"
}); });
module.exports = pool.promise(); module.exports = pool.promise();

View File

@@ -18,7 +18,7 @@ async function sendVerificationEmail(email, verificationCode) {
// Clean up expired verification codes (run this periodically) // Clean up expired verification codes (run this periodically)
function cleanupExpiredCodes() { function cleanupExpiredCodes() {
db_con.query( db.query(
"DELETE FROM AuthVerification WHERE Date < DATE_SUB(NOW(), INTERVAL 15 MINUTE) AND Authenticated = 0", "DELETE FROM AuthVerification WHERE Date < DATE_SUB(NOW(), INTERVAL 15 MINUTE) AND Authenticated = 0",
(err, result) => { (err, result) => {
if (err) { if (err) {

View File

@@ -417,7 +417,39 @@ const ProductDetail = () => {
<div className="relative"> <div className="relative">
<button <button
onClick={() => setShowContactOptions(!showContactOptions)} onClick={async () => {
try {
// Create a transaction record
const transactionData = {
userID: storedUser.ID, // User ID from session storage
productID: product.ProductID, // Product ID from the product details
date: new Date().toISOString(), // Current date in ISO format
paymentStatus: "Pending", // Default payment status
};
const response = await fetch("http://localhost:3030/api/transaction/createTransaction", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(transactionData),
});
const result = await response.json();
if (result.success) {
alert("Transaction created successfully!");
} else {
throw new Error(result.message || "Failed to create transaction");
}
// Toggle contact options visibility
setShowContactOptions(!showContactOptions);
} catch (error) {
console.error("Error creating transaction:", error);
alert(`Error: ${error.message}`);
}
}}
className="w-full bg-green-500 hover:bg-green-600 text-white font-medium py-3 px-4 mb-3" className="w-full bg-green-500 hover:bg-green-600 text-white font-medium py-3 px-4 mb-3"
> >
Contact Seller Contact Seller

View File

@@ -66,11 +66,12 @@ CREATE TABLE Review (
-- Transaction Entity (Many-to-One with User, Many-to-One with Product) -- Transaction Entity (Many-to-One with User, Many-to-One with Product)
CREATE TABLE Transaction ( CREATE TABLE Transaction (
TransactionID INT PRIMARY KEY, TransactionID INT NOT NULL AUTO_INCREMENT,
UserID INT, UserID INT,
ProductID INT, ProductID INT,
Date DATETIME DEFAULT CURRENT_TIMESTAMP, Date DATETIME DEFAULT CURRENT_TIMESTAMP,
PaymentStatus VARCHAR(50), PaymentStatus VARCHAR(50),
PRIMARY KEY (TransactionID),
FOREIGN KEY (UserID) REFERENCES User (UserID), FOREIGN KEY (UserID) REFERENCES User (UserID),
FOREIGN KEY (ProductID) REFERENCES Product (ProductID) FOREIGN KEY (ProductID) REFERENCES Product (ProductID)
); );