les redirections fonctionnent

This commit is contained in:
batche
2022-12-08 13:51:56 +01:00
parent 365bac36ef
commit 8c2df71cde
3 changed files with 67 additions and 42 deletions

View File

@@ -14,6 +14,7 @@
let set = { username: '', tfa: false };
let nameTmp; // annoying...
const errors = { username: '', checkbox: '', avatar: ''};
let success = {username: '', avatar: '' };
onMount( async() => {
user = await fetch('http://transcendance:8080/api/v2/user')
@@ -55,30 +56,40 @@
// I don't really care which i use at this point...
// if (set.username === nameTmp) {
if (set.username === user.username || (set.username.trim() === '' && set.username !== '')) {
if ((set.username.trim() === '')) {
errors.username = 'Invalid new username';
valid = false;
} else {
errors.username = '';
valid = true;
return;
}
else if (set.username === user.username){
errors.username = "You must choose a different username than the previous"
return;
}
else {
errors.username = '';
}
const res = await fetch('http://transcendance:8080/api/v2/user',{
method: 'PATCH',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
"username": set.username,
"isEnabledTwoFactorAuth": set.tfa
})
})
.then((response) => {
if (response.status === 200)
success.username = "Your changes have been saved"
else if (response.status === 201)
push("/2fa")
else
errors.username = "Something went wrong"
}
)
.catch((err) => errors.username = err)
if (valid) {
await fetch('http://transcendance:8080/api/v2/user',{
method: 'PATCH',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
"username": set.username,
"isEnabledTwoFactorAuth": set.tfa
})
})
.then(response => response.json())
// .then((result) => console.log(result))
// .then(() => console.log('successful sub of new settings'))
}
};
const uploadAvatar = async() => {
@@ -87,23 +98,28 @@
errors.avatar = 'You need to pick a file.'
return;
}
const data = new FormData();
data.append("file", newAvatar[0]);
const data = new FormData();
data.append("file", newAvatar[0]);
// tmp
console.log(data);
// tmp
console.log(data);
await fetch("http://transcendance:8080/api/v2/user/avatar",
{
method : 'POST',
body : data,
})
.then(() => uploadAvatarSuccess = true ) // for some reason it needs to be a function, i think a TS thing, not a promis otherwise
.then(() => push('/profile') )
.catch(() => errors.avatar = 'Sorry failed to upload your new Avatar' )
// some of this shit is unnecessary...
// also i'm not convinced the .catch works...
}
await fetch("http://transcendance:8080/api/v2/user/avatar",
{
method : 'POST',
body : data,
})
.then(() => uploadAvatarSuccess = true ) // for some reason it needs to be a function, i think a TS thing, not a promis otherwise
.then(() => success.avatar = 'Your changes have been saved')
.catch(() => errors.avatar = 'Sorry failed to upload your new Avatar' );
await fetch("http://transcendance:8080/api/v2/user/avatar", {method: "GET"})
.then(response => {return response.blob()})
.then(data => {
const url = URL.createObjectURL(data);
avatar = url;
})
.catch(() => errors.avatar = 'Sorry your avatar could not be loaded' );
}
</script>
@@ -118,6 +134,7 @@
<!-- it really hates {user.username} and ${user.username} -->
<!-- <input type="text" placeholder="current username: ${user.username}" bind:value={set.username}> -->
<input type="text" placeholder="current username: {nameTmp}" bind:value={set.username}>
<div class="success">{success.username}</div>
<div class="error">{errors.username}</div>
</div>
<div class="form-field">
@@ -201,5 +218,10 @@
color: red;
}
.success{
font-size: 0.8em;
font-weight: bold;
color: green;
}
</style>