1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.atlassian.jira.rest.client.internal.async;
17
18 import com.atlassian.jira.rest.client.api.UserRestClient;
19 import com.atlassian.jira.rest.client.api.domain.User;
20 import com.atlassian.httpclient.api.HttpClient;
21 import com.atlassian.jira.rest.client.internal.json.UserJsonParser;
22 import com.atlassian.util.concurrent.Promise;
23
24 import javax.ws.rs.core.UriBuilder;
25 import java.net.URI;
26
27
28
29
30
31
32 public class AsynchronousUserRestClient extends AbstractAsynchronousRestClient implements UserRestClient {
33
34 private static final String USER_URI_PREFIX = "user";
35 private final UserJsonParser userJsonParser = new UserJsonParser();
36
37 private final URI baseUri;
38
39 public AsynchronousUserRestClient(final URI baseUri, final HttpClient client) {
40 super(client);
41 this.baseUri = baseUri;
42 }
43
44 @Override
45 public Promise<User> getUser(final String username) {
46 final URI userUri = UriBuilder.fromUri(baseUri).path(USER_URI_PREFIX)
47 .queryParam("username", username).queryParam("expand", "groups").build();
48 return getUser(userUri);
49 }
50
51 @Override
52 public Promise<User> getUser(final URI userUri) {
53 return getAndParse(userUri, userJsonParser);
54 }
55 }