TSK-477: REST: get tasks by workbasket key and domain.
This commit is contained in:
parent
ec33a7a1ff
commit
2970edd119
|
|
@ -64,6 +64,54 @@ public class TaskControllerIntTest {
|
||||||
assertEquals(23, response.getBody().getContent().size());
|
assertEquals(23, response.getBody().getContent().size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetAllTasksByWorkbasketId() {
|
||||||
|
RestTemplate template = getRestTemplate();
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.add("Authorization", "Basic dXNlcl8xXzI6dXNlcl8xXzI="); // user_1_2
|
||||||
|
HttpEntity<String> request = new HttpEntity<String>(headers);
|
||||||
|
ResponseEntity<PagedResources<TaskSummaryResource>> response = template.exchange(
|
||||||
|
"http://127.0.0.1:" + port + "/v1/tasks?workbasket-id=WBI:100000000000000000000000000000000007",
|
||||||
|
HttpMethod.GET, request,
|
||||||
|
new ParameterizedTypeReference<PagedResources<TaskSummaryResource>>() {
|
||||||
|
});
|
||||||
|
assertNotNull(response.getBody().getLink(Link.REL_SELF));
|
||||||
|
assertEquals(20, response.getBody().getContent().size());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetAllTasksByWorkbasketKeyAndDomain() {
|
||||||
|
RestTemplate template = getRestTemplate();
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.add("Authorization", "Basic dXNlcl8xXzI6dXNlcl8xXzI="); // user_1_2
|
||||||
|
HttpEntity<String> request = new HttpEntity<String>(headers);
|
||||||
|
ResponseEntity<PagedResources<TaskSummaryResource>> response = template.exchange(
|
||||||
|
"http://127.0.0.1:" + port + "/v1/tasks?workbasket-key=USER_1_2&domain=DOMAIN_A",
|
||||||
|
HttpMethod.GET, request,
|
||||||
|
new ParameterizedTypeReference<PagedResources<TaskSummaryResource>>() {
|
||||||
|
});
|
||||||
|
assertNotNull(response.getBody().getLink(Link.REL_SELF));
|
||||||
|
assertEquals(20, response.getBody().getContent().size());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testExceptionIfKeyIsSetButDomainIsMissing() {
|
||||||
|
RestTemplate template = getRestTemplate();
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.add("Authorization", "Basic dXNlcl8xXzI6dXNlcl8xXzI="); // user_1_2
|
||||||
|
HttpEntity<String> request = new HttpEntity<String>(headers);
|
||||||
|
try {
|
||||||
|
ResponseEntity<PagedResources<TaskSummaryResource>> response = template.exchange(
|
||||||
|
"http://127.0.0.1:" + port + "/v1/tasks?workbasket-key=USER_1_2",
|
||||||
|
HttpMethod.GET, request,
|
||||||
|
new ParameterizedTypeReference<PagedResources<TaskSummaryResource>>() {
|
||||||
|
});
|
||||||
|
fail();
|
||||||
|
} catch (HttpClientErrorException e) {
|
||||||
|
assertEquals(HttpStatus.BAD_REQUEST, e.getStatusCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetAllTasksWithAdminRole() {
|
public void testGetAllTasksWithAdminRole() {
|
||||||
RestTemplate template = getRestTemplate();
|
RestTemplate template = getRestTemplate();
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import pro.taskana.BaseQuery.SortDirection;
|
import pro.taskana.BaseQuery.SortDirection;
|
||||||
|
import pro.taskana.KeyDomain;
|
||||||
import pro.taskana.Task;
|
import pro.taskana.Task;
|
||||||
import pro.taskana.TaskQuery;
|
import pro.taskana.TaskQuery;
|
||||||
import pro.taskana.TaskService;
|
import pro.taskana.TaskService;
|
||||||
|
|
@ -63,7 +64,9 @@ public class TaskController extends AbstractPagingController {
|
||||||
private static final String PRIORITY = "priority";
|
private static final String PRIORITY = "priority";
|
||||||
private static final String NAME = "name";
|
private static final String NAME = "name";
|
||||||
private static final String OWNER = "owner";
|
private static final String OWNER = "owner";
|
||||||
private static final String WORKBASKET_ID = "workbasketId";
|
private static final String DOMAIN = "domain";
|
||||||
|
private static final String WORKBASKET_ID = "workbasket-id";
|
||||||
|
private static final String WORKBASKET_KEY = "workbasket-key";
|
||||||
private static final String CLASSIFICATION_KEY = "classification.key";
|
private static final String CLASSIFICATION_KEY = "classification.key";
|
||||||
private static final String POR_VALUE = "por.value";
|
private static final String POR_VALUE = "por.value";
|
||||||
private static final String POR_TYPE = "por.type";
|
private static final String POR_TYPE = "por.type";
|
||||||
|
|
@ -238,6 +241,23 @@ public class TaskController extends AbstractPagingController {
|
||||||
taskQuery.workbasketIdIn(workbaskets);
|
taskQuery.workbasketIdIn(workbaskets);
|
||||||
params.remove(WORKBASKET_ID);
|
params.remove(WORKBASKET_ID);
|
||||||
}
|
}
|
||||||
|
if (params.containsKey(WORKBASKET_KEY)) {
|
||||||
|
String[] domains = null;
|
||||||
|
if (params.get(DOMAIN) != null) {
|
||||||
|
domains = extractCommaSeparatedFields(params.get(DOMAIN));
|
||||||
|
}
|
||||||
|
if (domains == null || domains.length != 1) {
|
||||||
|
throw new InvalidArgumentException("workbasket-key requires excactly one domain as second parameter.");
|
||||||
|
}
|
||||||
|
String[] workbasketKeys = extractCommaSeparatedFields(params.get(WORKBASKET_KEY));
|
||||||
|
KeyDomain[] keyDomains = new KeyDomain[workbasketKeys.length];
|
||||||
|
for (int i = 0; i < workbasketKeys.length; i++) {
|
||||||
|
keyDomains[i] = new KeyDomain(workbasketKeys[i], domains[0]);
|
||||||
|
}
|
||||||
|
taskQuery.workbasketKeyDomainIn(keyDomains);
|
||||||
|
params.remove(WORKBASKET_KEY);
|
||||||
|
params.remove(DOMAIN);
|
||||||
|
}
|
||||||
if (params.containsKey(OWNER)) {
|
if (params.containsKey(OWNER)) {
|
||||||
String[] owners = extractCommaSeparatedFields(params.get(OWNER));
|
String[] owners = extractCommaSeparatedFields(params.get(OWNER));
|
||||||
taskQuery.ownerIn(owners);
|
taskQuery.ownerIn(owners);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue