@@ -26,6 +26,7 @@ public class Zendesk implements Closeable {
26
26
private final String url ;
27
27
private final ObjectMapper mapper ;
28
28
private final Logger logger ;
29
+ private final String accessToken ;
29
30
private boolean closed = false ;
30
31
private static final Map <String , Class <? extends SearchResultEntity >> searchResultTypes = searchResultTypes ();
31
32
private static final Map <String , Class <? extends Target >> targetTypes = targetTypes ();
@@ -59,7 +60,7 @@ private static Map<String, Class<? extends Target>> targetTypes() {
59
60
return Collections .unmodifiableMap (result );
60
61
}
61
62
62
- private Zendesk (AsyncHttpClient client , String url , String username , String password ) {
63
+ private Zendesk (AsyncHttpClient client , String url , String username , String password , String accessToken ) {
63
64
this .logger = LoggerFactory .getLogger (Zendesk .class );
64
65
this .closeClient = client == null ;
65
66
this .client = client == null ? new AsyncHttpClient () : client ;
@@ -77,6 +78,7 @@ private Zendesk(AsyncHttpClient client, String url, String username, String pass
77
78
}
78
79
this .realm = null ;
79
80
}
81
+ this .accessToken = accessToken ;
80
82
this .mapper = createMapper ();
81
83
}
82
84
@@ -774,6 +776,7 @@ private Request req(String method, Uri template) {
774
776
if (realm != null ) {
775
777
builder .setRealm (realm );
776
778
}
779
+ addAccessTokenAuth (builder );
777
780
builder .setUrl (template .toString ());
778
781
return builder .build ();
779
782
}
@@ -783,6 +786,7 @@ private Request req(String method, Uri template, String contentType, byte[] body
783
786
if (realm != null ) {
784
787
builder .setRealm (realm );
785
788
}
789
+ addAccessTokenAuth (builder );
786
790
builder .setUrl (template .toString ());
787
791
builder .addHeader ("Content-type" , contentType );
788
792
builder .setBody (body );
@@ -794,10 +798,17 @@ private Request req(String method, Uri template, int page) {
794
798
if (realm != null ) {
795
799
builder .setRealm (realm );
796
800
}
801
+ addAccessTokenAuth (builder );
797
802
builder .addQueryParameter ("page" , Integer .toString (page ));
798
803
builder .setUrl (template .toString ().replace ("%2B" , "+" )); //replace out %2B with + due to API restriction
799
804
return builder .build ();
800
805
}
806
+
807
+ private void addAccessTokenAuth (RequestBuilder builder ) {
808
+ if (accessToken != null ) {
809
+ builder .addHeader ("Authorization" , "Bearer " + accessToken );
810
+ }
811
+ }
801
812
802
813
protected AsyncCompletionHandler <Void > handleStatus () {
803
814
return new AsyncCompletionHandler <Void >() {
@@ -1118,6 +1129,7 @@ public static class Builder {
1118
1129
private String username = null ;
1119
1130
private String password = null ;
1120
1131
private String token = null ;
1132
+ private String accessToken = null ;
1121
1133
1122
1134
public Builder (String url ) {
1123
1135
this .url = url ;
@@ -1149,15 +1161,20 @@ public Builder setToken(String token) {
1149
1161
return this ;
1150
1162
}
1151
1163
1164
+ public Builder setAccessToken (String accessToken ) {
1165
+ this .accessToken = accessToken ;
1166
+ return this ;
1167
+ }
1168
+
1152
1169
public Builder setRetry (boolean retry ) {
1153
1170
return this ;
1154
1171
}
1155
1172
1156
1173
public Zendesk build () {
1157
1174
if (token == null ) {
1158
- return new Zendesk (client , url , username , password );
1175
+ return new Zendesk (client , url , username , password , accessToken );
1159
1176
}
1160
- return new Zendesk (client , url , username + "/token" , token );
1177
+ return new Zendesk (client , url , username + "/token" , token , accessToken );
1161
1178
}
1162
1179
}
1163
1180
0 commit comments