77import com .fasterxml .jackson .annotation .JsonProperty ;
88import com .google .common .collect .Maps ;
99
10+ import java .net .URI ;
11+ import java .util .List ;
1012import java .util .Map ;
1113
1214
@@ -30,9 +32,25 @@ public static AdminCollection list()
3032 return DataResource .list (SENTINEL , "admins" , AdminCollection .class );
3133 }
3234
35+ public static Admin find (String id )
36+ throws AuthorizationException , ClientException , ServerException , InvalidException , RateLimitException {
37+ final HttpClient resource = new HttpClient (UriBuilder .newBuilder ().path ("admins" ).path (id ).build ());
38+ return resource .get (Admin .class );
39+ }
40+
41+ public static Admin setAwayMode (String id , boolean away_mode_enabled , boolean away_mode_reassign ) {
42+ final URI uri = UriBuilder .newBuilder ()
43+ .path ("admins" )
44+ .path (id )
45+ .path ("away" )
46+ .build ();
47+ return new HttpClient (uri )
48+ .put (Admin .class , new AdminAwayMode (id , away_mode_enabled , away_mode_reassign ));
49+ }
50+
3351 @ SuppressWarnings ("FieldCanBeLocal" )
3452 @ JsonProperty ("type" )
35- private final String type = "admin" ;
53+ private String type = "admin" ;
3654
3755 @ JsonProperty ("id" )
3856 private String id ;
@@ -55,6 +73,21 @@ public static AdminCollection list()
5573 @ JsonProperty ("closed" )
5674 private long closed ;
5775
76+ @ JsonProperty ("away_mode_enabled" )
77+ private boolean awayModeEnabled ;
78+
79+ @ JsonProperty ("away_mode_reassign" )
80+ private boolean awayModeReassign ;
81+
82+ @ JsonProperty ("avatar" )
83+ private Avatar avatar ;
84+
85+ @ JsonProperty ("team_ids" )
86+ private List <String > teamIds ;
87+
88+ @ JsonProperty ("admin_ids" )
89+ private List <String > adminIds ;
90+
5891 public Admin () {
5992 }
6093
@@ -110,6 +143,26 @@ public long getClosed() {
110143 return closed ;
111144 }
112145
146+ public boolean getAwayModeEnabled (){
147+ return awayModeEnabled ;
148+ }
149+
150+ public boolean getAwayModeReassign (){
151+ return awayModeReassign ;
152+ }
153+
154+ public Avatar getAvatar (){
155+ return avatar ;
156+ }
157+
158+ public List getTeamIds (){
159+ return teamIds ;
160+ }
161+ public List getAdminIds (){
162+ return adminIds ;
163+ }
164+
165+
113166 @ Override
114167 public boolean equals (Object o ) {
115168 if (this == o ) return true ;
@@ -124,6 +177,12 @@ public boolean equals(Object o) {
124177 if (email != null ? !email .equals (admin .email ) : admin .email != null ) return false ;
125178 if (id != null ? !id .equals (admin .id ) : admin .id != null ) return false ;
126179 if (name != null ? !name .equals (admin .name ) : admin .name != null ) return false ;
180+ if (awayModeEnabled != admin .awayModeEnabled ) return false ;
181+ if (awayModeReassign != admin .awayModeReassign ) return false ;
182+ if (avatar != null ? !avatar .equals (admin .avatar ) : admin .avatar != null ) return false ;
183+ if (teamIds != null ? !teamIds .equals (admin .teamIds ) : admin .teamIds != null ) return false ;
184+ if (adminIds != null ? !adminIds .equals (admin .adminIds ) : admin .adminIds != null ) return false ;
185+
127186 //noinspection RedundantIfStatement
128187 if (!type .equals (admin .type )) return false ;
129188
@@ -140,6 +199,11 @@ public int hashCode() {
140199 result = 31 * result + (int ) (updatedAt ^ (updatedAt >>> 32 ));
141200 result = 31 * result + (int ) (open ^ (open >>> 32 ));
142201 result = 31 * result + (int ) (closed ^ (closed >>> 32 ));
202+ result = 31 * result + (awayModeEnabled ? 1 : 0 );
203+ result = 31 * result + (awayModeReassign ? 1 : 0 );
204+ result = 31 * result + (avatar != null ? avatar .hashCode () : 0 );
205+ result = 31 * result + (teamIds != null ? teamIds .hashCode () : 0 );
206+ result = 31 * result + (adminIds != null ? adminIds .hashCode () : 0 );
143207 return result ;
144208 }
145209
@@ -151,6 +215,11 @@ public String toString() {
151215 ", email='" + email + '\'' +
152216 ", createdAt=" + createdAt +
153217 ", updatedAt=" + updatedAt +
218+ ", awayModeEnabled=" + awayModeEnabled +
219+ ", awayModeReassign=" + awayModeReassign +
220+ ", teamIds=" + teamIds +
221+ ", adminIds=" + adminIds +
222+ ", avatar=" + avatar +
154223 "} " + super .toString ();
155224 }
156225
0 commit comments