diff --git a/src/main/java/org/hbp/mip/controllers/ModelsApi.java b/src/main/java/org/hbp/mip/controllers/ModelsApi.java index 3d30afa65c4b330b12094aa11fbf00e2a6e13d06..8e8d37b9f5dd207dadf7d6ea11d458646bb8db86 100644 --- a/src/main/java/org/hbp/mip/controllers/ModelsApi.java +++ b/src/main/java/org/hbp/mip/controllers/ModelsApi.java @@ -58,45 +58,36 @@ public class ModelsApi { @ApiParam(value = "Only ask published models") @RequestParam(value = "valid", required = false) Boolean valid ) { - /*User user = mipApplication.getUser(); + User user = mipApplication.getUser(); + Iterable<Model> models = null; - String queryString = "SELECT m FROM Model m, User u WHERE m.createdBy=u.username"; - if(valid != null && valid) - { - queryString += " AND m.valid= :valid"; - } if(own != null && own) { - queryString += " AND u.username= :username"; + modelRepository.findByCreatedByOrderByCreatedAt(user); } else { - queryString += " AND (m.valid=true or u.username= :username)"; + modelRepository.findByValidOrCreatedByOrderByCreatedAt(true, user); } - queryString += " ORDER BY m.createdAt DESC"; - - List<Model> models = new LinkedList<>(); - Query query = session.createQuery(queryString); - if(valid != null) - { - query.setBoolean("valid", valid); - } - query.setString("username", user.getUsername()); - if(limit != null) + if(valid != null && models != null) { - query.setMaxResults(limit); // Pagination : Use query.setFirstResult(...) to set begining index + for (Iterator<Model> i = models.iterator(); i.hasNext(); ) + { + Model m = i.next(); + if(valid != m.getValid()) + { + i.remove(); + } + } } - models = query.list(); - for(Model model:models){ model.setDataset(datasetRepository.findOne(model.getDataset().getCode())); } - return new ResponseEntity<List<Model>>(HttpStatus.OK).ok(models);*/ + return new ResponseEntity<List<Model>>(HttpStatus.OK).ok(models); - return new ResponseEntity<>(HttpStatus.OK).ok(modelRepository.findAll()); } diff --git a/src/main/java/org/hbp/mip/repositories/ModelRepository.java b/src/main/java/org/hbp/mip/repositories/ModelRepository.java index 5718dfe4c88393289f49e2621b2c00d29f200ae7..9da1df5bd11936471fde140ce86b60689c5a499c 100644 --- a/src/main/java/org/hbp/mip/repositories/ModelRepository.java +++ b/src/main/java/org/hbp/mip/repositories/ModelRepository.java @@ -1,6 +1,7 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Model; +import org.hbp.mip.model.User; import org.springframework.data.repository.CrudRepository; /** @@ -9,4 +10,6 @@ import org.springframework.data.repository.CrudRepository; public interface ModelRepository extends CrudRepository<Model, String> { Long countByTitle(String Title); + Iterable<Model> findByCreatedByOrderByCreatedAt(User user); + Iterable<Model> findByValidOrCreatedByOrderByCreatedAt(Boolean valid, User user); }