Bug 32939: Uniformize api calls

We want to make the call easier and without less errors possible.
Here, no need to async keyword, try-catch, etc.
Only call the method and use the common then with the 2 success and
error Promise arguments.

We will certainly want to add later a parameter to prevent the display
of the error in fetchJSON, in case the failure does not require a message
for the end user.

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Jonathan Druart 2023-02-15 11:38:08 +01:00 committed by Tomas Cohen Arazi
parent 225f2c664b
commit 545e568b9f
Signed by: tomascohen
GPG key ID: 0A272EA1B2F3C15F
5 changed files with 55 additions and 55 deletions

View file

@ -251,14 +251,13 @@ export default {
methods: {
async getAgreement(agreement_id) {
const client = APIClient.erm
try {
await client.agreements.get(agreement_id).then(data => {
client.agreements.get(agreement_id).then(
data => {
this.agreement = data
this.initialized = true
})
} catch (err) {
setError(err.message || err.statusText)
}
},
error => {}
)
},
checkForm(agreement) {
let errors = []
@ -373,22 +372,23 @@ export default {
delete agreement.agreement_packages
const client = APIClient.erm
;(async () => {
try {
if (agreement_id) {
await client.agreements
.update(agreement, agreement_id)
.then(setMessage(this.$__("Agreement updated")))
} else {
await client.agreements
.create(agreement)
.then(setMessage(this.$__("Agreement created")))
}
this.$router.push("/cgi-bin/koha/erm/agreements")
} catch (err) {
setError(err.message || err.statusText)
}
})()
if (agreement_id) {
client.agreements.update(agreement, agreement_id).then(
success => {
setMessage(this.$__("Agreement updated"))
this.$router.push("/cgi-bin/koha/erm/agreements")
},
error => {}
)
} else {
client.agreements.create(agreement).then(
success => {
setMessage(this.$__("Agreement created"))
this.$router.push("/cgi-bin/koha/erm/agreements")
},
error => {}
)
}
},
onStatusChanged(e) {
if (e.authorised_value != "closed") {

View file

@ -37,7 +37,7 @@
<script>
import { APIClient } from "../../fetch/api-client.js"
import { setMessage, setError } from "../../messages"
import { setMessage } from "../../messages"
export default {
data() {
@ -54,29 +54,22 @@ export default {
methods: {
async getAgreement(agreement_id) {
const client = APIClient.erm
try {
await client.agreements.get(agreement_id).then(data => {
this.agreement = data
this.initialized = true
})
} catch (err) {
setError(err.message || err.statusText)
}
client.agreements.get(agreement_id).then(data => {
this.agreement = data
this.initialized = true
})
},
onSubmit(e) {
e.preventDefault()
const client = APIClient.erm
;(async () => {
try {
await client.agreements
.delete(this.agreement.agreement_id)
.then(setMessage(this.$__("Agreement deleted")))
client.agreements.delete(this.agreement.agreement_id).then(
success => {
setMessage(this.$__("Agreement deleted"))
this.$router.push("/cgi-bin/koha/erm/agreements")
} catch (err) {
setError(err)
}
})()
},
error => {}
)
},
},
name: "AgreementsFormConfirmDelete",

View file

@ -94,9 +94,13 @@ export default {
methods: {
async getAgreements() {
const client = APIClient.erm
const agreements = await client.agreements.getAll()
this.agreements = agreements
this.initialized = true
await client.agreements.getAll().then(
data => {
this.agreements = data
this.initialized = true
},
error => {}
)
},
show_agreement: function (agreement_id) {
this.$router.push("/cgi-bin/koha/erm/agreements/" + agreement_id)

View file

@ -301,7 +301,6 @@
<script>
import { inject } from "vue"
import { APIClient } from "../../fetch/api-client.js"
import { setError } from "../../messages"
export default {
setup() {
@ -348,14 +347,13 @@ export default {
methods: {
async getAgreement(agreement_id) {
const client = APIClient.erm
try {
await client.agreements.get(agreement_id).then(data => {
client.agreements.get(agreement_id).then(
data => {
this.agreement = data
this.initialized = true
})
} catch (err) {
setError(err.message || err.statusText)
}
},
error => {}
)
},
},
name: "AgreementsShow",

View file

@ -14,7 +14,7 @@ class HttpClient {
options = {},
return_response = false
) {
let res;
let res, error;
await fetch(this._baseURL + endpoint, {
...options,
headers: { ...this._headers, ...headers },
@ -24,13 +24,18 @@ class HttpClient {
(result) => {
res = result;
},
(error) => {
setError(error.toString());
(err) => {
error = err;
setError(err.toString());
}
)
.catch((error) => {
setError(error);
.catch((err) => {
error = err;
setError(err);
});
if (error) throw Error(error);
return res;
}