diff --git a/src/main/java/org/genesys/catalog/api/ApiExceptionHandler.java b/src/main/java/org/genesys/catalog/api/ApiExceptionHandler.java index a59aa873f56c3ce855f3d39b01990e3dea23b20b..35ea42d0041336df08a9a3783c30243602952ae3 100644 --- a/src/main/java/org/genesys/catalog/api/ApiExceptionHandler.java +++ b/src/main/java/org/genesys/catalog/api/ApiExceptionHandler.java @@ -137,7 +137,7 @@ public class ApiExceptionHandler { * @return the api error */ @ResponseStatus(code = HttpStatus.NOT_FOUND) - @ExceptionHandler(NotFoundElement.class) + @ExceptionHandler(value = { NotFoundElement.class, org.genesys2.server.exception.NotFoundElement.class }) @ResponseBody public ApiError handleNotFound(final Exception e, final HttpServletRequest request) { LOG.warn("Element not found {} {}", request.getMethod(), request.getRequestURL(), e); diff --git a/src/main/java/org/genesys/catalog/api/v0/DatasetController.java b/src/main/java/org/genesys/catalog/api/v0/DatasetController.java index e9eac86339c0f099525ac9373c327f523d7e5a6f..22daae62611fdf87e4dc5306597deeeaf485cbde 100644 --- a/src/main/java/org/genesys/catalog/api/v0/DatasetController.java +++ b/src/main/java/org/genesys/catalog/api/v0/DatasetController.java @@ -15,7 +15,11 @@ */ package org.genesys.catalog.api.v0; -import org.apache.commons.lang3.StringUtils; +import java.io.IOException; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; + import org.genesys.catalog.api.FilteredPage; import org.genesys.catalog.exceptions.NotFoundElement; import org.genesys.catalog.model.dataset.AccessionIdentifier; @@ -32,15 +36,18 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import io.swagger.annotations.Api; -import java.io.IOException; -import java.util.Set; -import java.util.UUID; -import java.util.stream.Collectors; - /** * The Class DatasetController. * @@ -70,6 +77,34 @@ public class DatasetController { @Autowired protected DescriptorService descriptorService; + /** + * My datasets. + * + * @param page the page + * @param pageSize the page size + * @param direction the direction + * @param sort the sort + * @param filterCode short filter code -- overrides filter in body + * @param filter the filter + * @return the page + * @throws IOException + */ + @PostMapping(value = "/list-mine") + public FilteredPage myDatasets(@RequestParam(name = "p", required = false, defaultValue = "0") final int page, + @RequestParam(name = "l", required = false, defaultValue = "50") final int pageSize, + @RequestParam(name = "d", required = false, defaultValue = "DESC") final Sort.Direction direction, + @RequestParam(name = "s", required = false, defaultValue = "lastModifiedDate") final String[] sort, + @RequestParam(name = "f", required = false) String filterCode, + @RequestBody(required = false) DatasetFilter filter) throws IOException { + + if (filterCode != null) { + filter = shortFilterService.filterByCode(filterCode, DatasetFilter.class); + } else { + filterCode = shortFilterService.getCode(filter); + } + return new FilteredPage<>(filterCode, filter, datasetService.listDatasetsForCurrentUser(filter, new PageRequest(page, Integer.min(pageSize, 100), direction, sort))); + } + /** * List datasets. * @@ -86,9 +121,9 @@ public class DatasetController { @RequestParam(name = "d", required = false, defaultValue = "ASC") final Sort.Direction direction, @RequestParam(name = "s", required = false, defaultValue = "id") final String[] sort, @RequestParam(name = "f", required = false) String filterCode, - @RequestBody DatasetFilter filter) throws IOException { + @RequestBody(required = false) DatasetFilter filter) throws IOException { - if (StringUtils.isNotBlank(filterCode)) { + if (filterCode != null) { filter = shortFilterService.filterByCode(filterCode, DatasetFilter.class); } else { filterCode = shortFilterService.getCode(filter); diff --git a/src/main/java/org/genesys/catalog/api/v0/DescriptorController.java b/src/main/java/org/genesys/catalog/api/v0/DescriptorController.java index b72ffd63b7321c830b75132e5a7c0e4648af53f9..7eef6cdc9da21a5237f5f189585f72601217df42 100644 --- a/src/main/java/org/genesys/catalog/api/v0/DescriptorController.java +++ b/src/main/java/org/genesys/catalog/api/v0/DescriptorController.java @@ -19,7 +19,6 @@ import java.io.IOException; import java.util.List; import java.util.UUID; -import org.apache.commons.lang3.StringUtils; import org.genesys.blocks.model.JsonViews; import org.genesys.catalog.api.FilteredPage; import org.genesys.catalog.model.dataset.Dataset; @@ -78,6 +77,33 @@ public class DescriptorController { return Descriptor.Category.values(); } + /** + * My descriptors. + * + * @param page the page + * @param pageSize the page size + * @param direction the direction + * @param sort the sort + * @param filter the descriptor filter + * @return the page + * @throws IOException + */ + @PostMapping(value = "/list-mine") + public FilteredPage myDescriptors(@RequestParam(name = "p", required = false, defaultValue = "0") final int page, + @RequestParam(name = "l", required = false, defaultValue = "50") final int pageSize, + @RequestParam(name = "d", required = false, defaultValue = "DESC") final Sort.Direction direction, + @RequestParam(name = "s", required = false, defaultValue = "lastModifiedDate") final String[] sort, + @RequestParam(name = "f", required = false) String filterCode, + @RequestBody(required = false) DescriptorFilter filter) throws IOException { + + if (filterCode != null) { + filter = shortFilterService.filterByCode(filterCode, DescriptorFilter.class); + } else { + filterCode = shortFilterService.getCode(filter); + } + return new FilteredPage<>(filterCode, filter, descriptorService.listDescriptorsForCurrentUser(filter, new PageRequest(page, Integer.min(pageSize, 100), direction, sort))); + } + /** * List descriptors. * @@ -95,9 +121,9 @@ public class DescriptorController { @RequestParam(name = "d", required = false, defaultValue = "ASC") final Sort.Direction direction, @RequestParam(name = "s", required = false, defaultValue = "id") final String[] sort, @RequestParam(name = "f", required = false) String filterCode, - @RequestBody DescriptorFilter filter) throws IOException { + @RequestBody(required = false) DescriptorFilter filter) throws IOException { - if (StringUtils.isNotBlank(filterCode)) { + if (filterCode != null) { filter = shortFilterService.filterByCode(filterCode, DescriptorFilter.class); } else { filterCode = shortFilterService.getCode(filter); diff --git a/src/main/java/org/genesys/catalog/api/v0/DescriptorListController.java b/src/main/java/org/genesys/catalog/api/v0/DescriptorListController.java index 7f2b84a1e4ece999349ec7cf8a8b62ebc1886397..8df1799d112d9f6a8cb08cf3ecb2e904161f4d5a 100644 --- a/src/main/java/org/genesys/catalog/api/v0/DescriptorListController.java +++ b/src/main/java/org/genesys/catalog/api/v0/DescriptorListController.java @@ -15,7 +15,14 @@ */ package org.genesys.catalog.api.v0; -import org.apache.commons.lang3.StringUtils; +import java.io.IOException; +import java.util.List; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; + +import javax.servlet.http.HttpServletResponse; + import org.genesys.blocks.model.JsonViews; import org.genesys.catalog.api.FilteredPage; import org.genesys.catalog.model.filters.DescriptorListFilter; @@ -33,19 +40,20 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import com.fasterxml.jackson.annotation.JsonView; import io.swagger.annotations.Api; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.List; -import java.util.Set; -import java.util.UUID; -import java.util.stream.Collectors; - /** * The Class DescriptorListController. * @@ -165,6 +173,33 @@ public class DescriptorListController { return descriptorList; } + /** + * My descriptor lists. + * + * @param page the page + * @param pageSize the page size + * @param direction the direction + * @param sort the sort + * @param descriptorListFilter the descriptor list filter + * @return the page + * @throws IOException + */ + @PostMapping(value = "/list-mine") + public FilteredPage myDescriptorLists(@RequestParam(name = "p", required = false, defaultValue = "0") final int page, + @RequestParam(name = "l", required = false, defaultValue = "50") final int pageSize, + @RequestParam(name = "d", required = false, defaultValue = "DESC") final Sort.Direction direction, + @RequestParam(name = "s", required = false, defaultValue = "lastModifiedDate") final String[] sort, + @RequestParam(name = "f", required = false) String filterCode, + @RequestBody(required = false) DescriptorListFilter filter) throws IOException { + + if (filterCode != null) { + filter = shortFilterService.filterByCode(filterCode, DescriptorListFilter.class); + } else { + filterCode = shortFilterService.getCode(filter); + } + return new FilteredPage<>(filterCode, filter, descriptorListService.listDescriptorListsForCurrentUser(filter, new PageRequest(page, Integer.min(pageSize, 100), direction, sort))); + } + /** * List descriptor lists. * @@ -182,9 +217,9 @@ public class DescriptorListController { @RequestParam(name = "d", required = false, defaultValue = "ASC") final Sort.Direction direction, @RequestParam(name = "s", required = false, defaultValue = "id") final String[] sort, @RequestParam(name = "f", required = false) String filterCode, - @RequestBody DescriptorListFilter filter) throws IOException { + @RequestBody(required = false) DescriptorListFilter filter) throws IOException { - if (StringUtils.isNotBlank(filterCode)) { + if (filterCode != null) { filter = shortFilterService.filterByCode(filterCode, DescriptorListFilter.class); } else { filterCode = shortFilterService.getCode(filter); diff --git a/src/main/java/org/genesys/catalog/api/v0/MeController.java b/src/main/java/org/genesys/catalog/api/v0/MeController.java index 10a008d68ee6d6a0897917600e95ddeef7091889..9cd897ea2bf582a0075c6f78c130b069f35cff5f 100644 --- a/src/main/java/org/genesys/catalog/api/v0/MeController.java +++ b/src/main/java/org/genesys/catalog/api/v0/MeController.java @@ -18,7 +18,6 @@ package org.genesys.catalog.api.v0; import java.io.IOException; import java.util.UUID; -import org.apache.commons.lang3.StringUtils; import org.genesys.blocks.security.SecurityContextUtil; import org.genesys.blocks.security.UserException; import org.genesys.blocks.security.lockout.AccountLockoutManager; @@ -159,6 +158,7 @@ public class MeController { * @param sort the sort * @param partnerFilter the partner filter * @return the page + * @deprecated Moved to PartnerController */ @PostMapping(value = "/partners") public Page myPartners(@RequestParam(name = "p", required = false, defaultValue = "0") final int page, @@ -180,6 +180,7 @@ public class MeController { * @param filter the filter * @return the page * @throws IOException + * @deprecated Moved to DatasetController */ @PostMapping(value = "/datasets") public FilteredPage myDatasets(@RequestParam(name = "p", required = false, defaultValue = "0") final int page, @@ -189,7 +190,7 @@ public class MeController { @RequestParam(name = "f", required = false) String filterCode, @RequestBody(required = false) DatasetFilter filter) throws IOException { - if (StringUtils.isNotBlank(filterCode)) { + if (filterCode != null) { filter = shortFilterService.filterByCode(filterCode, DatasetFilter.class); } else { filterCode = shortFilterService.getCode(filter); @@ -207,6 +208,7 @@ public class MeController { * @param filter the descriptor filter * @return the page * @throws IOException + * @deprecated Moved to DescriptorController */ @PostMapping(value = "/descriptors") public FilteredPage myDescriptors(@RequestParam(name = "p", required = false, defaultValue = "0") final int page, @@ -216,7 +218,7 @@ public class MeController { @RequestParam(name = "f", required = false) String filterCode, @RequestBody(required = false) DescriptorFilter filter) throws IOException { - if (StringUtils.isNotBlank(filterCode)) { + if (filterCode != null) { filter = shortFilterService.filterByCode(filterCode, DescriptorFilter.class); } else { filterCode = shortFilterService.getCode(filter); @@ -234,6 +236,7 @@ public class MeController { * @param descriptorListFilter the descriptor list filter * @return the page * @throws IOException + * @deprecated Moved to DescriptorListController */ @PostMapping(value = "/descriptorlists") public FilteredPage myDescriptorLists(@RequestParam(name = "p", required = false, defaultValue = "0") final int page, @@ -243,7 +246,7 @@ public class MeController { @RequestParam(name = "f", required = false) String filterCode, @RequestBody(required = false) DescriptorListFilter filter) throws IOException { - if (StringUtils.isNotBlank(filterCode)) { + if (filterCode != null) { filter = shortFilterService.filterByCode(filterCode, DescriptorListFilter.class); } else { filterCode = shortFilterService.getCode(filter); diff --git a/src/main/java/org/genesys/catalog/api/v0/PartnerController.java b/src/main/java/org/genesys/catalog/api/v0/PartnerController.java index 6a9e00a7a5d853fb7061fffcf6864a1ba86696e5..f9ef4021efb91581c4882062c7402438d8513177 100644 --- a/src/main/java/org/genesys/catalog/api/v0/PartnerController.java +++ b/src/main/java/org/genesys/catalog/api/v0/PartnerController.java @@ -18,7 +18,6 @@ package org.genesys.catalog.api.v0; import java.io.IOException; import java.util.UUID; -import org.apache.commons.lang3.StringUtils; import org.genesys.catalog.api.FilteredPage; import org.genesys.catalog.model.Partner; import org.genesys.catalog.model.filters.PartnerFilter; @@ -26,6 +25,7 @@ import org.genesys.catalog.service.PartnerService; import org.genesys.catalog.service.ShortFilterService; import org.genesys2.server.api.ApiBaseController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.security.access.prepost.PreAuthorize; @@ -60,6 +60,26 @@ public class PartnerController { @Autowired protected ShortFilterService shortFilterService; + + /** + * My partners. + * + * @param page the page + * @param pageSize the page size + * @param direction the direction + * @param sort the sort + * @param partnerFilter the partner filter + * @return the page + */ + @PostMapping(value = "/list-mine") + public Page myPartners(@RequestParam(name = "p", required = false, defaultValue = "0") final int page, + @RequestParam(name = "l", required = false, defaultValue = "50") final int pageSize, + @RequestParam(name = "d", required = false, defaultValue = "ASC") final Sort.Direction direction, + @RequestParam(name = "s", required = false, defaultValue = "name") final String[] sort, @RequestBody final PartnerFilter partnerFilter) { + + return partnerService.listPartnersForCurrentUser(partnerFilter, new PageRequest(page, Integer.min(pageSize, 100), direction, sort)); + } + /** * List partners. * @@ -77,9 +97,9 @@ public class PartnerController { @RequestParam(name = "d", required = false, defaultValue = "ASC") final Sort.Direction direction, @RequestParam(name = "s", required = false, defaultValue = "id") final String[] sort, @RequestParam(name = "f", required = false) String filterCode, - @RequestBody PartnerFilter filter) throws IOException { + @RequestBody(required = false) PartnerFilter filter) throws IOException { - if (StringUtils.isNotBlank(filterCode)) { + if (filterCode != null) { filter = shortFilterService.filterByCode(filterCode, PartnerFilter.class); } else { filterCode = shortFilterService.getCode(filter); diff --git a/src/main/java/org/genesys/catalog/api/v0/VocabularyController.java b/src/main/java/org/genesys/catalog/api/v0/VocabularyController.java index 808e5b86f4b197649bc21a388daac4091b23a3df..314185cec7a9f12c6bf0f73a7fad74d4aab538d0 100644 --- a/src/main/java/org/genesys/catalog/api/v0/VocabularyController.java +++ b/src/main/java/org/genesys/catalog/api/v0/VocabularyController.java @@ -163,14 +163,22 @@ public class VocabularyController { * @param sort the sort * @param filter the controlled vocabulary filter * @return the page + * @throws IOException */ @PostMapping(value = "/list") public FilteredPage list(@RequestParam(name = "p", required = false, defaultValue = "0") final int page, @RequestParam(name = "l", required = false, defaultValue = "50") final int pageSize, @RequestParam(name = "d", required = false, defaultValue = "ASC") final Sort.Direction direction, - @RequestParam(name = "s", required = false, defaultValue = "id") final String[] sort, @RequestBody final ControlledVocabularyFilter filter) { - - return new FilteredPage<>(shortFilterService.getCode(filter), filter, vocabularyService.listVocabularies(filter, new PageRequest(page, Integer.min(pageSize, 100), direction, sort))); + @RequestParam(name = "s", required = false, defaultValue = "id") final String[] sort, + @RequestParam(name = "f", required = false) String filterCode, + @RequestBody(required = false) ControlledVocabularyFilter filter) throws IOException { + + if (filterCode != null) { + filter = shortFilterService.filterByCode(filterCode, ControlledVocabularyFilter.class); + } else { + filterCode = shortFilterService.getCode(filter); + } + return new FilteredPage<>(filterCode, filter, vocabularyService.listVocabularies(filter, new PageRequest(page, Integer.min(pageSize, 100), direction, sort))); } /** diff --git a/src/main/java/org/genesys/catalog/exceptions/NotFoundElement.java b/src/main/java/org/genesys/catalog/exceptions/NotFoundElement.java index e88bec3d7d8b249231893ed9c2339ad861328617..34e4f2003cf370f5281282930467873826ace5e5 100644 --- a/src/main/java/org/genesys/catalog/exceptions/NotFoundElement.java +++ b/src/main/java/org/genesys/catalog/exceptions/NotFoundElement.java @@ -21,6 +21,7 @@ package org.genesys.catalog.exceptions; * * @author Andrey Lugovskoy. */ +// TODO Replace with org.genesys2.server.api.NotFoundElement public class NotFoundElement extends InvalidApiUsageException { private static final long serialVersionUID = 6621976491018091330L; diff --git a/src/main/java/org/genesys2/server/api/v1/SubsetRestController.java b/src/main/java/org/genesys2/server/api/v1/SubsetController.java similarity index 77% rename from src/main/java/org/genesys2/server/api/v1/SubsetRestController.java rename to src/main/java/org/genesys2/server/api/v1/SubsetController.java index 21248a8f4dca94e2a3b5e720bb030879715c6294..7f37d0340ec028e0c46225bf871160529c07fa9d 100644 --- a/src/main/java/org/genesys2/server/api/v1/SubsetRestController.java +++ b/src/main/java/org/genesys2/server/api/v1/SubsetController.java @@ -16,14 +16,16 @@ package org.genesys2.server.api.v1; +import java.io.IOException; import java.util.Set; import java.util.UUID; +import org.genesys.catalog.api.FilteredPage; +import org.genesys.catalog.service.ShortFilterService; import org.genesys2.server.model.impl.Subset; import org.genesys2.server.service.SubsetService; import org.genesys2.server.service.filter.SubsetFilter; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.http.MediaType; @@ -40,15 +42,15 @@ import org.springframework.web.bind.annotation.RestController; import io.swagger.annotations.Api; /** - * The Class SubsetRestController. + * The Class SubsetController. * * @author Maxym Borodenko */ @RestController("subsetApi1") @PreAuthorize("isAuthenticated()") -@RequestMapping(SubsetRestController.API_BASE) +@RequestMapping(SubsetController.API_BASE) @Api(tags = { "subset" }) -public class SubsetRestController { +public class SubsetController { /** The Constant API_BASE. */ public static final String API_BASE = "/api/v1/subset"; @@ -56,6 +58,10 @@ public class SubsetRestController { @Autowired private SubsetService subsetService; + /** The short filter service. */ + @Autowired + protected ShortFilterService shortFilterService; + /** * Register the subset. * @@ -90,14 +96,14 @@ public class SubsetRestController { } /** - * Delete subset. + * Remove subset. * * @param uuid the uuid * @param version the version * @return the subset */ @DeleteMapping(value = "/{UUID},{version}", produces = { MediaType.APPLICATION_JSON_VALUE }) - public Subset delete(@PathVariable("UUID") final UUID uuid, @PathVariable("version") final int version) { + public Subset remove(@PathVariable("UUID") final UUID uuid, @PathVariable("version") final int version) { return subsetService.delete(subsetService.get(uuid, version)); } @@ -110,13 +116,22 @@ public class SubsetRestController { * @param sort the sort * @param filter the filter * @return the page + * @throws IOException */ @PostMapping(value = "/list", produces = { MediaType.APPLICATION_JSON_VALUE }) - public Page list(@RequestParam(name = "p", required = false, defaultValue = "0") final int page, - @RequestParam(name = "l", required = false, defaultValue = "50") final int pageSize, - @RequestParam(name = "d", required = false, defaultValue = "ASC") final Sort.Direction direction, - @RequestParam(name = "s", required = false, defaultValue = "id") final String[] sort, @RequestBody final SubsetFilter filter) { - return subsetService.list(filter, new PageRequest(page, Integer.min(pageSize, 100), direction, sort)); + public FilteredPage list(@RequestParam(name = "p", required = false, defaultValue = "0") final int page, + @RequestParam(name = "l", required = false, defaultValue = "50") final int pageSize, + @RequestParam(name = "d", required = false, defaultValue = "ASC") final Sort.Direction direction, + @RequestParam(name = "s", required = false, defaultValue = "id") final String[] sort, + @RequestParam(name = "f", required = false) String filterCode, + @RequestBody(required = false) SubsetFilter filter) throws IOException { + + if (filterCode != null) { + filter = shortFilterService.filterByCode(filterCode, SubsetFilter.class); + } else { + filterCode = shortFilterService.getCode(filter); + } + return new FilteredPage<>(filterCode, filter, subsetService.list(filter, new PageRequest(page, Integer.min(pageSize, 100), direction, sort))); } /** diff --git a/src/test/java/org/genesys2/server/servlet/controller/rest/api/v1/SubsetRestControllerTest.java b/src/test/java/org/genesys2/server/servlet/controller/rest/api/v1/SubsetRestControllerTest.java index 91a36c5e84883200dcc470a899cf2e62c331511c..5f8110ce3c193001903ca3a1b1b4fc821750fcb2 100644 --- a/src/test/java/org/genesys2/server/servlet/controller/rest/api/v1/SubsetRestControllerTest.java +++ b/src/test/java/org/genesys2/server/servlet/controller/rest/api/v1/SubsetRestControllerTest.java @@ -37,7 +37,7 @@ import java.util.UUID; import java.util.stream.Collectors; import org.elasticsearch.common.collect.Lists; -import org.genesys2.server.api.v1.SubsetRestController; +import org.genesys2.server.api.v1.SubsetController; import org.genesys2.server.model.genesys.Accession; import org.genesys2.server.model.genesys.AccessionId; import org.genesys2.server.model.genesys.Taxonomy2; @@ -137,7 +137,7 @@ public class SubsetRestControllerTest extends AbstractRestTest { final String s = verboseMapper.writeValueAsString(setUpSubset()); /*@formatter:off*/ - mockMvc.perform(post(SubsetRestController.API_BASE + "/create") + mockMvc.perform(post(SubsetController.API_BASE + "/create") .contentType(MediaType.APPLICATION_JSON) .content(s)) // .andDo(MockMvcResultHandlers.print()) @@ -172,7 +172,7 @@ public class SubsetRestControllerTest extends AbstractRestTest { final String s = verboseMapper.writeValueAsString(storedSubset); /*@formatter:off*/ - mockMvc.perform(post(SubsetRestController.API_BASE + "/update") + mockMvc.perform(post(SubsetController.API_BASE + "/update") .contentType(MediaType.APPLICATION_JSON) .content(s)) // .andDo(MockMvcResultHandlers.print()) @@ -190,7 +190,7 @@ public class SubsetRestControllerTest extends AbstractRestTest { final Subset subset = subsetService.create(setUpSubset()); /*@formatter:off*/ - mockMvc.perform(get(SubsetRestController.API_BASE.concat("/{UUID}"), subset.getUuid()) + mockMvc.perform(get(SubsetController.API_BASE.concat("/{UUID}"), subset.getUuid()) .contentType(MediaType.APPLICATION_JSON)) // .andDo(MockMvcResultHandlers.print()) .andExpect(status().isOk()) @@ -204,7 +204,7 @@ public class SubsetRestControllerTest extends AbstractRestTest { final Subset subset = subsetService.create(setUpSubset()); /*@formatter:off*/ - mockMvc.perform(delete(SubsetRestController.API_BASE.concat("/{UUID},{version}"), subset.getUuid(), subset.getVersion()) + mockMvc.perform(delete(SubsetController.API_BASE.concat("/{UUID},{version}"), subset.getUuid(), subset.getVersion()) .contentType(MediaType.APPLICATION_JSON)) // .andDo(MockMvcResultHandlers.print()) .andExpect(status().isOk()) @@ -221,7 +221,7 @@ public class SubsetRestControllerTest extends AbstractRestTest { subsetFilter.published = true; /*@formatter:off*/ - mockMvc.perform(post(SubsetRestController.API_BASE.concat("/list")) + mockMvc.perform(post(SubsetController.API_BASE.concat("/list")) .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(subsetFilter))) // .andDo(MockMvcResultHandlers.print()) @@ -240,7 +240,7 @@ public class SubsetRestControllerTest extends AbstractRestTest { final Set accessionsUuid = subset.getAccessionIds().stream().map(AccessionId::getUuid).collect(Collectors.toSet()); /*@formatter:off*/ - mockMvc.perform(post(SubsetRestController.API_BASE.concat("/remove-accessions/{UUID},{version}"), subset.getUuid(), subset.getVersion()) + mockMvc.perform(post(SubsetController.API_BASE.concat("/remove-accessions/{UUID},{version}"), subset.getUuid(), subset.getVersion()) .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(accessionsUuid))) // .andDo(MockMvcResultHandlers.print()) @@ -261,7 +261,7 @@ public class SubsetRestControllerTest extends AbstractRestTest { final Set accessionsUuid = newAccessions.stream().map(AccessionId::getUuid).collect(Collectors.toSet()); /*@formatter:off*/ - mockMvc.perform(post(SubsetRestController.API_BASE.concat("/add-accessions/{UUID},{version}"), subset.getUuid(), subset.getVersion()) + mockMvc.perform(post(SubsetController.API_BASE.concat("/add-accessions/{UUID},{version}"), subset.getUuid(), subset.getVersion()) .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(accessionsUuid))) // .andDo(MockMvcResultHandlers.print()) diff --git a/src/test/java/org/genesys2/server/test/JpaDataConfig.java b/src/test/java/org/genesys2/server/test/JpaDataConfig.java index 4cb23541e402950edaa9e375619cadb07c2dee7c..9ebf4fb77268e5efe9bdda049fbef37dd73c6a39 100644 --- a/src/test/java/org/genesys2/server/test/JpaDataConfig.java +++ b/src/test/java/org/genesys2/server/test/JpaDataConfig.java @@ -50,8 +50,9 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration @PropertySource("classpath:/spring/spring.properties") -@EnableJpaRepositories(basePackages = { "org.genesys.blocks.persistence", "org.genesys.blocks.security.persistence","org.genesys.blocks.oauth.persistence", "org.genesys.filerepository.persistence", "org.genesys2.server.persistence.acl", "org.genesys2.server.persistence", - "org.genesys2.server.filerepository.persistence" }, repositoryImplementationPostfix = "CustomImpl", entityManagerFactoryRef = "entityManagerFactory", transactionManagerRef = "transactionManager") +@EnableJpaRepositories(basePackages = { "org.genesys.blocks.persistence", "org.genesys.blocks.security.persistence", "org.genesys.blocks.oauth.persistence", + "org.genesys.blocks.auditlog.persistence", "org.genesys2.server.persistence", "org.genesys2.server.persistence.acl", + "org.genesys.filerepository.persistence", "org.genesys.catalog.persistence" }, entityManagerFactoryRef = "entityManagerFactory", transactionManagerRef = "transactionManager", repositoryImplementationPostfix = "CustomImpl") @EnableTransactionManagement public class JpaDataConfig { @Autowired @@ -80,7 +81,8 @@ public class JpaDataConfig { bean.setDataSource(dataSource()); bean.setPersistenceUnitName("spring-jpa"); - bean.setPackagesToScan("org.genesys.blocks.model", "org.genesys.blocks.security.model", "org.genesys.blocks.oauth.model", "org.genesys2.server.model", "org.genesys.filerepository.model"); + bean.setPackagesToScan("org.genesys.blocks.model", "org.genesys.blocks.auditlog.model", "org.genesys.blocks.security.model", + "org.genesys.blocks.oauth.model", "org.genesys2.server.model", "org.genesys.filerepository.model", "org.genesys.catalog.model"); bean.setPersistenceProvider(new HibernatePersistenceProvider()); final HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter(); diff --git a/src/test/java/org/genesys2/tests/resttests/AbstractRestTest.java b/src/test/java/org/genesys2/tests/resttests/AbstractRestTest.java index 59ba83c2323f926ec0a5e81b462fc189c67e13ba..ebb636fb3ac41c7a91e15fa734174f3e2399391c 100644 --- a/src/test/java/org/genesys2/tests/resttests/AbstractRestTest.java +++ b/src/test/java/org/genesys2/tests/resttests/AbstractRestTest.java @@ -36,6 +36,8 @@ import org.genesys.blocks.security.service.CustomAclService; import org.genesys.blocks.security.service.PasswordPolicy; import org.genesys.blocks.security.service.impl.CustomAclServiceImpl; import org.genesys.blocks.security.service.impl.SimplePasswordPolicy; +import org.genesys.catalog.service.ShortFilterService; +import org.genesys.catalog.service.impl.ShortFilterServiceImpl; import org.genesys.filerepository.persistence.RepositoryFilePersistence; import org.genesys.filerepository.service.BytesStorageService; import org.genesys.filerepository.service.ImageGalleryService; @@ -60,7 +62,7 @@ import org.genesys2.server.api.v0.PermissionController; import org.genesys2.server.api.v0.RequestsController; import org.genesys2.server.api.v0.TraitsController; import org.genesys2.server.api.v0.UsersController; -import org.genesys2.server.api.v1.SubsetRestController; +import org.genesys2.server.api.v1.SubsetController; import org.genesys2.server.aspect.AsAdminAspect; import org.genesys2.server.aspect.GenesysImageGalleryAspects; import org.genesys2.server.mvc.admin.OAuthManagementController; @@ -235,10 +237,15 @@ public abstract class AbstractRestTest extends BaseSpringTest { fsss.setRepositoryBaseDirectory(new File("data/repository")); return fsss; } + + @Bean + public ShortFilterService shortFilterService() { + return new ShortFilterServiceImpl(); + } @Bean - public SubsetRestController subsetRestController() { - return new SubsetRestController(); + public SubsetController subsetController() { + return new SubsetController(); } @Bean