Loading .gitignore +1 −0 Original line number Original line Diff line number Diff line Loading @@ -6,3 +6,4 @@ nbactions.xml nbactions.xml nb-configuration.xml nb-configuration.xml .env.development.local .env.development.local /vospace-ui-frontend/nbproject/private/ vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/client/VOSpaceClient.java +32 −6 Original line number Original line Diff line number Diff line Loading @@ -13,6 +13,7 @@ import it.inaf.ia2.vospace.ui.exception.VOSpaceStatusException; import it.inaf.ia2.vospace.ui.exception.VOSpaceException; import it.inaf.ia2.vospace.ui.exception.VOSpaceException; import it.inaf.oats.vospace.datamodel.NodeUtils; import it.inaf.oats.vospace.datamodel.NodeUtils; import static it.inaf.oats.vospace.datamodel.NodeUtils.urlEncodePath; import static it.inaf.oats.vospace.datamodel.NodeUtils.urlEncodePath; import it.inaf.oats.vospace.datamodel.collections.NodeCollection; import it.inaf.oats.vospace.datamodel.collections.NodeCollectionsWrapper; import it.inaf.oats.vospace.datamodel.collections.NodeCollectionsWrapper; import java.io.IOException; import java.io.IOException; import java.io.InputStream; import java.io.InputStream; Loading Loading @@ -143,6 +144,31 @@ public class VOSpaceClient { return protocols.get(0).getEndpoint(); return protocols.get(0).getEndpoint(); } } public void createCollection(String name, Optional<String> token) { NodeCollection nc = new NodeCollection(); nc.setTitle(name); HttpRequest request = getRequest("/collections", token) .header("Accept", useJson ? "application/json" : "text/xml") .header("Content-Type", useJson ? "application/json" : "text/xml") .PUT(HttpRequest.BodyPublishers.ofString(marshal(nc))) .build(); call(request, BodyHandlers.ofInputStream(), 200, res -> null); } public void deleteCollection(Long id, Optional<String> token) { HttpRequest request = getRequest("/collections?id="+id, token) .header("Accept", useJson ? "application/json" : "text/xml") .header("Content-Type", useJson ? "application/json" : "text/xml") .DELETE() .build(); call(request, BodyHandlers.ofInputStream(), 200, res -> null); } public Node createNode(Node node, Optional<String> token) { public Node createNode(Node node, Optional<String> token) { String path = NodeUtils.getVosPath(node); String path = NodeUtils.getVosPath(node); Loading vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/controller/NodeCollectionsController.java +20 −0 Original line number Original line Diff line number Diff line Loading @@ -11,11 +11,15 @@ import it.inaf.ia2.vospace.ui.client.VOSpaceClient; import it.inaf.oats.vospace.datamodel.collections.NodeCollection; import it.inaf.oats.vospace.datamodel.collections.NodeCollection; import it.inaf.oats.vospace.datamodel.collections.NodeCollectionsWrapper; import it.inaf.oats.vospace.datamodel.collections.NodeCollectionsWrapper; import java.util.List; import java.util.List; import java.util.Map; import org.slf4j.Logger; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController; @RestController @RestController Loading @@ -41,4 +45,20 @@ public class NodeCollectionsController extends BaseController { return ncw.getNodeCollections(); return ncw.getNodeCollections(); } } @PutMapping(value = "/collections", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<?> createNodeCollection(User principal, @RequestBody Map<String, Object> params) throws Exception { String collectionName = (String) this.getRequiredParam(params, "collectionName"); LOG.debug("create new collection named {} for user {}", collectionName, principal.getName()); // Call creation logic client.createCollection(collectionName, tokenProvider.getToken()); return ResponseEntity.noContent().build(); } } } vospace-ui-frontend/nbproject/project.properties 0 → 100644 +4 −0 Original line number Original line Diff line number Diff line file.reference.vospace-ui-frontend-public=public files.encoding=UTF-8 site.root.folder=${file.reference.vospace-ui-frontend-public} source.folder= vospace-ui-frontend/nbproject/project.xml 0 → 100644 +9 −0 Original line number Original line Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://www.netbeans.org/ns/project/1"> <type>org.netbeans.modules.web.clientproject</type> <configuration> <data xmlns="http://www.netbeans.org/ns/clientside-project/1"> <name>vospace-ui-frontend</name> </data> </configuration> </project> Loading
.gitignore +1 −0 Original line number Original line Diff line number Diff line Loading @@ -6,3 +6,4 @@ nbactions.xml nbactions.xml nb-configuration.xml nb-configuration.xml .env.development.local .env.development.local /vospace-ui-frontend/nbproject/private/
vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/client/VOSpaceClient.java +32 −6 Original line number Original line Diff line number Diff line Loading @@ -13,6 +13,7 @@ import it.inaf.ia2.vospace.ui.exception.VOSpaceStatusException; import it.inaf.ia2.vospace.ui.exception.VOSpaceException; import it.inaf.ia2.vospace.ui.exception.VOSpaceException; import it.inaf.oats.vospace.datamodel.NodeUtils; import it.inaf.oats.vospace.datamodel.NodeUtils; import static it.inaf.oats.vospace.datamodel.NodeUtils.urlEncodePath; import static it.inaf.oats.vospace.datamodel.NodeUtils.urlEncodePath; import it.inaf.oats.vospace.datamodel.collections.NodeCollection; import it.inaf.oats.vospace.datamodel.collections.NodeCollectionsWrapper; import it.inaf.oats.vospace.datamodel.collections.NodeCollectionsWrapper; import java.io.IOException; import java.io.IOException; import java.io.InputStream; import java.io.InputStream; Loading Loading @@ -143,6 +144,31 @@ public class VOSpaceClient { return protocols.get(0).getEndpoint(); return protocols.get(0).getEndpoint(); } } public void createCollection(String name, Optional<String> token) { NodeCollection nc = new NodeCollection(); nc.setTitle(name); HttpRequest request = getRequest("/collections", token) .header("Accept", useJson ? "application/json" : "text/xml") .header("Content-Type", useJson ? "application/json" : "text/xml") .PUT(HttpRequest.BodyPublishers.ofString(marshal(nc))) .build(); call(request, BodyHandlers.ofInputStream(), 200, res -> null); } public void deleteCollection(Long id, Optional<String> token) { HttpRequest request = getRequest("/collections?id="+id, token) .header("Accept", useJson ? "application/json" : "text/xml") .header("Content-Type", useJson ? "application/json" : "text/xml") .DELETE() .build(); call(request, BodyHandlers.ofInputStream(), 200, res -> null); } public Node createNode(Node node, Optional<String> token) { public Node createNode(Node node, Optional<String> token) { String path = NodeUtils.getVosPath(node); String path = NodeUtils.getVosPath(node); Loading
vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/controller/NodeCollectionsController.java +20 −0 Original line number Original line Diff line number Diff line Loading @@ -11,11 +11,15 @@ import it.inaf.ia2.vospace.ui.client.VOSpaceClient; import it.inaf.oats.vospace.datamodel.collections.NodeCollection; import it.inaf.oats.vospace.datamodel.collections.NodeCollection; import it.inaf.oats.vospace.datamodel.collections.NodeCollectionsWrapper; import it.inaf.oats.vospace.datamodel.collections.NodeCollectionsWrapper; import java.util.List; import java.util.List; import java.util.Map; import org.slf4j.Logger; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController; @RestController @RestController Loading @@ -41,4 +45,20 @@ public class NodeCollectionsController extends BaseController { return ncw.getNodeCollections(); return ncw.getNodeCollections(); } } @PutMapping(value = "/collections", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<?> createNodeCollection(User principal, @RequestBody Map<String, Object> params) throws Exception { String collectionName = (String) this.getRequiredParam(params, "collectionName"); LOG.debug("create new collection named {} for user {}", collectionName, principal.getName()); // Call creation logic client.createCollection(collectionName, tokenProvider.getToken()); return ResponseEntity.noContent().build(); } } }
vospace-ui-frontend/nbproject/project.properties 0 → 100644 +4 −0 Original line number Original line Diff line number Diff line file.reference.vospace-ui-frontend-public=public files.encoding=UTF-8 site.root.folder=${file.reference.vospace-ui-frontend-public} source.folder=
vospace-ui-frontend/nbproject/project.xml 0 → 100644 +9 −0 Original line number Original line Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://www.netbeans.org/ns/project/1"> <type>org.netbeans.modules.web.clientproject</type> <configuration> <data xmlns="http://www.netbeans.org/ns/clientside-project/1"> <name>vospace-ui-frontend</name> </data> </configuration> </project>