diff --git a/backend/db.js b/backend/db.js index d71fd95..8c71563 100644 --- a/backend/db.js +++ b/backend/db.js @@ -73,7 +73,7 @@ async function insertUser(username, password){ const values = [username, password]; try { - const signupData = await db .query(query, values); + const signupData = await db.query(query, values); console.log('Account created:', signupData.rows[0].username); } catch (err) { console.error('Error inserting data:', err.stack); @@ -81,9 +81,21 @@ async function insertUser(username, password){ } } +async function changePassword(username, password) { + try { + await db.query( + 'UPDATE accounts SET password = $1 WHERE username = $2', + [password, username] + ); + } catch (err) { + console.error('Failed to update password') + throw err; + } +} module.exports = { db , insertUser, isUserExists, + changePassword }; diff --git a/frontend/js/settings.js b/frontend/js/settings.js index 380ec43..7b26e28 100644 --- a/frontend/js/settings.js +++ b/frontend/js/settings.js @@ -1,4 +1,5 @@ const logoutButton = document.getElementById('logout'); +const messageBox = document.getElementById('messageBox'); logoutButton.onclick = logout; function logout() { @@ -16,3 +17,27 @@ function logout() { console.error('Logout failed:', error); }); } + +function togglePopup() { + const overlay = document.getElementById('popupOverlay'); + overlay.classList.toggle('show'); +} + +// change password form +document.getElementById('changePasswordForm').addEventListener('submit', async (e) => { + e.preventDefault(); + const cPassword = document.getElementById('cPassword').value.trim(); + const nPassword = document.getElementById('nPassword').value.trim(); + + const jsonData = JSON.stringify({ cPassword, nPassword }); + const response = await fetch('/auth/changepassword', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: jsonData + }); + const result = await response.json(); + // display result message (successful or no) + messageBox.innerText = result.message; +}) \ No newline at end of file diff --git a/frontend/routes/settings.html b/frontend/routes/settings.html index fff0949..8e52b64 100644 --- a/frontend/routes/settings.html +++ b/frontend/routes/settings.html @@ -6,12 +6,33 @@ content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">