TSK-307: fixed bug and consolidated code structure.
This commit is contained in:
parent
cf7d795e3c
commit
0e393f35f6
|
|
@ -4,7 +4,6 @@ import java.sql.SQLException;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
|
|
||||||
import org.modelmapper.ModelMapper;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||||
|
|
@ -22,11 +21,10 @@ import pro.taskana.ClassificationService;
|
||||||
import pro.taskana.TaskMonitorService;
|
import pro.taskana.TaskMonitorService;
|
||||||
import pro.taskana.TaskService;
|
import pro.taskana.TaskService;
|
||||||
import pro.taskana.TaskanaEngine;
|
import pro.taskana.TaskanaEngine;
|
||||||
import pro.taskana.Workbasket;
|
|
||||||
import pro.taskana.WorkbasketService;
|
import pro.taskana.WorkbasketService;
|
||||||
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
import pro.taskana.configuration.TaskanaEngineConfiguration;
|
||||||
import pro.taskana.rest.resource.mapper.WorkbasketDefinitionMapper;
|
import pro.taskana.rest.resource.mapper.WorkbasketDefinitionMapper;
|
||||||
import pro.taskana.rest.serialization.WorkbasketMixIn;
|
import pro.taskana.rest.resource.mapper.WorkbasketSummaryMapper;
|
||||||
import pro.taskana.sampledata.SampleDataGenerator;
|
import pro.taskana.sampledata.SampleDataGenerator;
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
|
|
@ -58,6 +56,16 @@ public class RestApplication {
|
||||||
return getTaskanaEngine().getWorkbasketService();
|
return getTaskanaEngine().getWorkbasketService();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public WorkbasketSummaryMapper getWorkbasketSummaryMapper() {
|
||||||
|
return new WorkbasketSummaryMapper();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public WorkbasketDefinitionMapper getWorkbasketDefinitionMapper() {
|
||||||
|
return new WorkbasketDefinitionMapper();
|
||||||
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
|
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
|
||||||
public TaskanaEngine getTaskanaEngine() throws SQLException {
|
public TaskanaEngine getTaskanaEngine() throws SQLException {
|
||||||
|
|
@ -71,15 +79,6 @@ public class RestApplication {
|
||||||
return taskanaEngineConfiguration;
|
return taskanaEngineConfiguration;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostConstruct
|
|
||||||
public void createSampleData() {
|
|
||||||
try {
|
|
||||||
new SampleDataGenerator(getTaskanaEngineConfiguration().createDefaultDataSource()).generateSampleData();
|
|
||||||
} catch (SQLException e) {
|
|
||||||
logger.error("Could not create sample data.", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Needed to override JSON De-/Serializer in Jackson.
|
* Needed to override JSON De-/Serializer in Jackson.
|
||||||
*
|
*
|
||||||
|
|
@ -89,7 +88,7 @@ public class RestApplication {
|
||||||
@Bean
|
@Bean
|
||||||
public Jackson2ObjectMapperBuilder jacksonBuilder(HandlerInstantiator handlerInstantiator) {
|
public Jackson2ObjectMapperBuilder jacksonBuilder(HandlerInstantiator handlerInstantiator) {
|
||||||
Jackson2ObjectMapperBuilder b = new Jackson2ObjectMapperBuilder();
|
Jackson2ObjectMapperBuilder b = new Jackson2ObjectMapperBuilder();
|
||||||
b.indentOutput(true).mixIn(Workbasket.class, WorkbasketMixIn.class);
|
b.indentOutput(true);
|
||||||
b.handlerInstantiator(handlerInstantiator);
|
b.handlerInstantiator(handlerInstantiator);
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
@ -105,13 +104,13 @@ public class RestApplication {
|
||||||
return new SpringHandlerInstantiator(context.getAutowireCapableBeanFactory());
|
return new SpringHandlerInstantiator(context.getAutowireCapableBeanFactory());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@PostConstruct
|
||||||
public ModelMapper modelMapper() {
|
public void createSampleData() {
|
||||||
return new ModelMapper();
|
try {
|
||||||
|
new SampleDataGenerator(getTaskanaEngineConfiguration().createDefaultDataSource()).generateSampleData();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
logger.error("Could not create sample data.", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
|
||||||
public WorkbasketDefinitionMapper getWorkbasketDefinitionMapper() {
|
|
||||||
return new WorkbasketDefinitionMapper();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,10 @@
|
||||||
package pro.taskana.rest;
|
package pro.taskana.rest;
|
||||||
|
|
||||||
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.hateoas.Link;
|
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
|
@ -31,9 +28,8 @@ import pro.taskana.exceptions.NotAuthorizedException;
|
||||||
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
import pro.taskana.exceptions.WorkbasketNotFoundException;
|
||||||
import pro.taskana.impl.WorkbasketAuthorization;
|
import pro.taskana.impl.WorkbasketAuthorization;
|
||||||
import pro.taskana.impl.WorkbasketType;
|
import pro.taskana.impl.WorkbasketType;
|
||||||
import pro.taskana.rest.dto.WorkbasketSummaryDto;
|
import pro.taskana.rest.resource.WorkbasketSummaryResource;
|
||||||
import pro.taskana.rest.mapper.WorkbasketSummaryMapper;
|
import pro.taskana.rest.resource.mapper.WorkbasketSummaryMapper;
|
||||||
import pro.taskana.security.CurrentUserContext;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping(path = "/v1/workbaskets", produces = {MediaType.APPLICATION_JSON_VALUE})
|
@RequestMapping(path = "/v1/workbaskets", produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||||
|
|
@ -49,47 +45,45 @@ public class WorkbasketController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private WorkbasketService workbasketService;
|
private WorkbasketService workbasketService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private WorkbasketSummaryMapper workbasketSummaryMapper;
|
private WorkbasketSummaryMapper workbasketSummaryMapper;
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET)
|
@RequestMapping(method = RequestMethod.GET)
|
||||||
public ResponseEntity<List<WorkbasketSummaryDto>> GetWorkbaskets(
|
public ResponseEntity<List<WorkbasketSummaryResource>> getWorkbaskets(
|
||||||
@RequestParam(value = "sortBy", defaultValue = "name", required = false) String sortBy,
|
@RequestParam(value = "sortBy", defaultValue = "name", required = false) String sortBy,
|
||||||
@RequestParam(value = "order", defaultValue = "asc", required = false) String order,
|
@RequestParam(value = "order", defaultValue = "asc", required = false) String order,
|
||||||
@RequestParam(value = "name", defaultValue = "", required = false) String name,
|
@RequestParam(value = "name", required = false) String name,
|
||||||
@RequestParam(value = "nameLike", defaultValue = "", required = false) String nameLike,
|
@RequestParam(value = "nameLike", required = false) String nameLike,
|
||||||
@RequestParam(value = "descLike", defaultValue = "", required = false) String descLike,
|
@RequestParam(value = "descLike", required = false) String descLike,
|
||||||
@RequestParam(value = "owner", defaultValue = "", required = false) String owner,
|
@RequestParam(value = "owner", required = false) String owner,
|
||||||
@RequestParam(value = "ownerLike", defaultValue = "", required = false) String ownerLike,
|
@RequestParam(value = "ownerLike", required = false) String ownerLike,
|
||||||
@RequestParam(value = "type", defaultValue = "", required = false) String type,
|
@RequestParam(value = "type", required = false) String type,
|
||||||
@RequestParam(value = "requiredPermission", defaultValue = "", required = false) String requiredPermission) {
|
@RequestParam(value = "requiredPermission", required = false) String requiredPermission) {
|
||||||
|
|
||||||
List<WorkbasketSummary> workbasketsSummary;
|
List<WorkbasketSummary> workbasketsSummary;
|
||||||
WorkbasketQuery query = workbasketService.createWorkbasketQuery();
|
WorkbasketQuery query = workbasketService.createWorkbasketQuery();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
AddSortByQuery(query, sortBy, order);
|
addSortingToQuery(query, sortBy, order);
|
||||||
AddFilterQuery(query, name, nameLike, descLike, owner, ownerLike, type);
|
addAttributeFilter(query, name, nameLike, descLike, owner, ownerLike, type);
|
||||||
AddAuthorization(query, requiredPermission);
|
addAuthorizationFilter(query, requiredPermission);
|
||||||
workbasketsSummary = query.list();
|
workbasketsSummary = query.list();
|
||||||
|
|
||||||
} catch (InvalidArgumentException e) {
|
} catch (InvalidArgumentException e) {
|
||||||
return new ResponseEntity<>(HttpStatus.CONFLICT);
|
return new ResponseEntity<>(HttpStatus.CONFLICT);
|
||||||
} catch (InvalidRequestException e) {
|
} catch (InvalidRequestException e) {
|
||||||
return new ResponseEntity<>(HttpStatus.CONFLICT);
|
return new ResponseEntity<>(HttpStatus.CONFLICT);
|
||||||
} catch (NotAuthorizedException e) {
|
|
||||||
return new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new ResponseEntity<>(workbasketsSummary.stream()
|
return new ResponseEntity<>(workbasketsSummary.stream()
|
||||||
.map(workbasket -> workbasketSummaryMapper.convertToDto(workbasket))
|
.map(workbasket -> workbasketSummaryMapper.toResource(workbasket))
|
||||||
.map(WorkbasketController::WorkbasketSummaryLink)
|
|
||||||
.collect(Collectors.toList()), HttpStatus.OK);
|
.collect(Collectors.toList()), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/{workbasketid}")
|
@RequestMapping(value = "/{workbasketid}")
|
||||||
public ResponseEntity<Workbasket> getWorkbasketById(@PathVariable(value = "workbasketid") String workbasketId) {
|
public ResponseEntity<Workbasket> getWorkbasket(@PathVariable(value = "workbasketid") String workbasketId) {
|
||||||
try {
|
try {
|
||||||
Workbasket workbasket = workbasketService.getWorkbasket(workbasketId);
|
Workbasket workbasket = workbasketService.getWorkbasket(workbasketId);
|
||||||
return new ResponseEntity<>(workbasket, HttpStatus.OK);
|
return new ResponseEntity<>(workbasket, HttpStatus.OK);
|
||||||
|
|
@ -149,68 +143,68 @@ public class WorkbasketController {
|
||||||
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
|
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddAuthorization(WorkbasketQuery query, String requiredPermission) throws InvalidArgumentException {
|
private void addAuthorizationFilter(WorkbasketQuery query, String requiredPermission)
|
||||||
if (requiredPermission.isEmpty()) {
|
throws InvalidArgumentException {
|
||||||
|
if (requiredPermission == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String[] accessIds = GetCurrentUserAccessIds();
|
|
||||||
for (String authorization : Arrays.asList(requiredPermission.split(","))) {
|
for (String authorization : Arrays.asList(requiredPermission.split(","))) {
|
||||||
try {
|
try {
|
||||||
switch (authorization.trim()) {
|
switch (authorization.trim()) {
|
||||||
case "READ":
|
case "READ":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.READ, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.READ);
|
||||||
break;
|
break;
|
||||||
case "OPEN":
|
case "OPEN":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.OPEN, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.OPEN);
|
||||||
break;
|
break;
|
||||||
case "APPEND":
|
case "APPEND":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.APPEND, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.APPEND);
|
||||||
break;
|
break;
|
||||||
case "TRANSFER":
|
case "TRANSFER":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.TRANSFER, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.TRANSFER);
|
||||||
break;
|
break;
|
||||||
case "DISTRIBUTE":
|
case "DISTRIBUTE":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.DISTRIBUTE, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.DISTRIBUTE);
|
||||||
break;
|
break;
|
||||||
case "DELETE":
|
case "DELETE":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.DELETE, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.DELETE);
|
||||||
break;
|
break;
|
||||||
case "CUSTOM_1":
|
case "CUSTOM_1":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.CUSTOM_1, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.CUSTOM_1);
|
||||||
break;
|
break;
|
||||||
case "CUSTOM_2":
|
case "CUSTOM_2":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.CUSTOM_2, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.CUSTOM_2);
|
||||||
break;
|
break;
|
||||||
case "CUSTOM_3":
|
case "CUSTOM_3":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.CUSTOM_3, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.CUSTOM_3);
|
||||||
break;
|
break;
|
||||||
case "CUSTOM_4":
|
case "CUSTOM_4":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.CUSTOM_4, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.CUSTOM_4);
|
||||||
break;
|
break;
|
||||||
case "CUSTOM_5":
|
case "CUSTOM_5":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.CUSTOM_5, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.CUSTOM_5);
|
||||||
break;
|
break;
|
||||||
case "CUSTOM_6":
|
case "CUSTOM_6":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.CUSTOM_6, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.CUSTOM_6);
|
||||||
break;
|
break;
|
||||||
case "CUSTOM_7":
|
case "CUSTOM_7":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.CUSTOM_7, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.CUSTOM_7);
|
||||||
break;
|
break;
|
||||||
case "CUSTOM_8":
|
case "CUSTOM_8":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.CUSTOM_8, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.CUSTOM_8);
|
||||||
break;
|
break;
|
||||||
case "CUSTOM_9":
|
case "CUSTOM_9":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.CUSTOM_9, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.CUSTOM_9);
|
||||||
break;
|
break;
|
||||||
case "CUSTOM_10":
|
case "CUSTOM_10":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.CUSTOM_10, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.CUSTOM_10);
|
||||||
break;
|
break;
|
||||||
case "CUSTOM_11":
|
case "CUSTOM_11":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.CUSTOM_11, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.CUSTOM_11);
|
||||||
break;
|
break;
|
||||||
case "CUSTOM_12":
|
case "CUSTOM_12":
|
||||||
query.accessIdsHavePermission(WorkbasketAuthorization.CUSTOM_12, accessIds);
|
query.callerHasPermission(WorkbasketAuthorization.CUSTOM_12);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} catch (InvalidArgumentException e) {
|
} catch (InvalidArgumentException e) {
|
||||||
|
|
@ -219,12 +213,12 @@ public class WorkbasketController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddSortByQuery(WorkbasketQuery query, String sortBy, String order)
|
private void addSortingToQuery(WorkbasketQuery query, String sortBy, String order)
|
||||||
throws InvalidRequestException, InvalidArgumentException {
|
throws InvalidRequestException, InvalidArgumentException {
|
||||||
BaseQuery.SortDirection sortDirection = GetSortDirecction(order);
|
BaseQuery.SortDirection sortDirection = getSortDirection(order);
|
||||||
|
|
||||||
if (sortBy.equals(NAME)) {
|
if (sortBy.equals(NAME)) {
|
||||||
query.orderByKey(sortDirection);
|
query.orderByName(sortDirection);
|
||||||
} else if (sortBy.equals(KEY)) {
|
} else if (sortBy.equals(KEY)) {
|
||||||
query.orderByKey(sortDirection);
|
query.orderByKey(sortDirection);
|
||||||
} else if (sortBy.equals(DESCRIPTION)) {
|
} else if (sortBy.equals(DESCRIPTION)) {
|
||||||
|
|
@ -236,56 +230,39 @@ public class WorkbasketController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private BaseQuery.SortDirection GetSortDirecction(String order) throws InvalidRequestException {
|
private BaseQuery.SortDirection getSortDirection(String order) throws InvalidRequestException {
|
||||||
if (order.equals(DESC)) {
|
if (order.equals(DESC)) {
|
||||||
return BaseQuery.SortDirection.DESCENDING;
|
return BaseQuery.SortDirection.DESCENDING;
|
||||||
}
|
}
|
||||||
return BaseQuery.SortDirection.ASCENDING;
|
return BaseQuery.SortDirection.ASCENDING;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddFilterQuery(WorkbasketQuery query,
|
private void addAttributeFilter(WorkbasketQuery query,
|
||||||
String name, String nameLike,
|
String name, String nameLike,
|
||||||
String descLike, String owner,
|
String descLike, String owner,
|
||||||
String ownerLike, String type) throws NotAuthorizedException, InvalidArgumentException {
|
String ownerLike, String type) throws InvalidArgumentException {
|
||||||
if (!name.isEmpty())
|
if (name != null)
|
||||||
query.nameIn(name);
|
query.nameIn(name);
|
||||||
if (!nameLike.isEmpty())
|
if (nameLike != null)
|
||||||
query.nameLike(LIKE + nameLike + LIKE);
|
query.nameLike(LIKE + nameLike + LIKE);
|
||||||
if (!owner.isEmpty())
|
if (owner != null)
|
||||||
query.ownerIn(owner);
|
query.ownerIn(owner);
|
||||||
if (!ownerLike.isEmpty())
|
if (ownerLike != null)
|
||||||
query.ownerLike(LIKE + ownerLike + LIKE);
|
query.ownerLike(LIKE + ownerLike + LIKE);
|
||||||
if (!descLike.isEmpty())
|
if (descLike != null)
|
||||||
query.descriptionLike(LIKE + descLike + LIKE);
|
query.descriptionLike(LIKE + descLike + LIKE);
|
||||||
switch (type) {
|
if (type != null) {
|
||||||
case "PERSONAL":
|
switch (type) {
|
||||||
query.typeIn(WorkbasketType.PERSONAL);
|
case "PERSONAL":
|
||||||
case "GROUP":
|
query.typeIn(WorkbasketType.PERSONAL);
|
||||||
query.typeIn(WorkbasketType.GROUP);
|
case "GROUP":
|
||||||
case "CLEARANCE":
|
query.typeIn(WorkbasketType.GROUP);
|
||||||
query.typeIn(WorkbasketType.CLEARANCE);
|
case "CLEARANCE":
|
||||||
case "TOPIC":
|
query.typeIn(WorkbasketType.CLEARANCE);
|
||||||
query.typeIn(WorkbasketType.TOPIC);
|
case "TOPIC":
|
||||||
|
query.typeIn(WorkbasketType.TOPIC);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String[] GetCurrentUserAccessIds() throws InvalidArgumentException {
|
|
||||||
String[] accessIds;
|
|
||||||
List<String> ucAccessIds = CurrentUserContext.getAccessIds();
|
|
||||||
if (ucAccessIds != null && !ucAccessIds.isEmpty()) {
|
|
||||||
accessIds = new String[ucAccessIds.size()];
|
|
||||||
accessIds = ucAccessIds.toArray(accessIds);
|
|
||||||
} else {
|
|
||||||
throw new InvalidArgumentException("CurrentUserContext need to have at least one accessId.");
|
|
||||||
}
|
|
||||||
return accessIds;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static WorkbasketSummaryDto WorkbasketSummaryLink(WorkbasketSummaryDto workbasketSummaryDto) {
|
|
||||||
|
|
||||||
Link selfLink = linkTo(WorkbasketController.class).slash(workbasketSummaryDto.getWorkbasketId()).withSelfRel();
|
|
||||||
workbasketSummaryDto.add(selfLink);
|
|
||||||
return workbasketSummaryDto;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,108 +0,0 @@
|
||||||
package pro.taskana.rest.dto;
|
|
||||||
|
|
||||||
import org.springframework.hateoas.ResourceSupport;
|
|
||||||
|
|
||||||
import pro.taskana.impl.WorkbasketType;
|
|
||||||
|
|
||||||
public class WorkbasketSummaryDto extends ResourceSupport {
|
|
||||||
|
|
||||||
private String workbasketId;
|
|
||||||
private String key;
|
|
||||||
private String name;
|
|
||||||
private String description;
|
|
||||||
private String owner;
|
|
||||||
private String domain;
|
|
||||||
private WorkbasketType type;
|
|
||||||
private String orgLevel1;
|
|
||||||
private String orgLevel2;
|
|
||||||
private String orgLevel3;
|
|
||||||
private String orgLevel4;
|
|
||||||
|
|
||||||
public String getWorkbasketId() {
|
|
||||||
return workbasketId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWorkbasketId(String workbasketId) {
|
|
||||||
this.workbasketId = workbasketId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getKey() {
|
|
||||||
return key;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setKey(String key) {
|
|
||||||
this.key = key;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOwner() {
|
|
||||||
return owner;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOwner(String owner) {
|
|
||||||
this.owner = owner;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDomain() {
|
|
||||||
return domain;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDomain(String domain) {
|
|
||||||
this.domain = domain;
|
|
||||||
}
|
|
||||||
|
|
||||||
public WorkbasketType getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setType(WorkbasketType type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOrgLevel1() {
|
|
||||||
return orgLevel1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOrgLevel1(String orgLevel1) {
|
|
||||||
this.orgLevel1 = orgLevel1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOrgLevel2() {
|
|
||||||
return orgLevel2;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOrgLevel2(String orgLevel2) {
|
|
||||||
this.orgLevel2 = orgLevel2;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOrgLevel3() {
|
|
||||||
return orgLevel3;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOrgLevel3(String orgLevel3) {
|
|
||||||
this.orgLevel3 = orgLevel3;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOrgLevel4() {
|
|
||||||
return orgLevel4;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOrgLevel4(String orgLevel4) {
|
|
||||||
this.orgLevel4 = orgLevel4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
package pro.taskana.rest.mapper;
|
|
||||||
|
|
||||||
import org.modelmapper.ModelMapper;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.hateoas.ResourceSupport;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import pro.taskana.WorkbasketSummary;
|
|
||||||
import pro.taskana.rest.dto.WorkbasketSummaryDto;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class WorkbasketSummaryMapper extends ResourceSupport {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ModelMapper modelMapper;
|
|
||||||
|
|
||||||
public WorkbasketSummaryDto convertToDto(WorkbasketSummary workbasketSummary){
|
|
||||||
WorkbasketSummaryDto dto = modelMapper.map(workbasketSummary, WorkbasketSummaryDto.class);
|
|
||||||
dto.setWorkbasketId(workbasketSummary.getId());
|
|
||||||
return dto;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
package pro.taskana.rest.resource;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
import org.springframework.hateoas.ResourceSupport;
|
||||||
|
|
||||||
|
import pro.taskana.impl.WorkbasketType;
|
||||||
|
|
||||||
|
public class WorkbasketSummaryResource extends ResourceSupport {
|
||||||
|
|
||||||
|
public String id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public String key;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public String name;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public String domain;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public WorkbasketType type;
|
||||||
|
|
||||||
|
public String description;
|
||||||
|
public String owner;
|
||||||
|
public String orgLevel1;
|
||||||
|
public String orgLevel2;
|
||||||
|
public String orgLevel3;
|
||||||
|
public String orgLevel4;
|
||||||
|
|
||||||
|
public WorkbasketSummaryResource(String id, String key, String name, String description, String owner,
|
||||||
|
String domain, WorkbasketType type, String orgLevel1, String orgLevel2, String orgLevel3, String orgLevel4) {
|
||||||
|
super();
|
||||||
|
this.id = id;
|
||||||
|
this.key = key;
|
||||||
|
this.name = name;
|
||||||
|
this.description = description;
|
||||||
|
this.owner = owner;
|
||||||
|
this.domain = domain;
|
||||||
|
this.type = type;
|
||||||
|
this.orgLevel1 = orgLevel1;
|
||||||
|
this.orgLevel2 = orgLevel2;
|
||||||
|
this.orgLevel3 = orgLevel3;
|
||||||
|
this.orgLevel4 = orgLevel4;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
package pro.taskana.rest.resource.mapper;
|
||||||
|
|
||||||
|
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
|
||||||
|
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.methodOn;
|
||||||
|
|
||||||
|
import pro.taskana.WorkbasketSummary;
|
||||||
|
import pro.taskana.rest.WorkbasketController;
|
||||||
|
import pro.taskana.rest.resource.WorkbasketSummaryResource;
|
||||||
|
|
||||||
|
public class WorkbasketSummaryMapper {
|
||||||
|
|
||||||
|
public WorkbasketSummaryResource toResource(WorkbasketSummary summary) {
|
||||||
|
WorkbasketSummaryResource resource = new WorkbasketSummaryResource(
|
||||||
|
summary.getId(), summary.getKey(), summary.getName(), summary.getDescription(), summary.getOwner(),
|
||||||
|
summary.getDomain(), summary.getType(), summary.getOrgLevel1(), summary.getOrgLevel2(),
|
||||||
|
summary.getOrgLevel3(), summary.getOrgLevel4());
|
||||||
|
|
||||||
|
// Add self reference
|
||||||
|
resource.add(linkTo(methodOn(WorkbasketController.class).getWorkbasket(summary.getId())).withSelfRel());
|
||||||
|
|
||||||
|
return resource;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue