mirror of
https://github.com/0xShay/SupportMe.git
synced 2026-01-11 13:23:24 +00:00
Initial commit
This commit is contained in:
130
static/src/userTools.js
Normal file
130
static/src/userTools.js
Normal file
@@ -0,0 +1,130 @@
|
||||
const getDecodedAccessToken = () => {
|
||||
return localStorage.getItem("access_token") != null ? jwt_decode(localStorage.getItem("access_token")) : null;
|
||||
}
|
||||
|
||||
function getLoggedInUser() {
|
||||
let d_at = getDecodedAccessToken();
|
||||
if (d_at == null) return null;
|
||||
if (d_at["exp"] < (Date.now() / 1000)) {
|
||||
localStorage.removeItem("access_token");
|
||||
return null
|
||||
};
|
||||
return d_at;
|
||||
}
|
||||
|
||||
async function register() {
|
||||
|
||||
let username_input = document.getElementById("username_input");
|
||||
let email_input = document.getElementById("email_input");
|
||||
let password_input = document.getElementById("password_input");
|
||||
let passwordc_input = document.getElementById("passwordc_input");
|
||||
|
||||
if (password_input.value != passwordc_input.value) return alert("Passwords do not match.")
|
||||
|
||||
const res = await (await fetch('/register', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
redirect: 'manual',
|
||||
body: JSON.stringify({
|
||||
username: username_input.value,
|
||||
email: email_input.value,
|
||||
password: password_input.value
|
||||
})
|
||||
})).json();
|
||||
|
||||
if (res["error"] != undefined) {
|
||||
alert(res["error"]);
|
||||
} else {
|
||||
localStorage.setItem("access_token", res["access_token"]);
|
||||
window.location.href = "/home";
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
async function login() {
|
||||
|
||||
let username_input = document.getElementById("username_input");
|
||||
let password_input = document.getElementById("password_input");
|
||||
|
||||
const res = await (await fetch('/login', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
redirect: 'manual',
|
||||
body: JSON.stringify({
|
||||
username: username_input.value,
|
||||
password: password_input.value
|
||||
})
|
||||
})).json();
|
||||
|
||||
if (res["error"] != undefined) {
|
||||
alert(res["error"]);
|
||||
} else {
|
||||
localStorage.setItem("access_token", res["access_token"]);
|
||||
window.location.href = "/home";
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
async function logout() {
|
||||
|
||||
localStorage.removeItem("access_token");
|
||||
alert("Successfully logged out.");
|
||||
window.location.href = "/login";
|
||||
|
||||
}
|
||||
|
||||
async function getProfile(user_id) {
|
||||
|
||||
const res = await (await fetch('/get-profile/' + user_id, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': 'Bearer ' + localStorage.getItem("access_token")
|
||||
}
|
||||
})).json();
|
||||
|
||||
if (res["error"] != undefined) {
|
||||
alert(res["error"]);
|
||||
return false;
|
||||
} else {
|
||||
return res["user"];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
async function updateProfile() {
|
||||
|
||||
let new_password_input = document.getElementById("new_password_input");
|
||||
let new_passwordc_input = document.getElementById("new_passwordc_input");
|
||||
let old_password_input = document.getElementById("old_password_input");
|
||||
let profile_icon_select = document.getElementById("profile_icon_select");
|
||||
|
||||
if (new_password_input.value != new_passwordc_input.value) return alert("Passwords do not match.");
|
||||
if (old_password_input.value == "") return alert("Old password is needed to confirm changes.");
|
||||
|
||||
const res = await (await fetch('/profile', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': 'Bearer ' + localStorage.getItem("access_token")
|
||||
},
|
||||
redirect: 'manual',
|
||||
body: JSON.stringify({
|
||||
new_password: new_password_input.value,
|
||||
old_password: old_password_input.value,
|
||||
profile_icon: profile_icon_select.value
|
||||
})
|
||||
})).json();
|
||||
|
||||
if (res["error"] != undefined) {
|
||||
alert(res["error"]);
|
||||
} else {
|
||||
alert("Profile updated.");
|
||||
window.location.reload();
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user