Skip to content
Snippets Groups Projects
Commit 800f9f41 authored by Nicola Fulvio Calabria's avatar Nicola Fulvio Calabria
Browse files

Refactor + add wrapper class for collections controller

parent 7d521392
Branches
No related tags found
No related merge requests found
/*
* This file is part of vospace-rest
* Copyright (C) 2021 Istituto Nazionale di Astrofisica
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package it.inaf.oats.vospace;
import it.inaf.ia2.aa.data.User;
import it.inaf.oats.vospace.datamodel.collections.NodeCollectionsList;
import it.inaf.oats.vospace.persistence.CollectionsDAO;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
* @author Nicola Fulvio Calabria <nicola.calabria at inaf.it>
*/
@RestController
public class CollectionsController {
private static final Logger LOG = LoggerFactory.getLogger(CollectionsController.class);
@Autowired
private CollectionsService collectionsService;
// list collections owned by user
@GetMapping(value = "/collections")
public ResponseEntity<NodeCollectionsList> listCollections(
HttpServletRequest request, User principal) {
LOG.debug("listCollections called for user {}", principal.getName());
NodeCollectionsList ncl = new NodeCollectionsList();
ncl.setNodeCollections(
collectionsService.listCollections(principal.getName()));
return ResponseEntity.ok(ncl);
}
// create a new collection with specified title
// delete collection by id
}
/*
* This file is part of vospace-rest
* Copyright (C) 2021 Istituto Nazionale di Astrofisica
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package it.inaf.oats.vospace;
import it.inaf.oats.vospace.persistence.CollectionsDAO;
import it.inaf.oats.vospace.datamodel.collections.NodeCollection;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
*
* @author Nicola Fulvio Calabria <nicola.calabria at inaf.it>
*/
@Service
@EnableTransactionManagement
public class CollectionsService {
@Autowired
private CollectionsDAO collectionsDAO;
public List<NodeCollection> listCollections(String userId) {
List<NodeCollection> result = new ArrayList<>();
// If user is not authenticated simply return an empty list
if (isUserAuthenticated(userId)) {
result.addAll(
collectionsDAO.getUserNodeCollections(userId));
}
return result;
}
private boolean isUserAuthenticated(String userId) {
return userId != null
&& !userId.equals("anonymous");
}
}
......@@ -5,7 +5,7 @@
*/
package it.inaf.oats.vospace.persistence;
import it.inaf.oats.vospace.persistence.model.NodeCollection;
import it.inaf.oats.vospace.datamodel.collections.NodeCollection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
......
/*
* This file is part of vospace-rest
* Copyright (C) 2021 Istituto Nazionale di Astrofisica
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package it.inaf.oats.vospace.persistence.model;
/**
*
* @author Nicola Fulvio Calabria <nicola.calabria at inaf.it>
*/
public class NodeCollection {
private Long id;
private String title;
private String ownerId;
public NodeCollection(Long id, String title, String ownerId) {
this.id = id;
this.title = title;
this.ownerId = ownerId;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getOwnerId() {
return ownerId;
}
public void setOwnerId(String ownerId) {
this.ownerId = ownerId;
}
}
......@@ -5,7 +5,7 @@
*/
package it.inaf.oats.vospace.persistence;
import it.inaf.oats.vospace.persistence.model.NodeCollection;
import it.inaf.oats.vospace.datamodel.collections.NodeCollection;
import java.util.List;
import javax.sql.DataSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment