package io.evanwong.oss.hipchat.v2.rooms; import io.evanwong.oss.hipchat.v2.commons.NoContent; import io.evanwong.oss.hipchat.v2.commons.PutRequest; import org.apache.http.client.HttpClient; import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ExecutorService; public class UpdateRoomRequest extends PutRequest<NoContent> { private String roomIdOrName; private String name; private Privacy privacy; private boolean archived; private boolean guestAccessible; private String topic; private String ownerIdOrEmail; public UpdateRoomRequest(String roomIdOrName, String accessToken, String baseUrl, HttpClient httpClient, ExecutorService executorService) { super(accessToken, baseUrl, httpClient, executorService); this.roomIdOrName = roomIdOrName; } public String getRoomIdOrName() { return roomIdOrName; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Privacy getPrivacy() { return privacy; } public void setPrivacy(Privacy privacy) { this.privacy = privacy; } public boolean getArchived() { return archived; } public void setArchived(boolean archived) { this.archived = archived; } public boolean getGuestAccessible() { return guestAccessible; } public void setGuestAccessible(boolean guestAccessible) { this.guestAccessible = guestAccessible; } public String getTopic() { return topic; } public void setTopic(String topic) { this.topic = topic; } public String getOwnerIdOrEmail() { return ownerIdOrEmail; } public void setOwnerIdOrEmail(String ownerIdOrEmail) { this.ownerIdOrEmail = ownerIdOrEmail; } @Override protected String getPath() { return "/room/" + roomIdOrName; } @Override protected Map<String, Object> toQueryMap() { Map<String, Object> params = new HashMap<>(); params.put("topic", topic); params.put("is_guest_accessible", guestAccessible); params.put("name", name); params.put("is_archived", archived); params.put("privacy", privacy.getValue()); params.put("owner", Collections.singletonMap("id", ownerIdOrEmail)); return params; } }