This is an automated email from the ASF dual-hosted git repository. machristie pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
commit 9a46a62bbc38ffaf953cfa2f279b56a246e4c198 Author: Marcus Christie <[email protected]> AuthorDate: Fri Nov 19 11:02:54 2021 -0500 AIRAVATA-3542 Append slash to sdk urls Also some FetchUtils fixes: showSpinner to return the promise so the call can be chained and allow specifying the responseType --- .../js/utils/ExperimentUtils.js | 2 +- .../django_airavata_api/js/utils/FetchUtils.js | 47 +++++++++++++--------- .../storage/ExperimentStoragePathViewer.vue | 2 +- .../storage/ExperimentStorageViewContainer.vue | 2 +- .../components/storage/UserStoragePathViewer.vue | 2 +- .../storage-edit/UserStorageDownloadButton.vue | 2 +- .../storage/storage-edit/UserStorageEditViewer.vue | 2 +- requirements.txt | 2 +- 8 files changed, 34 insertions(+), 27 deletions(-) diff --git a/django_airavata/apps/api/static/django_airavata_api/js/utils/ExperimentUtils.js b/django_airavata/apps/api/static/django_airavata_api/js/utils/ExperimentUtils.js index 4e70df5..36e2b36 100644 --- a/django_airavata/apps/api/static/django_airavata_api/js/utils/ExperimentUtils.js +++ b/django_airavata/apps/api/static/django_airavata_api/js/utils/ExperimentUtils.js @@ -181,7 +181,7 @@ const readDataProduct = async function ( { bodyType = "text" } = {} ) { return await fetch( - `/sdk/download?data-product-uri=${encodeURIComponent(dataProductURI)}`, + `/sdk/download/?data-product-uri=${encodeURIComponent(dataProductURI)}`, { credentials: "same-origin", } diff --git a/django_airavata/apps/api/static/django_airavata_api/js/utils/FetchUtils.js b/django_airavata/apps/api/static/django_airavata_api/js/utils/FetchUtils.js index c1c1559..c9b8dcb 100644 --- a/django_airavata/apps/api/static/django_airavata_api/js/utils/FetchUtils.js +++ b/django_airavata/apps/api/static/django_airavata_api/js/utils/FetchUtils.js @@ -43,7 +43,9 @@ const responseCache = new Cache(); export default { showSpinner: function (promise) { incrementCount(); - return promise.then(decrementCount, decrementCount); + promise.then(decrementCount, decrementCount); + // return the promise so that it can be chained + return promise; }, getCSRFToken: function () { var csrfToken = document.cookie @@ -80,6 +82,7 @@ export default { mediaType = "application/json", ignoreErrors = false, showSpinner = true, + responseType = "json", } = {} ) { var headers = this.createHeaders(mediaType); @@ -98,6 +101,7 @@ export default { credentials: "same-origin", ignoreErrors, showSpinner, + responseType, }); }, put: function ( @@ -107,6 +111,7 @@ export default { mediaType = "application/json", ignoreErrors = false, showSpinner = true, + responseType = "json", } = {} ) { var headers = this.createHeaders(mediaType); @@ -124,6 +129,7 @@ export default { credentials: "same-origin", ignoreErrors, showSpinner, + responseType, }); }, get: function ( @@ -134,8 +140,8 @@ export default { ignoreErrors = false, showSpinner = true, cache = false, - } = {}, - responseType = "json" + responseType = "json", + } = {} ) { if (queryParams && typeof queryParams != "string") { queryParams = Object.keys(queryParams) @@ -154,23 +160,23 @@ export default { } } var headers = new Headers({ Accept: mediaType }); - const fetchRequest = this.processFetch( - url, - { - method: "get", - headers: headers, - credentials: "same-origin", - ignoreErrors, - showSpinner, - }, - responseType - ); + const fetchRequest = this.processFetch(url, { + method: "get", + headers: headers, + credentials: "same-origin", + ignoreErrors, + showSpinner, + responseType, + }); if (cache) { responseCache.put({ key: url, value: fetchRequest }); } return fetchRequest; }, - delete: function (url, { ignoreErrors = false, showSpinner = true } = {}) { + delete: function ( + url, + { ignoreErrors = false, showSpinner = true, responseType = "json" } = {} + ) { var headers = this.createHeaders(); return this.processFetch(url, { method: "delete", @@ -178,6 +184,7 @@ export default { credentials: "same-origin", ignoreErrors, showSpinner, + responseType, }); }, processFetch: function ( @@ -189,8 +196,8 @@ export default { body, ignoreErrors = false, showSpinner = true, - }, - responseType = "json" + responseType = "json", + } ) { const fetchConfig = { method, @@ -253,14 +260,14 @@ export default { } }, (error) => { - if (showSpinner) { - decrementCount(); - } error.details = this.createErrorDetails({ url, body }); throw error; } ) .catch((error) => { + if (showSpinner) { + decrementCount(); + } if (!ignoreErrors) { this.reportError(error); } diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStoragePathViewer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStoragePathViewer.vue index 81123fe..96a2ffe 100644 --- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStoragePathViewer.vue +++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStoragePathViewer.vue @@ -41,7 +41,7 @@ class="action-link" :href="`/sdk/download-experiment-dir/${encodeURIComponent( experimentId - )}?path=${data.item.path}`" + )}/?path=${data.item.path}`" > Download Zip <i class="fa fa-file-archive" aria-hidden="true"></i> diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStorageViewContainer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStorageViewContainer.vue index ba56fbc..de45de6 100644 --- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStorageViewContainer.vue +++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStorageViewContainer.vue @@ -7,7 +7,7 @@ v-if="canDownloadDataDirectory" :href="`/sdk/download-experiment-dir/${encodeURIComponent( experimentId - )}`" + )}/`" > Download Zip <i class="fa fa-file-archive" aria-hidden="true"></i> diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStoragePathViewer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStoragePathViewer.vue index ffa4541..71f6991 100644 --- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStoragePathViewer.vue +++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStoragePathViewer.vue @@ -69,7 +69,7 @@ <b-link v-if="data.item.type === 'dir'" class="action-link" - :href="`/sdk/download-dir?path=${data.item.path}`" + :href="`/sdk/download-dir/?path=${data.item.path}`" :disabled="data.item.size >= Math.pow(10, 9)" > Download Zip diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/storage-edit/UserStorageDownloadButton.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/storage-edit/UserStorageDownloadButton.vue index adbb089..0a77a7d 100644 --- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/storage-edit/UserStorageDownloadButton.vue +++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/storage-edit/UserStorageDownloadButton.vue @@ -15,7 +15,7 @@ export default { }, computed: { downloadUrl() { - return `/sdk/download?data-product-uri=${this.dataProductUri}`; + return `/sdk/download/?data-product-uri=${this.dataProductUri}`; } } }; diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/storage-edit/UserStorageEditViewer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/storage-edit/UserStorageEditViewer.vue index 37993b8..5822db7 100644 --- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/storage-edit/UserStorageEditViewer.vue +++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/storage-edit/UserStorageEditViewer.vue @@ -99,7 +99,7 @@ export default { return /pdf/.test(this.mimeType); }, downloadUrl() { - return `/sdk/download?data-product-uri=${this.dataProductUri}`; + return `/sdk/download/?data-product-uri=${this.dataProductUri}`; } }, components: { diff --git a/requirements.txt b/requirements.txt index 4562760..0b95d56 100644 --- a/requirements.txt +++ b/requirements.txt @@ -20,7 +20,7 @@ google-api-python-client==1.12.8 grpcio-tools==1.34.1 grpcio==1.34.1 -airavata-django-portal-sdk==1.3.dev2 +airavata-django-portal-sdk==1.3.dev3 airavata-python-sdk==1.0.1 -e "."
