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 "."

Reply via email to