All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.twilio.sdk.TwilioConversationsClient Maven / Gradle / Ivy

There is a newer version: 7.0.0-rc-7
Show newest version
package com.twilio.sdk;

import com.twilio.sdk.resource.factory.Factory;
import com.twilio.sdk.resource.instance.conversations.Conversation;
import com.twilio.sdk.resource.instance.conversations.Participant;
import com.twilio.sdk.resource.list.conversations.CompletedConversationsList;
import com.twilio.sdk.resource.list.conversations.InProgressConversationsList;
import com.twilio.sdk.resource.list.conversations.ParticipantList;

import java.util.HashMap;
import java.util.Map;

/**
 * Twilio REST client for Conversations end points
 * 
 */
public class TwilioConversationsClient extends TwilioClient {

	public static final String DEFAULT_VERSION = "v1";
	private static final String PARTICIPANT_STATUS = "Status";
	private static final String PARTICIPANT_STATUS_DISCONNECTED = "disconnected";

	public TwilioConversationsClient(final String username, final String password) {
		super(username, password, "https://conversations.twilio.com");
	}

	public TwilioConversationsClient(final String username, final String password, final String endpoint) {
		super(username, password, endpoint);
	}

	/**
	 * Get a {@link com.twilio.sdk.resource.instance.conversations.Conversation
	 * Conversation} instance by sid
	 *
	 * @param conversationSid
	 *            The 34 character sid starting with CV
	 * @return the Conversation
	 */
	public Conversation getConversation(final String conversationSid) {
		Conversation conversation = new Conversation(this, conversationSid);
		return conversation;
	}

	/**
	 * Gets a list
	 * {@link com.twilio.sdk.resource.list.conversations.CompletedConversationsList
	 * Completed Conversations List}
	 * 
	 * @return list of Completed Conversation
	 */
	public CompletedConversationsList getCompletedConversations() {
		return new CompletedConversationsList(this, new HashMap(0));
	}

	/**
	 * Gets a list of filtered
	 * {@link com.twilio.sdk.resource.list.conversations.CompletedConversationsList
	 * Completed Conversations List}
	 * 
	 * @param filters
	 *            the query parameters
	 * @return list of Completed Conversations
	 */
	public CompletedConversationsList getCompletedConversations(Map filters) {
		return new CompletedConversationsList(this, filters);
	}

	/**
	 * Gets {@link com.twilio.sdk.resource.list.conversations.InProgressConversationsList
	 * InProgress Conversations List}
	 * 
	 * @return list of In Progress Conversations
	 */
	public InProgressConversationsList getInProgressConversations() {
		return new InProgressConversationsList(this, new HashMap(0));
	}

	/**
	 * Gets filtered {@link com.twilio.sdk.resource.list.conversations.InProgressConversationsList
	 * InProgress Conversations List}
	 * 
	 * @param filters the query parameters
	 * @return list of In Progress Conversations
	 */
	public InProgressConversationsList getInProgressConversations(Map filters) {
		return new InProgressConversationsList(this, filters);
	}

	/**
	 * Creates a
	 * {@link com.twilio.sdk.resource.instance.conversations.Participant
	 * Participant} instance by conversation sid
	 * 
	 * @param conversationSid
	 *            the conversation sid
	 * @param properties
	 *            Participant properties
	 * @return a Participant
	 * @throws TwilioRestException
	 */
	public Participant createParticipant(final String conversationSid,
			final Map properties) throws TwilioRestException {

		Factory participantFactory = new ParticipantList(this,
				conversationSid);
		return participantFactory.create(properties);

	}

	/**
	 * Get a {@link com.twilio.sdk.resource.instance.conversations.Participant
	 * Participant} instance by conversation sid and participant sid
	 *
	 * @param conversationSid
	 *            the 34 character sid starting with CV
	 * @param participantSid
	 *            the 34 character sid starting with PA
	 * @return the Participant
	 */
	public Participant getParticipant(final String conversationSid, final String participantSid) {
		Participant participant = new Participant(this, conversationSid, participantSid);
		return participant;
	}

	/**
	 * Disconnects a
	 * {@link com.twilio.sdk.resource.instance.conversations.Participant
	 * Participant} from a
	 * {@link com.twilio.sdk.resource.instance.conversations.Conversation
	 * Conversation}
	 * 
	 * @param conversationSid
	 *            the conversation sid the Participant was part of
	 * @param participantSid
	 *            the participant sid
	 * @return Participant the disconnected participant
	 * @throws TwilioRestException
	 */
	public Participant disconnectParticipant(final String conversationSid,
			final String participantSid)
			throws TwilioRestException {

		Participant participant = new Participant(this, conversationSid,
				participantSid);
		Map params = new HashMap();
		params.put(PARTICIPANT_STATUS, PARTICIPANT_STATUS_DISCONNECTED);
		// Disconnects the Participant
		participant.update(params);
		return participant;
	}

	/**
	 * Gets {@link com.twilio.sdk.resource.list.conversations.ParticipantList
	 * Participant List} by Conversation Sid
	 * 
	 * @param conversationSid
	 *            the convesation sid
	 * @return list of Participants
	 */
	public ParticipantList getParticipants(String conversationSid) {
		return new ParticipantList(this, new HashMap(0), conversationSid);
	}

	/**
	 * Gets filtered
	 * {@link com.twilio.sdk.resource.list.conversations.ParticipantList
	 * Participant List} belonging to a Conversation
	 * 
	 * @param filters
	 *            the query parameters
	 * @param conversationSid
	 *            the conversation sid
	 * @return List of Participants
	 */
	public ParticipantList getParticipants(final Map filters, String conversationSid) {
		return new ParticipantList(this, filters, conversationSid);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy