async function registerNewUser() { let handle = String($("#newUserHandle").val()); let name = String($("#newUserName").val()); let password = String($("#newUserPassword").val()); let passwordConfirm = String($("#newUserPasswordConfirm").val()); if (handle.length < 4) { alert('Username must be at least 4 characters long'); return; } if (password.length < 8) { alert('Password must be at least 8 characters long'); return; } if (password !== passwordConfirm) { alert("Passwords don't match!") return } const newUser = { handle: handle, name: name || 'Anonymous', password: password, enabled: true }; try { const response = await $.ajax({ url: '/api/users/create', type: 'POST', contentType: 'application/json', data: JSON.stringify(newUser), }); console.log(response); if (response.handle) { console.log('saw user created successfully') alert('New user created!') $("#userSelectBlock").empty() populateUserList() $("#userListBlock").show() $("#registerNewUserBlock").hide() $("#registerNewUserBlock input").val('') } } catch (error) { console.error('Error creating new user:', error); alert(error.responseText) } } async function loginUser() { const password = $("#userPassword").val(); const handle = $('.userSelect.selected').data('foruser'); const userInfo = { handle: handle, password: password, }; try { const response = await $.ajax({ url: '/api/users/login', type: 'POST', contentType: 'application/json', data: JSON.stringify(userInfo), }); console.log(response); if (response.handle) { console.log('successfully logged in'); alert(`logged in as ${handle}!`); $('#loader').animate({ opacity: 0 }, 300, function () { // Insert user handle/password verification code here // .finally: $('#loader').remove(); }); } } catch (error) { console.error('Error logging in:', error); alert(error.responseText); } } export async function populateUserList() { const userList = await getUserList(); const registerNewUserButtonHTML = `
` const newUserRegisterationHTML = `