From d2500f4328755f5e43a9a5cfa961f87790d4e515 Mon Sep 17 00:00:00 2001
From: Sonia Zorba <sonia.zorba@inaf.it>
Date: Wed, 10 Mar 2021 14:10:42 +0100
Subject: [PATCH] Changes after split base_path and base_url in storage table

---
 src/main/java/it/inaf/oats/vospace/UriService.java       | 2 +-
 .../it/inaf/oats/vospace/persistence/LocationDAO.java    | 5 +++--
 .../it/inaf/oats/vospace/persistence/model/Storage.java  | 9 +++++++++
 .../it/inaf/oats/vospace/TransferControllerTest.java     | 2 +-
 .../inaf/oats/vospace/persistence/LocationDAOTest.java   | 4 ++++
 5 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/main/java/it/inaf/oats/vospace/UriService.java b/src/main/java/it/inaf/oats/vospace/UriService.java
index 405f974..b7d132a 100644
--- a/src/main/java/it/inaf/oats/vospace/UriService.java
+++ b/src/main/java/it/inaf/oats/vospace/UriService.java
@@ -85,7 +85,7 @@ public class UriService {
 
         if (location != null && location.getType() == LocationType.PORTAL) {
             String fileName = nodeDao.getNodeOsName(relativePath);
-            endpoint = "http://" + location.getSource().getHostname() + location.getSource().getBasePath();
+            endpoint = "http://" + location.getSource().getHostname() + location.getSource().getBaseUrl();
             if (!endpoint.endsWith("/")) {
                 endpoint += "/";
             }
diff --git a/src/main/java/it/inaf/oats/vospace/persistence/LocationDAO.java b/src/main/java/it/inaf/oats/vospace/persistence/LocationDAO.java
index ef8618c..b6bb2f4 100644
--- a/src/main/java/it/inaf/oats/vospace/persistence/LocationDAO.java
+++ b/src/main/java/it/inaf/oats/vospace/persistence/LocationDAO.java
@@ -30,7 +30,7 @@ public class LocationDAO {
     public Optional<Location> findPortalLocation(String host) {
 
         String sql = "SELECT location_id, location_type, storage_src_id, storage_dest_id,\n"
-                + "storage_id, storage_type, base_path, hostname\n"
+                + "storage_id, storage_type, base_path, base_url, hostname\n"
                 + "FROM location l\n"
                 + "JOIN storage s ON l.storage_src_id = s.storage_id OR l.storage_dest_id = s.storage_id\n"
                 + "WHERE hostname = ?";
@@ -45,7 +45,7 @@ public class LocationDAO {
     public Optional<Location> getNodeLocation(String vosPath) {
 
         String sql = "SELECT location_id, location_type, storage_src_id, storage_dest_id,\n"
-                + "storage_id, storage_type, base_path, hostname\n"
+                + "storage_id, storage_type, base_path, base_url, hostname\n"
                 + "FROM location l\n"
                 + "JOIN storage s ON l.storage_src_id = s.storage_id OR l.storage_dest_id = s.storage_id\n"
                 + "WHERE location_id = (\n"
@@ -96,6 +96,7 @@ public class LocationDAO {
 
             storage.setType(StorageType.parse(rs.getString("storage_type")));
             storage.setBasePath(rs.getString("base_path"));
+            storage.setBaseUrl(rs.getString("base_url"));
             storage.setHostname(rs.getString("hostname"));
 
             Storage storageSrc = storagesMap.get(rs.getInt("storage_src_id"));
diff --git a/src/main/java/it/inaf/oats/vospace/persistence/model/Storage.java b/src/main/java/it/inaf/oats/vospace/persistence/model/Storage.java
index f936ac9..3611d3c 100644
--- a/src/main/java/it/inaf/oats/vospace/persistence/model/Storage.java
+++ b/src/main/java/it/inaf/oats/vospace/persistence/model/Storage.java
@@ -5,6 +5,7 @@ public class Storage {
     private int id;
     private StorageType type;
     private String basePath;
+    private String baseUrl;
     private String hostname;
 
     public int getId() {
@@ -31,6 +32,14 @@ public class Storage {
         this.basePath = basePath;
     }
 
+    public String getBaseUrl() {
+        return baseUrl;
+    }
+
+    public void setBaseUrl(String baseUrl) {
+        this.baseUrl = baseUrl;
+    }
+
     public String getHostname() {
         return hostname;
     }
diff --git a/src/test/java/it/inaf/oats/vospace/TransferControllerTest.java b/src/test/java/it/inaf/oats/vospace/TransferControllerTest.java
index a15c881..a35dc3d 100644
--- a/src/test/java/it/inaf/oats/vospace/TransferControllerTest.java
+++ b/src/test/java/it/inaf/oats/vospace/TransferControllerTest.java
@@ -82,7 +82,7 @@ public class TransferControllerTest {
         portalLocation.setId(2);
         Storage portalStorage = new Storage();
         portalStorage.setHostname("archive.lbto.org");
-        portalStorage.setBasePath("/files");
+        portalStorage.setBaseUrl("/files");
         portalLocation.setSource(portalStorage);
         when(locationDao.getNodeLocation(eq("/portalnode"))).thenReturn(Optional.of(portalLocation));
         when(locationDao.findPortalLocation(any())).thenReturn(Optional.of(portalLocation));
diff --git a/src/test/java/it/inaf/oats/vospace/persistence/LocationDAOTest.java b/src/test/java/it/inaf/oats/vospace/persistence/LocationDAOTest.java
index 067c2e6..26037b5 100644
--- a/src/test/java/it/inaf/oats/vospace/persistence/LocationDAOTest.java
+++ b/src/test/java/it/inaf/oats/vospace/persistence/LocationDAOTest.java
@@ -4,6 +4,8 @@ import it.inaf.oats.vospace.persistence.model.Location;
 import java.util.Optional;
 import javax.sql.DataSource;
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -38,6 +40,8 @@ public class LocationDAOTest {
         Location location = optLocation.get();
 
         assertEquals(hostname, location.getSource().getHostname());
+        assertNotNull(location.getSource().getBaseUrl());
+        assertNull(location.getSource().getBasePath());
     }
 
     @Test
-- 
GitLab