package eu.eudat.controllers; import eu.eudat.logic.managers.DepositManager; import eu.eudat.logic.security.claims.ClaimedAuthorities; import eu.eudat.logic.services.ApiContext; import eu.eudat.models.data.helpers.responses.ResponseItem; import eu.eudat.models.data.security.Principal; import eu.eudat.types.ApiMessageCode; import eu.eudat.types.Authorities; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @CrossOrigin @RequestMapping(value = {"/api/deposit/"}) public class DepositController extends BaseController { private static final Logger logger = LoggerFactory.getLogger(DepositController.class); private DepositManager depositManager; @Autowired public DepositController(ApiContext apiContext, DepositManager depositManager){ super(apiContext); this.depositManager = depositManager; } @RequestMapping(method = RequestMethod.GET, value = {"/repos"}) public @ResponseBody ResponseEntity>> getAvailableRepos(@ClaimedAuthorities(claims = {Authorities.ADMIN, Authorities.MANAGER, Authorities.USER, Authorities.ANONYMOUS}) Principal principal) throws Exception { List ids = this.depositManager.getAvailableRepos(); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().status(ApiMessageCode.NO_MESSAGE).payload(ids)); } }