diff --git a/public/assets/js/account.js b/public/assets/js/account.js index ac4d1e8..6c8e360 100644 --- a/public/assets/js/account.js +++ b/public/assets/js/account.js @@ -1,3 +1,5 @@ +const updateServerEnvironmentForm = document.querySelector('form.server-selection'); +const serverSelectionSaveButton = document.querySelector('#save-server-selection'); const editSettingsModal = document.querySelector('.modal-wrapper#edit-settings'); const editSettingsModalButtonClose = document.getElementById('editSettingsCloseButton'); @@ -12,3 +14,42 @@ document.addEventListener('click', event => { editSettingsModal.classList.remove('hidden'); } }); + +serverSelectionSaveButton.addEventListener('click', event => { + event.preventDefault(); + const checkedInput = updateServerEnvironmentForm.querySelector('input:checked'); + + try { + const tokenType = document.cookie.split('; ').find(row => row.startsWith('token_type=')).split('=')[1]; + const accessToken = document.cookie.split('; ').find(row => row.startsWith('access_token=')).split('=')[1]; + + fetch('https://api.pretendo.cc/v1/user', { + method: 'POST', + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json', + 'Authorization': `${tokenType} ${decodeURIComponent(accessToken)}` + }, + body: JSON.stringify({ + environment: checkedInput.value + }) + }) + .then(response => response.json()) + .then(json => { + if (!json.error) { + // TODO - Make this prettier + alert('Saved server environment'); + } else { + console.log(json.error); + alert('Failed to server environment'); + } + }) + .catch(error => { + console.log(error); + // TODO - Make this prettier + alert('Failed to server environment'); + }); + } catch (error) { + alert(error); + } +}); diff --git a/public/assets/js/miieditor.js b/public/assets/js/miieditor.js index cd90a4c..d44c7c8 100644 --- a/public/assets/js/miieditor.js +++ b/public/assets/js/miieditor.js @@ -490,15 +490,15 @@ document data: miiData, } }) - }) - .then(({ status }) => { - if (status === 200) { - window.onbeforeunload = null; - window.location.assign('/account'); - } - }) - .catch(console.log); - // CHECK IF MII IS VALID SERVERSIDE + }) .then(({ status }) => { + // TODO - Make this prettier + alert('Mii has been updated. It may take some time for the cached image on the website to update'); + + if (status === 200) { + window.onbeforeunload = null; + window.location.assign('/account'); + } + }).catch(console.log); } catch (error) { alert(error); } diff --git a/src/routes/account.js b/src/routes/account.js index c521a12..1f398b0 100644 --- a/src/routes/account.js +++ b/src/routes/account.js @@ -43,8 +43,9 @@ router.get('/', requireLoginMiddleware, async (request, response) => { const { account } = request; const { pnid } = request; - renderData.tierName = pnid.get('connections.stripe.tier_name'); - renderData.tierLevel = pnid.get('connections.stripe.tier_level'); + renderData.environment = pnid.server_access_level; + renderData.tierName = pnid.connections.stripe.tier_name; + renderData.tierLevel = pnid.connections.stripe.tier_level; renderData.account = account; renderData.isTester = account.access_level > 0; diff --git a/views/account/account.handlebars b/views/account/account.handlebars index 67541a9..24f07e2 100644 --- a/views/account/account.handlebars +++ b/views/account/account.handlebars @@ -68,7 +68,11 @@