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

com.twilio.sdk.resource.list.trunking.PhoneNumberList Maven / Gradle / Ivy

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

import com.twilio.sdk.TwilioRestException;
import com.twilio.sdk.TwilioRestResponse;
import com.twilio.sdk.TwilioTrunkingClient;
import com.twilio.sdk.resource.NextGenListResource;
import com.twilio.sdk.resource.factory.ResourceFactory;
import com.twilio.sdk.resource.instance.trunking.PhoneNumber;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;

import java.util.List;
import java.util.Map;

/**
 * Represents phone numbers list endpoint
 *
 * @see Phone Numbers
 */
public class PhoneNumberList extends NextGenListResource implements ResourceFactory {

	private final String trunkSid;

	/**
	 * Initializes phone numbers query without a filter
	 *
	 * @param client A TwilioTrunkingClient
	 * @param trunkSid The trunk sid
	 */
	public PhoneNumberList(final TwilioTrunkingClient client,
						   final String trunkSid) {
		this(client, trunkSid, null);
	}

	/**
	 * Initializes phone numbers query with a filter
	 *
	 * @param client A TwilioTrunkingClient
	 * @param trunkSid The trunk sid
	 * @param filters The filters to apply
	 */
	public PhoneNumberList(final TwilioTrunkingClient client,
						   final String trunkSid,
						   final Map filters) {
		super(client, filters);
		if (StringUtils.isEmpty(trunkSid)) {
			throw new IllegalArgumentException("trunkSid cannot be null");
		}
		this.trunkSid = trunkSid;
	}

	@Override
	protected PhoneNumber makeNew(final TwilioTrunkingClient client, final Map params) {
		return new PhoneNumber(client, params);
	}

	/**
	 * Associate phone number with a trunk
	 *
	 * @param params The query params
	 * @return The associated phone number
	 * @throws TwilioRestException
	 */
	@Override
	public PhoneNumber create(final Map params) throws TwilioRestException {
		final TwilioRestResponse response = getClient().safeRequest(getResourceLocation(), "POST", params);
		return makeNew(getClient(), response.toMap());
	}

	/**
	 * Associate phone number with a trunk
	 *
	 * @param params The query params
	 * @return The associated phone number
	 * @throws TwilioRestException
	 */
	@Override
	public PhoneNumber create(final List params) throws TwilioRestException {
		final TwilioRestResponse response = getClient().safeRequest(getResourceLocation(), "POST", params);
		return makeNew(getClient(), response.toMap());
	}

	@Override
	protected String getResourceLocation() {
		return "/" + TwilioTrunkingClient.DEFAULT_VERSION
				+ "/Trunks/" + this.trunkSid
				+ "/PhoneNumbers";
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy