Commit 71d2497f authored by Nicola Fulvio Calabria's avatar Nicola Fulvio Calabria
Browse files

added create collection and part of delete

parent c6bcc836
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -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/
+32 −6
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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);
+20 −0
Original line number Original line Diff line number Diff line
@@ -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
@@ -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();
    }
    
}
}
+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=
+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