local contact = require("contact._contact") function POST(req) local form, err = req:form() if err then return 400, {error = "Failed to parse form data"} end local name = form.name or "" local email = form.email or "" local message = form.message or "" if name == "" or email == "" or message == "" then return 400, {error = "All fields are required"} end local mydb, db_err = contact.openDatabase() if db_err then return 500, {error = "Database error: " .. db_err} end local ok, init_err = contact.ensureTable(mydb) if not ok then mydb:close() return 500, {error = "Failed to initialize database"} end local timestamp = os.date("%Y-%m-%d %H:%M:%S") local ok, exec_err = mydb:exec( "INSERT INTO messages (name, email, message, created_at) VALUES (?, ?, ?, ?)", name, email, message, timestamp) mydb:close() if not ok then return 500, {error = "Failed to save message: " .. exec_err} end return 303, {redirect = "/contact?message=sent"}, {["Location"] = "/contact?message=sent"} end function GET(req) return 200, {message = "Use POST to submit a message"} end