Remove useless try/catch (errors already handled by the interceptor)

This commit is contained in:
Marco Realacci 2022-12-22 18:19:02 +01:00
parent f434fcbc72
commit 747a5be567
3 changed files with 98 additions and 83 deletions

View file

@ -26,6 +26,7 @@ export default {
let response = await this.$axios.get("/stream?start_index=" + this.start_idx + "&limit=" + this.limit);
// Errors are handled by the interceptor, which shows a modal dialog to the user and returns a null response.
if (response == null) {
this.loading = false
this.loadingError = true

View file

@ -13,37 +13,40 @@ export default {
async login() {
this.loading = true;
this.errormsg = null;
try {
let response = await this.$axios.post("/session", {
name: this.field_username,
});
//this.$router.push({ name: "home" });
if (response.status == 201 || response.status == 200) {
// Save the token in the local storage if the user wants to be remembered
if (this.rememberLogin) {
localStorage.setItem("token", response.data["user_id"])
sessionStorage.removeItem("token");
}
// Else save the token in the session storage
else {
sessionStorage.setItem("token", response.data["user_id"]);
localStorage.removeItem("token");
}
// Tell the root view to enable the navbar
this.$root.setLoggedIn();
// Update the header
this.$axiosUpdate();
// Go back to the previous page
this.$router.go(-1);
let response = await this.$axios.post("/session", {
name: this.field_username,
});
// Errors are handled by the interceptor, which shows a modal dialog to the user and returns a null response.
if (response == null) {
this.loading = false
return
}
if (response.status == 201 || response.status == 200) {
// Save the token in the local storage if the user wants to be remembered
if (this.rememberLogin) {
localStorage.setItem("token", response.data["user_id"])
sessionStorage.removeItem("token");
}
// Else save the token in the session storage
else {
this.errormsg = response.data["error"];
sessionStorage.setItem("token", response.data["user_id"]);
localStorage.removeItem("token");
}
// Tell the root view to enable the navbar
this.$root.setLoggedIn();
// Update the header
this.$axiosUpdate();
// Go back to the previous page
this.$router.go(-1);
}
catch (e) {
this.errormsg = e.toString();
else {
this.errormsg = response.data["error"];
}
this.loading = false;
},
},
@ -51,50 +54,57 @@ export default {
</script>
<template>
<div class="vh-100 container py-5 h-100">
<div class="row d-flex justify-content-center align-items-center h-100">
<!--<div class="col-sm"><h2>* immagina un logo carino *</h2></div>-->
<div class="col-12 col-md-8 col-lg-6 col-xl-5">
<div class="card" style="border-radius: 1rem">
<div class="card-body p-4">
<div class="vh-100 container py-5 h-100">
<div class="row d-flex justify-content-center align-items-center h-100">
<!--<div class="col-sm"><h2>* immagina un logo carino *</h2></div>-->
<div class="col-12 col-md-8 col-lg-6 col-xl-5">
<div class="card" style="border-radius: 1rem">
<div class="card-body p-4">
<h1 class="h2 pb-4 text-center">WASAPhoto</h1>
<h1 class="h2 pb-4 text-center">WASAPhoto</h1>
<form>
<!-- Email input -->
<div class="form-floating mb-4">
<input v-model="field_username" type="email" id="formUsername" class="form-control" placeholder="name@example.com"/>
<label class="form-label" for="formUsername">Username</label>
</div>
<!-- Password input -->
<div class="form-floating mb-4">
<input style="display: none" disabled type="password" id="formPassword" class="form-control" placeholder="gattina12"/>
<label style="display: none" class="form-label" for="formPassword">Password</label>
</div>
<!-- 2 column grid layout for inline styling -->
<div class="row mb-4">
<div class="col d-flex justify-content-center">
<!-- Checkbox -->
<div class="form-check">
<input v-model="rememberLogin" class="form-check-input" type="checkbox" value="" id="form2Example31" />
<label class="form-check-label" for="form2Example31">Remember me</label>
</div>
</div>
</div>
<!-- Submit button -->
<button style="width: 100%" type="button" class="btn btn-primary btn-block mb-4" @click="login">Sign in</button>
<ErrorMsg v-if="errormsg" :msg="errormsg"></ErrorMsg>
<LoadingSpinner :loading="loading" />
<i class="text-center text-secondary d-flex flex-column">repeat after me: "best password is no password"</i>
</form>
</div>
<form>
<!-- Email input -->
<div class="form-floating mb-4">
<input v-model="field_username" type="email" id="formUsername" class="form-control"
placeholder="name@example.com" />
<label class="form-label" for="formUsername">Username</label>
</div>
<!-- Password input -->
<div class="form-floating mb-4">
<input style="display: none" disabled type="password" id="formPassword"
class="form-control" placeholder="gattina12" />
<label style="display: none" class="form-label" for="formPassword">Password</label>
</div>
<!-- 2 column grid layout for inline styling -->
<div class="row mb-4">
<div class="col d-flex justify-content-center">
<!-- Checkbox -->
<div class="form-check">
<input v-model="rememberLogin" class="form-check-input" type="checkbox" value=""
id="form2Example31" />
<label class="form-check-label" for="form2Example31">Remember me</label>
</div>
</div>
</div>
<!-- Submit button -->
<button style="width: 100%" type="button" class="btn btn-primary btn-block mb-4"
@click="login">Sign in</button>
<ErrorMsg v-if="errormsg" :msg="errormsg"></ErrorMsg>
<LoadingSpinner :loading="loading" />
<i class="text-center text-secondary d-flex flex-column">repeat after me: "best password is
no password"</i>
</form>
</div>
</div>
</div>
</div>
</div></div>
</div>
</div>
</template>
<style>
</style>

View file

@ -1,7 +1,7 @@
<script>
// import getCurrentSession from '../services/authentication'; todo: can be removed
export default {
data: function() {
data: function () {
return {
errormsg: null,
loading: false,
@ -28,16 +28,21 @@ export default {
this.loading = false;
return;
}
try {
let response = await this.$axios.get("/users?query=" + this.fieldUsername + "&start_index=" + this.startIdx + "&limit=" + this.limit);
if (response.data.length == 0) this.dataEnded = true;
else this.streamData = this.streamData.concat(response.data);
this.loading = false;
} catch (e) {
this.errormsg = e.toString(); // todo: handle better
let response = await this.$axios.get("/users?query=" + this.fieldUsername + "&start_index=" + this.startIdx + "&limit=" + this.limit);
// Errors are handled by the interceptor, which shows a modal dialog to the user and returns a null response.
if (response == null) {
this.loading = false
return
}
if (response.data.length == 0) this.dataEnded = true;
else this.streamData = this.streamData.concat(response.data);
this.loading = false;
},
scroll () {
scroll() {
window.onscroll = () => {
let bottomOfWindow = Math.max(window.pageYOffset, document.documentElement.scrollTop, document.body.scrollTop) + window.innerHeight >= document.documentElement.offsetHeight - 5
if (bottomOfWindow && !this.dataEnded) {
@ -67,17 +72,15 @@ export default {
<ErrorMsg v-if="errormsg" :msg="errormsg"></ErrorMsg>
<div class="form-floating mb-4">
<input v-model="fieldUsername" @input="refresh" id="formUsername" class="form-control" placeholder="name@example.com"/>
<label class="form-label" for="formUsername">Search by username</label>
</div>
<div class="form-floating mb-4">
<input v-model="fieldUsername" @input="refresh" id="formUsername" class="form-control"
placeholder="name@example.com" />
<label class="form-label" for="formUsername">Search by username</label>
</div>
<div id="main-content" v-for="item of streamData">
<UserCard
:user_id="item.user_id"
:name="item.name"
:followed="item.followed"
:banned="item.banned" />
<UserCard :user_id="item.user_id" :name="item.name" :followed="item.followed"
:banned="item.banned" />
</div>
<LoadingSpinner :loading="loading" /><br />
@ -89,4 +92,5 @@ export default {
</template>
<style>
</style>