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

com.twilio.sdk.resource.instance.Recording Maven / Gradle / Ivy

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 com.twilio.sdk.resource.list.TranscriptionList;

import java.io.InputStream;
import java.util.Date;
import java.util.Map;

/**
 * The Class Recording.
 * 

* For more information see https://www.twilio.com/docs/api/rest/recording */ public class Recording extends InstanceResource { /** The Constant SID_PROPERTY. */ private static final String SID_PROPERTY = "sid"; /** * Instantiates a new recording. * * @param client the client */ public Recording(final TwilioRestClient client) { super(client); } /** * Instantiates a new recording. * * @param client the client * @param sid the sid */ public Recording(final TwilioRestClient client, final String sid) { super(client); if (sid == null) { throw new IllegalStateException("The Sid for a Recording can not be null"); } setProperty(SID_PROPERTY, sid); } /** * Instantiates a new recording. * * @param client the client * @param properties the properties */ public Recording(final TwilioRestClient client, final Map properties) { super(client, properties); } /* (non-Javadoc) * @see com.twilio.sdk.resource.Resource#getResourceLocation() */ @Override protected String getResourceLocation() { return getResourceLocation(".json"); } /** * Gets the resource location. * * @param extension the extension * @return the resource location */ protected String getResourceLocation(final String extension) { return "/" + TwilioRestClient.DEFAULT_VERSION + "/Accounts/" + getRequestAccountSid() + "/Recordings/" + getSid() + extension; } /* * Property getters */ /** * Gets the sid. * * @return the sid */ public String getSid() { return getProperty(SID_PROPERTY); } /** * Returns the list of associated transcriptions * * @return the TranscriptionList associated with the recording */ public TranscriptionList getTranscriptions() { TranscriptionList transcriptions = TranscriptionList.recordingTranscriptionList(getClient(), getSid()); transcriptions.setRequestAccountSid(getRequestAccountSid()); return transcriptions; } /** * Gets the date created. * * @return the date created */ public Date getDateCreated() { return getDateProperty("date_created"); } /** * Gets the date updated. * * @return the date updated */ public Date getDateUpdated() { return getDateProperty("date_updated"); } /** * Gets the account sid. * * @return the account sid */ public String getAccountSid() { return getProperty("account_sid"); } /** * Gets the call sid. * * @return the call sid */ public String getCallSid() { return getProperty("call_sid"); } /** * Gets the duration. * * @return the duration */ public int getDuration() { return Integer.parseInt(getProperty("duration")); } /** * Gets the api version. * * @return the api version */ public String getApiVersion() { return getProperty("api_version"); } /** * Gets the media. * * @param extension the extension * @return the media */ public InputStream getMedia(final String extension) { return getClient().requestStream(getResourceLocation(extension), "GET", (Map) null); } /** * Delete this Recording * * @return true, if successful * @throws TwilioRestException the twilio rest exception */ public boolean delete() throws TwilioRestException { TwilioRestResponse response = getClient().safeRequest(getResourceLocation(), "DELETE", (Map) null); return !response.isError(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy