001package com.plivo.api.models.powerpack;
002
003import com.plivo.api.models.base.Getter;
004import com.plivo.api.models.base.ListResponse;
005import com.plivo.api.models.number.PhoneNumber;
006import retrofit2.Call;
007
008public class BuyAddNumbers extends Getter<Numbers> {
009
010  private String number;
011  private String uuid;
012  private String country_Iso2;
013  private String service;
014  private Boolean rent;
015
016  public BuyAddNumbers(String uuid) {
017    super(uuid);
018    if (uuid == null) {
019      throw new IllegalArgumentException("numberpool uuid cannot be null");
020    }
021    this.uuid = uuid;
022    this.rent = Boolean.TRUE;
023  }
024
025  public BuyAddNumbers country_Iso2(String country_Iso2) {
026    this.country_Iso2 = country_Iso2;
027    return this;
028  }
029
030  public BuyAddNumbers rent() {
031    this.rent = Boolean.TRUE;
032    return this;
033  }
034
035  public BuyAddNumbers number(String number) {
036    this.number = number;
037    return this;
038  }
039
040  public BuyAddNumbers service(String service) {
041    this.service = service;
042    return this;
043  }
044
045  @Override
046  protected Call<Numbers> obtainCall() {
047    if (number == null) {
048      try {
049        ListResponse<PhoneNumber> numbers = PhoneNumber.lister(country_Iso2).list();
050        if (numbers.getObjects().size() > 0) {
051          number = numbers.getObjects().get(0).getNumber();
052        }
053      } catch (Exception e) {
054      }
055    }
056    return client().getApiService().powerpackBuyAddNumberCreate(client().getAuthId(), uuid, number, this);
057  }
058}