Commit b5d72807 authored by Filipa Lacerda's avatar Filipa Lacerda Committed by Toon Claes

Make a new request every 1second after we receive the latest if the cpmpletion is under 100

parent cecdaaca
/* eslint-disable no-new */ /* eslint-disable no-new, no-undef */
/* global Flash */ /* global Flash */
/** /**
* Renders a deploy board. * Renders a deploy board.
...@@ -67,47 +67,68 @@ export default { ...@@ -67,47 +67,68 @@ export default {
}, },
created() { created() {
this.isLoading = true; this.getDeployBoard();
},
updated() {
// While board is not complete we need to request new data from the server.
// Let's make sure we are not making any request at the moment
// and that we only make this request if the latest response was not 204.
if (!this.isLoading &&
!this.hasError &&
this.deployBoardData.completion &&
this.deployBoardData.completion < 100) {
// let's wait 1s and make the request again
setTimeout(() => {
this.getDeployBoard();
}, 1000);
}
},
methods: {
getDeployBoard() {
this.isLoading = true;
const maxNumberOfRequests = 3; const maxNumberOfRequests = 3;
// If the response is 204, we make 3 more requests. // If the response is 204, we make 3 more requests.
gl.utils.backOff((next, stop) => { gl.utils.backOff((next, stop) => {
this.service.getDeployBoard(this.endpoint) this.service.getDeployBoard(this.endpoint)
.then((resp) => { .then((resp) => {
if (resp.status === statusCodes.NO_CONTENT) { if (resp.status === statusCodes.NO_CONTENT) {
this.backOffRequestCounter = this.backOffRequestCounter += 1; this.backOffRequestCounter = this.backOffRequestCounter += 1;
if (this.backOffRequestCounter < maxNumberOfRequests) { if (this.backOffRequestCounter < maxNumberOfRequests) {
next(); next();
} else {
stop(resp);
}
} else { } else {
stop(resp); stop(resp);
} }
} else { })
stop(resp); .catch(stop);
} })
}) .then((resp) => {
.catch(stop); if (resp.status === statusCodes.NO_CONTENT) {
}) this.hasError = true;
.then((resp) => { return resp;
if (resp.status === statusCodes.NO_CONTENT) { }
this.hasError = true;
return resp; return resp.json();
} })
.then((response) => {
return resp.json(); this.store.storeDeployBoard(this.environmentID, response);
}) return response;
.then((response) => { })
this.store.storeDeployBoard(this.environmentID, response); .then(() => {
return response; this.isLoading = false;
}) })
.then(() => { .catch(() => {
this.isLoading = false; this.isLoading = false;
}) new Flash('An error occurred while fetching the deploy board.', 'alert');
.catch(() => { });
this.isLoading = false; },
new Flash('An error occurred while fetching the deploy board.', 'alert');
});
}, },
computed: { computed: {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment