Package com.twilio.sdk.resource.instance

Source Code of com.twilio.sdk.resource.instance.Participant

package com.twilio.sdk.resource.instance;

import com.twilio.sdk.TwilioRestClient;
import com.twilio.sdk.TwilioRestException;
import com.twilio.sdk.TwilioRestResponse;
import com.twilio.sdk.resource.InstanceResource;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

// TODO: Auto-generated Javadoc
/**
* The Class Participant.
*
* For more information see <a href="https://www.twilio.com/docs/api/rest/participant">https://www.twilio.com/docs/api/rest/participant</a>
*/
public class Participant extends InstanceResource {
  // private static final String SID_PROPERTY = "sid";
  /** The Constant CALL_SID_PROPERTY. */
  private static final String CALL_SID_PROPERTY = "call_sid";

  /** The Constant CONFERENCE_SID_PROPERTY. */
  private static final String CONFERENCE_SID_PROPERTY = "conference_sid";

  /**
   * Instantiates a new participant.
   *
   * @param client the client
   */
  public Participant(TwilioRestClient client) {
    super(client);
  }

  /**
   * Instantiates a new participant.
   *
   * @param client the client
   * @param conferenceSid the conference sid
   * @param callSid the call sid
   */
  public Participant(TwilioRestClient client, String conferenceSid,
      String callSid) {
    super(client);
    if (conferenceSid == null) {
      throw new IllegalStateException("The conferenceSid for a Participant can not be null");
    }
    if (callSid == null) {
      throw new IllegalStateException("The callSid for a Participant can not be null");
    }
    this.setProperty(CONFERENCE_SID_PROPERTY, conferenceSid);
    this.setProperty(CALL_SID_PROPERTY, callSid);
  }

  /**
   * Instantiates a new participant.
   *
   * @param client the client
   * @param properties the properties
   */
  public Participant(TwilioRestClient client, Map<String, Object> properties) {
    super(client, properties);
  }

  /* (non-Javadoc)
   * @see com.twilio.sdk.resource.Resource#getResourceLocation()
   */
  @Override
    protected String getResourceLocation() {
      return "/" + TwilioRestClient.DEFAULT_VERSION + "/Accounts/"
        + this.getRequestAccountSid() + "/Conferences/"
        + this.getConferenceSid() + "/Participants/"
        + this.getCallSid() + ".json";
    }

  /*
   * Property getters
   */
  // public String getSid() {
  // return this.getProperty(SID_PROPERTY);
  // }

  /**
   * Gets the conference sid.
   *
   * @return the conference sid
   */
  public String getConferenceSid() {
    return this.getProperty(CONFERENCE_SID_PROPERTY);
  }

  /**
   * Gets the call sid.
   *
   * @return the call sid
   */
  public String getCallSid() {
    return this.getProperty(CALL_SID_PROPERTY);
  }

  /**
   * Gets the date created.
   *
   * @return the date created
   */
  public Date getDateCreated() {
    SimpleDateFormat format = new SimpleDateFormat(
        "EEE, dd MMM yyyy HH:mm:ss Z");
    try {
      return format.parse(this.getProperty("date_created"));
    } catch (ParseException e) {
      return null;
    }
  }

  /**
   * Gets the date updated.
   *
   * @return the date updated
   */
  public Date getDateUpdated() {
    SimpleDateFormat format = new SimpleDateFormat(
        "EEE, dd MMM yyyy HH:mm:ss Z");
    try {
      return format.parse(this.getProperty("date_updated"));
    } catch (ParseException e) {
      return null;
    }
  }

  /**
   * Gets the account sid.
   *
   * @return the account sid
   */
  public String getAccountSid() {
    return this.getProperty("account_sid");
  }

  /**
   * Checks if is muted.
   *
   * @return true, if is muted
   */
  public boolean isMuted() {
    return (Boolean)this.getObject("muted");
  }

  /**
   * Checks if is start conference on enter.
   *
   * @return true, if is start conference on enter
   */
  public boolean isStartConferenceOnEnter() {
    return (Boolean)this.getObject("start_conference_on_enter");
  }

  /**
   * Checks if is end conference on exit.
   *
   * @return true, if is end conference on exit
   */
  public boolean isEndConferenceOnExit() {
    return (Boolean)this.getObject("end_conference_on_exit");
  }

  /*
   * Helper functions
   *
   *
   */


  /**
   * Mute.
   *
   * @return the participant
   * @throws TwilioRestException the twilio rest exception
   */
  public Participant mute() throws TwilioRestException {
    Map<String, String> vars = new HashMap<String, String>();
    vars.put("Muted", "true");

    TwilioRestResponse response = this.getClient().safeRequest(
        this.getResourceLocation(), "POST", vars);

    return new Participant(this.getClient(), response.toMap());
  }

  /**
   * Unmute.
   *
   * @return the participant
   * @throws TwilioRestException the twilio rest exception
   */
  public Participant unmute() throws TwilioRestException {
    Map<String, String> vars = new HashMap<String, String>();
    vars.put("Muted", "false");

    TwilioRestResponse response = this.getClient().safeRequest(
        this.getResourceLocation(), "POST", vars);

    return new Participant(this.getClient(), response.toMap());
  }



  /**
   * Kick.
   *
   * @return true, if successful
   * @throws TwilioRestException the twilio rest exception
   */
  public boolean kick() throws TwilioRestException {
    TwilioRestResponse response = this.getClient().safeRequest(
        this.getResourceLocation(), "DELETE", (Map) null);

    return !response.isError();
  }
}
TOP

Related Classes of com.twilio.sdk.resource.instance.Participant

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.