ruby-bandwidth-iris 4.1.1 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/CODEOWNERS +2 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
- data/.github/workflows/test.yml +1 -1
- data/README.md +5 -0
- data/examples/account.rb +6 -1
- data/examples/available_npa_nxx.rb +5 -1
- data/examples/available_number.rb +5 -1
- data/examples/available_number_details.rb +5 -1
- data/examples/city.rb +5 -1
- data/examples/config.yml.example +1 -1
- data/examples/covered-rate-center.rb +6 -3
- data/examples/order.rb +32 -28
- data/examples/port-in.rb +47 -43
- data/examples/portin_list.rb +28 -0
- data/examples/sip_peer.rb +41 -37
- data/examples/site.rb +16 -13
- data/examples/tn.rb +7 -4
- data/lib/bandwidth-iris/client.rb +2 -1
- data/lib/bandwidth-iris/errors.rb +19 -7
- data/lib/bandwidth-iris/paginated_result.rb +17 -0
- data/lib/bandwidth-iris/port_in.rb +20 -0
- data/lib/bandwidth-iris/tn.rb +8 -0
- data/lib/bandwidth-iris/version.rb +1 -1
- data/lib/ruby-bandwidth-iris.rb +1 -0
- data/ruby-bandwidth-iris.gemspec +2 -1
- data/spec/bandwidth-iris/client_spec.rb +7 -2
- data/spec/bandwidth-iris/port_in_spec.rb +16 -0
- data/spec/bandwidth-iris/tn_spec.rb +13 -0
- data/spec/xml.yml +2 -1
- metadata +22 -6
- data/.github/workflows/release-draft.yml +0 -19
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: a310f197858ca07c75e98aa16fc2db569fd65e4c2a8d64a5ed132c3f44e53637
         | 
| 4 | 
            +
              data.tar.gz: 2e64aa64f0c857a9dd11266e1eb30a85080e5c63b8b4e9801c702db8a90ed9fc
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7f412e691838e2cb84b74e34cd7680352b22f3dea1c0cc3a96d36064805d564d2b58bf53e342e2f8b2255bf4977789f2f077ec0a5915f41df043e6f86ce3dc9c
         | 
| 7 | 
            +
              data.tar.gz: 499ed540148810117009302ddad7352fa651f4b1c1bdc65e93493b73279ea2842967126d48a022bcef047ab13b85339824577693f3e9055caaeec96fcbf26821
         | 
    
        data/.github/CODEOWNERS
    ADDED
    
    
    
        data/.github/workflows/test.yml
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    
    
        data/examples/account.rb
    CHANGED
    
    | @@ -11,5 +11,10 @@ BandwidthIris::Client.global_options = { | |
| 11 11 | 
             
              :password => config['password'],
         | 
| 12 12 | 
             
              :account_id => config['account_id']
         | 
| 13 13 | 
             
            }
         | 
| 14 | 
            -
             | 
| 14 | 
            +
             | 
| 15 | 
            +
            begin
         | 
| 16 | 
            +
              puts BandwidthIris::Account.get()
         | 
| 17 | 
            +
            rescue BandwidthIris::Errors::GenericError => e
         | 
| 18 | 
            +
              puts e.message
         | 
| 19 | 
            +
            end
         | 
| 15 20 |  | 
| @@ -13,5 +13,9 @@ BandwidthIris::Client.global_options = { | |
| 13 13 | 
             
            }
         | 
| 14 14 |  | 
| 15 15 |  | 
| 16 | 
            -
             | 
| 16 | 
            +
            begin
         | 
| 17 | 
            +
              puts BandwidthIris::AvailableNpaNxx.list({:state => 'NC', :quantity => 3})
         | 
| 18 | 
            +
            rescue BandwidthIris::Errors::GenericError => e
         | 
| 19 | 
            +
              puts e.message
         | 
| 20 | 
            +
            end
         | 
| 17 21 |  | 
| @@ -13,5 +13,9 @@ BandwidthIris::Client.global_options = { | |
| 13 13 | 
             
            }
         | 
| 14 14 |  | 
| 15 15 |  | 
| 16 | 
            -
             | 
| 16 | 
            +
            begin
         | 
| 17 | 
            +
              puts BandwidthIris::AvailableNumber.list({:state => "NC", :quantity => 3})
         | 
| 18 | 
            +
            rescue BandwidthIris::Errors::GenericError => e
         | 
| 19 | 
            +
              puts e.message
         | 
| 20 | 
            +
            end
         | 
| 17 21 |  | 
| @@ -12,4 +12,8 @@ BandwidthIris::Client.global_options = { | |
| 12 12 | 
             
              :account_id => config['account_id']
         | 
| 13 13 | 
             
            }
         | 
| 14 14 |  | 
| 15 | 
            -
             | 
| 15 | 
            +
            begin
         | 
| 16 | 
            +
              puts BandwidthIris::AvailableNumber.list({:state => "NC", :quantity => 3, :enable_t_n_detail => true})
         | 
| 17 | 
            +
            rescue BandwidthIris::Errors::GenericError => e
         | 
| 18 | 
            +
              puts e.message
         | 
| 19 | 
            +
            end
         | 
    
        data/examples/city.rb
    CHANGED
    
    | @@ -12,5 +12,9 @@ BandwidthIris::Client.global_options = { | |
| 12 12 | 
             
              :account_id => config['account_id']
         | 
| 13 13 | 
             
            }
         | 
| 14 14 |  | 
| 15 | 
            -
             | 
| 15 | 
            +
            begin
         | 
| 16 | 
            +
              puts BandwidthIris::City.list({:available => true, :state => 'NC'})
         | 
| 17 | 
            +
            rescue BandwidthIris::Errors::GenericError => e
         | 
| 18 | 
            +
              puts e.message
         | 
| 19 | 
            +
            end
         | 
| 16 20 |  | 
    
        data/examples/config.yml.example
    CHANGED
    
    
| @@ -12,8 +12,11 @@ BandwidthIris::Client.global_options = { | |
| 12 12 | 
             
              :account_id => config['account_id']
         | 
| 13 13 | 
             
            }
         | 
| 14 14 |  | 
| 15 | 
            -
             | 
| 16 | 
            -
            BandwidthIris::CoveredRateCenter.list({:zip => '27609', :page=>1, :size=>100}).each do |c|
         | 
| 17 | 
            -
             | 
| 15 | 
            +
            begin
         | 
| 16 | 
            +
              BandwidthIris::CoveredRateCenter.list({:zip => '27609', :page=>1, :size=>100}).each do |c|
         | 
| 17 | 
            +
                puts c.to_data
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
            rescue BandwidthIris::Errors::GenericError => e
         | 
| 20 | 
            +
              puts e.message
         | 
| 18 21 | 
             
            end
         | 
| 19 22 |  | 
    
        data/examples/order.rb
    CHANGED
    
    | @@ -14,35 +14,39 @@ BandwidthIris::Client.global_options = { | |
| 14 14 |  | 
| 15 15 | 
             
            number = '9195551212' #exisitng number for order
         | 
| 16 16 |  | 
| 17 | 
            +
            begin
         | 
| 18 | 
            +
              site = BandwidthIris::Site.create({
         | 
| 19 | 
            +
                :name => "Ruby Test Site",
         | 
| 20 | 
            +
                :description => "A Site From Ruby SDK Examples",
         | 
| 21 | 
            +
                :address => {
         | 
| 22 | 
            +
                  :house_number => "123",
         | 
| 23 | 
            +
                  :street_name => "Anywhere St",
         | 
| 24 | 
            +
                  :city => "Raleigh",
         | 
| 25 | 
            +
                  :state_code =>"NC",
         | 
| 26 | 
            +
                  :zip => "27609",
         | 
| 27 | 
            +
                  :address_type => "Service"
         | 
| 28 | 
            +
                }
         | 
| 29 | 
            +
              })
         | 
| 30 | 
            +
             | 
| 31 | 
            +
              order =  BandwidthIris::Order.create({
         | 
| 32 | 
            +
                :name =>"A Test Order",
         | 
| 33 | 
            +
                :site_id => site.id,
         | 
| 34 | 
            +
                :existing_telephone_number_order_type => {
         | 
| 35 | 
            +
                  :telephone_number_list =>
         | 
| 36 | 
            +
                    {
         | 
| 37 | 
            +
                      :telephone_number => [number]
         | 
| 38 | 
            +
                    }
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                }
         | 
| 41 | 
            +
              })
         | 
| 42 | 
            +
             | 
| 43 | 
            +
              puts order.to_data
         | 
| 44 | 
            +
             | 
| 45 | 
            +
              order = BandwidthIris::Order.get(order.id)
         | 
| 46 | 
            +
            rescue BandwidthIris::Errors::GenericError => e
         | 
| 47 | 
            +
              puts e.message
         | 
| 48 | 
            +
            end
         | 
| 17 49 |  | 
| 18 | 
            -
            site = BandwidthIris::Site.create({
         | 
| 19 | 
            -
              :name => "Ruby Test Site",
         | 
| 20 | 
            -
              :description => "A Site From Ruby SDK Examples",
         | 
| 21 | 
            -
              :address => {
         | 
| 22 | 
            -
                :house_number => "123",
         | 
| 23 | 
            -
                :street_name => "Anywhere St",
         | 
| 24 | 
            -
                :city => "Raleigh",
         | 
| 25 | 
            -
                :state_code =>"NC",
         | 
| 26 | 
            -
                :zip => "27609",
         | 
| 27 | 
            -
                :address_type => "Service"
         | 
| 28 | 
            -
              }
         | 
| 29 | 
            -
            })
         | 
| 30 | 
            -
             | 
| 31 | 
            -
            order =  BandwidthIris::Order.create({
         | 
| 32 | 
            -
              :name =>"A Test Order",
         | 
| 33 | 
            -
              :site_id => site.id,
         | 
| 34 | 
            -
              :existing_telephone_number_order_type => {
         | 
| 35 | 
            -
                :telephone_number_list =>
         | 
| 36 | 
            -
                  {
         | 
| 37 | 
            -
                    :telephone_number => [number]
         | 
| 38 | 
            -
                  }
         | 
| 39 | 
            -
             | 
| 40 | 
            -
              }
         | 
| 41 | 
            -
            })
         | 
| 42 | 
            -
             | 
| 43 | 
            -
            puts order.to_data
         | 
| 44 | 
            -
             | 
| 45 | 
            -
            order = BandwidthIris::Order.get(order.id)
         | 
| 46 50 |  | 
| 47 51 | 
             
            puts order.to_data
         | 
| 48 52 |  | 
    
        data/examples/port-in.rb
    CHANGED
    
    | @@ -16,58 +16,62 @@ number_to_check = '+12525130283' #TODO fill with valid number | |
| 16 16 |  | 
| 17 17 | 
             
            host = '1.1.2.3'
         | 
| 18 18 |  | 
| 19 | 
            +
            begin
         | 
| 20 | 
            +
              site = BandwidthIris::Site.create({
         | 
| 21 | 
            +
                :name => "Ruby Test Site",
         | 
| 22 | 
            +
                :description => "A Site From Ruby SDK Examples",
         | 
| 23 | 
            +
                :address => {
         | 
| 24 | 
            +
                  :house_number => "123",
         | 
| 25 | 
            +
                  :street_name => "Anywhere St",
         | 
| 26 | 
            +
                  :city => "Raleigh",
         | 
| 27 | 
            +
                  :state_code =>"NC",
         | 
| 28 | 
            +
                  :zip => "27609",
         | 
| 29 | 
            +
                  :address_type => "Service"
         | 
| 30 | 
            +
                }
         | 
| 31 | 
            +
              })
         | 
| 19 32 |  | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
                : | 
| 25 | 
            -
                : | 
| 26 | 
            -
                :city => "Raleigh",
         | 
| 27 | 
            -
                :state_code =>"NC",
         | 
| 28 | 
            -
                :zip => "27609",
         | 
| 29 | 
            -
                :address_type => "Service"
         | 
| 30 | 
            -
              }
         | 
| 31 | 
            -
            })
         | 
| 32 | 
            -
             | 
| 33 | 
            -
            data = {
         | 
| 34 | 
            -
              :peer_name => "A New SIP Peer",
         | 
| 35 | 
            -
              :is_default_peer => true,
         | 
| 36 | 
            -
              :short_messaging_protocol => "SMPP",
         | 
| 37 | 
            -
              :site_id => site[:id],
         | 
| 38 | 
            -
              :voice_hosts =>
         | 
| 39 | 
            -
              {
         | 
| 40 | 
            -
                  :host => {
         | 
| 41 | 
            -
                    :host_name => host
         | 
| 42 | 
            -
                  }
         | 
| 43 | 
            -
              },
         | 
| 44 | 
            -
              :sms_hosts =>
         | 
| 45 | 
            -
              {
         | 
| 46 | 
            -
                  :host => {
         | 
| 47 | 
            -
                    :host_name => host
         | 
| 48 | 
            -
                  }
         | 
| 49 | 
            -
              },
         | 
| 50 | 
            -
              :termination_hosts =>
         | 
| 33 | 
            +
              data = {
         | 
| 34 | 
            +
                :peer_name => "A New SIP Peer",
         | 
| 35 | 
            +
                :is_default_peer => true,
         | 
| 36 | 
            +
                :short_messaging_protocol => "SMPP",
         | 
| 37 | 
            +
                :site_id => site[:id],
         | 
| 38 | 
            +
                :voice_hosts =>
         | 
| 51 39 | 
             
                {
         | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
                     | 
| 40 | 
            +
                    :host => {
         | 
| 41 | 
            +
                      :host_name => host
         | 
| 42 | 
            +
                    }
         | 
| 43 | 
            +
                },
         | 
| 44 | 
            +
                :sms_hosts =>
         | 
| 45 | 
            +
                {
         | 
| 46 | 
            +
                    :host => {
         | 
| 47 | 
            +
                      :host_name => host
         | 
| 48 | 
            +
                    }
         | 
| 49 | 
            +
                },
         | 
| 50 | 
            +
                :termination_hosts =>
         | 
| 51 | 
            +
                  {
         | 
| 52 | 
            +
                    :termination_host => {
         | 
| 53 | 
            +
                      :host_name => host,
         | 
| 54 | 
            +
                      :port => 5060,
         | 
| 55 | 
            +
                    }
         | 
| 55 56 | 
             
                  }
         | 
| 56 | 
            -
                }
         | 
| 57 57 |  | 
| 58 | 
            -
            }
         | 
| 58 | 
            +
              }
         | 
| 59 59 |  | 
| 60 | 
            -
            sip_peer = BandwidthIris::SipPeer.create(site[:id], data)
         | 
| 60 | 
            +
              sip_peer = BandwidthIris::SipPeer.create(site[:id], data)
         | 
| 61 61 |  | 
| 62 | 
            -
            res = BandwidthIris::LnpChecker.check(number_to_check)
         | 
| 62 | 
            +
              res = BandwidthIris::LnpChecker.check(number_to_check)
         | 
| 63 63 |  | 
| 64 | 
            -
            if res[:portable_numbers] && res[:portable_numbers][:tn] == number_to_check
         | 
| 65 | 
            -
             | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 68 | 
            -
             | 
| 64 | 
            +
              if res[:portable_numbers] && res[:portable_numbers][:tn] == number_to_check
         | 
| 65 | 
            +
                puts 'Your number is portable. Creating PortIn Order'
         | 
| 66 | 
            +
                port_in = BandwidthIris::PortIn.create(create_port_in_order(number_to_check, site, sip_peer))
         | 
| 67 | 
            +
                puts "Created order #{port_in[:id]}"
         | 
| 68 | 
            +
                port_in.create_file(File.open('./loa.pdf', 'r'), 'application/pdf')
         | 
| 69 | 
            +
              end
         | 
| 70 | 
            +
            rescue BandwidthIris::Errors::GenericError => e
         | 
| 71 | 
            +
              puts e.message
         | 
| 69 72 | 
             
            end
         | 
| 70 73 |  | 
| 74 | 
            +
             | 
| 71 75 | 
             
            def create_port_in_order(number, site, sip_peer)
         | 
| 72 76 | 
             
               {
         | 
| 73 77 | 
             
                :site_id => site[:id],
         | 
| @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            lib = File.expand_path('../../lib', __FILE__)
         | 
| 2 | 
            +
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            require 'yaml'
         | 
| 5 | 
            +
            require 'ruby-bandwidth-iris'
         | 
| 6 | 
            +
            config = YAML.load_file('config.yml')
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            BandwidthIris::Client.global_options = {
         | 
| 9 | 
            +
              :api_endpoint => config['api_endpoint'],
         | 
| 10 | 
            +
              :user_name => config['user_name'],
         | 
| 11 | 
            +
              :password => config['password'],
         | 
| 12 | 
            +
              :account_id => config['account_id']
         | 
| 13 | 
            +
            }
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            @portins = Array.new    # All portins on the account will be stored in this array
         | 
| 16 | 
            +
            page = BandwidthIris::PortIn.list({'page': 1, 'size': 5})   # Get the first page of paginated portin results
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            def get_portins(page)   # Recursively check for more pages of results and populate array with portins from current page
         | 
| 19 | 
            +
                page.each do |portin|
         | 
| 20 | 
            +
                    @portins.push(portin)
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
                unless page.next.nil?
         | 
| 23 | 
            +
                    get_portins(page.next)
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
            end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            get_portins(page)
         | 
| 28 | 
            +
            puts "Total Port-Ins: #{@portins.length()}"  # Print total number of portins on account
         | 
    
        data/examples/sip_peer.rb
    CHANGED
    
    | @@ -14,47 +14,51 @@ BandwidthIris::Client.global_options = { | |
| 14 14 |  | 
| 15 15 | 
             
            host = '10.20.30.41'
         | 
| 16 16 |  | 
| 17 | 
            +
            begin
         | 
| 18 | 
            +
              site = BandwidthIris::Site.create({
         | 
| 19 | 
            +
                :name => "Ruby Test Site",
         | 
| 20 | 
            +
                :description => "A Site From Ruby SDK Examples",
         | 
| 21 | 
            +
                :address => {
         | 
| 22 | 
            +
                  :house_number => "123",
         | 
| 23 | 
            +
                  :street_name => "Anywhere St",
         | 
| 24 | 
            +
                  :city => "Raleigh",
         | 
| 25 | 
            +
                  :state_code =>"NC",
         | 
| 26 | 
            +
                  :zip => "27609",
         | 
| 27 | 
            +
                  :address_type => "Service"
         | 
| 28 | 
            +
                }
         | 
| 29 | 
            +
              })
         | 
| 17 30 |  | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
                : | 
| 23 | 
            -
                : | 
| 24 | 
            -
                 | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
            data = {
         | 
| 32 | 
            -
              :peer_name => "A New SIP Peer",
         | 
| 33 | 
            -
              :is_default_peer => true,
         | 
| 34 | 
            -
              :short_messaging_protocol => "SMPP",
         | 
| 35 | 
            -
              :site_id => site[:id],
         | 
| 36 | 
            -
              :voice_hosts =>
         | 
| 37 | 
            -
              {
         | 
| 38 | 
            -
                  :host => {
         | 
| 39 | 
            -
                    :host_name => host
         | 
| 40 | 
            -
                  }
         | 
| 41 | 
            -
              },
         | 
| 42 | 
            -
              :sms_hosts =>
         | 
| 43 | 
            -
              {
         | 
| 44 | 
            -
                  :host => {
         | 
| 45 | 
            -
                    :host_name => host
         | 
| 46 | 
            -
                  }
         | 
| 47 | 
            -
              },
         | 
| 48 | 
            -
              :termination_hosts =>
         | 
| 31 | 
            +
              data = {
         | 
| 32 | 
            +
                :peer_name => "A New SIP Peer",
         | 
| 33 | 
            +
                :is_default_peer => true,
         | 
| 34 | 
            +
                :short_messaging_protocol => "SMPP",
         | 
| 35 | 
            +
                :site_id => site[:id],
         | 
| 36 | 
            +
                :voice_hosts =>
         | 
| 37 | 
            +
                {
         | 
| 38 | 
            +
                    :host => {
         | 
| 39 | 
            +
                      :host_name => host
         | 
| 40 | 
            +
                    }
         | 
| 41 | 
            +
                },
         | 
| 42 | 
            +
                :sms_hosts =>
         | 
| 49 43 | 
             
                {
         | 
| 50 | 
            -
             | 
| 51 | 
            -
             | 
| 52 | 
            -
                     | 
| 44 | 
            +
                    :host => {
         | 
| 45 | 
            +
                      :host_name => host
         | 
| 46 | 
            +
                    }
         | 
| 47 | 
            +
                },
         | 
| 48 | 
            +
                :termination_hosts =>
         | 
| 49 | 
            +
                  {
         | 
| 50 | 
            +
                    :termination_host => {
         | 
| 51 | 
            +
                      :host_name => host,
         | 
| 52 | 
            +
                      :port => 5060,
         | 
| 53 | 
            +
                    }
         | 
| 53 54 | 
             
                  }
         | 
| 54 | 
            -
                }
         | 
| 55 55 |  | 
| 56 | 
            -
            }
         | 
| 57 | 
            -
            sip_peer = BandwidthIris::SipPeer.create(site[:id], data)
         | 
| 56 | 
            +
              }
         | 
| 57 | 
            +
              sip_peer = BandwidthIris::SipPeer.create(site[:id], data)
         | 
| 58 | 
            +
            rescue BandwidthIris::Errors::GenericError => e
         | 
| 59 | 
            +
              puts e.message
         | 
| 60 | 
            +
            end
         | 
| 61 | 
            +
             | 
| 58 62 |  | 
| 59 63 |  | 
| 60 64 | 
             
            sip_peer.delete(site[:id])
         | 
    
        data/examples/site.rb
    CHANGED
    
    | @@ -12,18 +12,21 @@ BandwidthIris::Client.global_options = { | |
| 12 12 | 
             
              :account_id => config['account_id']
         | 
| 13 13 | 
             
            }
         | 
| 14 14 |  | 
| 15 | 
            -
             | 
| 16 | 
            -
            site = BandwidthIris::Site.create({
         | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
            })
         | 
| 15 | 
            +
            begin
         | 
| 16 | 
            +
              site = BandwidthIris::Site.create({
         | 
| 17 | 
            +
                :name => "Ruby Test Sitei1",
         | 
| 18 | 
            +
                :description => "A Site From Ruby SDK Examples",
         | 
| 19 | 
            +
                :address => {
         | 
| 20 | 
            +
                  :house_number => "123",
         | 
| 21 | 
            +
                  :street_name => "Anywhere St",
         | 
| 22 | 
            +
                  :city => "Raleigh",
         | 
| 23 | 
            +
                  :state_code =>"NC",
         | 
| 24 | 
            +
                  :zip => "27609",
         | 
| 25 | 
            +
                  :address_type => "Service"
         | 
| 26 | 
            +
                }
         | 
| 27 | 
            +
              })
         | 
| 28 | 
            +
            rescue BandwidthIris::Errors::GenericError => e
         | 
| 29 | 
            +
              puts e.message
         | 
| 30 | 
            +
            end
         | 
| 28 31 |  | 
| 29 32 | 
             
            site.delete()
         | 
    
        data/examples/tn.rb
    CHANGED
    
    | @@ -13,8 +13,11 @@ BandwidthIris::Client.global_options = { | |
| 13 13 | 
             
              :account_id => config['account_id']
         | 
| 14 14 | 
             
            }
         | 
| 15 15 |  | 
| 16 | 
            -
             | 
| 17 | 
            -
               | 
| 16 | 
            +
            begin
         | 
| 17 | 
            +
              list = BandwidthIris::Tn.list({:npa => '818', :page => 1, :size => 100}).each do |n|
         | 
| 18 | 
            +
                puts n.to_data
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
              puts BandwidthIris::Tn.get(list[0][:full_number]).to_data
         | 
| 21 | 
            +
            rescue BandwidthIris::Errors::GenericError => e
         | 
| 22 | 
            +
              puts e.message
         | 
| 18 23 | 
             
            end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
            puts BandwidthIris::Tn.get(list[0][:full_number]).to_data
         | 
| @@ -1,5 +1,6 @@ | |
| 1 1 | 
             
            require 'faraday'
         | 
| 2 2 | 
             
            require 'faraday_middleware'
         | 
| 3 | 
            +
            require 'active_support'
         | 
| 3 4 | 
             
            require 'active_support/xml_mini'
         | 
| 4 5 | 
             
            require 'active_support/core_ext/hash/conversions'
         | 
| 5 6 | 
             
            require 'active_support/core_ext/string/inflections'
         | 
| @@ -119,7 +120,7 @@ module BandwidthIris | |
| 119 120 | 
             
                # @param response response object
         | 
| 120 121 | 
             
                def check_response(response)
         | 
| 121 122 | 
             
                  parsed_body = parse_xml(response.body || '')
         | 
| 122 | 
            -
                  raise Errors::GenericError.new( | 
| 123 | 
            +
                  raise Errors::GenericError.new(response.status, response.reason_phrase, response.headers, parsed_body) if response.status >= 400
         | 
| 123 124 | 
             
                  parsed_body
         | 
| 124 125 | 
             
                end
         | 
| 125 126 |  | 
| @@ -2,17 +2,29 @@ module BandwidthIris | |
| 2 2 | 
             
              module Errors
         | 
| 3 3 | 
             
                # Generic error class
         | 
| 4 4 | 
             
                class GenericError < StandardError
         | 
| 5 | 
            -
                  # @return [String]  | 
| 6 | 
            -
                  attr_reader :code
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                  # @return [String] Http status code
         | 
| 5 | 
            +
                  # @return [String] HTTP status code
         | 
| 9 6 | 
             
                  attr_reader :http_status
         | 
| 10 7 |  | 
| 8 | 
            +
                  # return [String] Reason
         | 
| 9 | 
            +
                  attr_reader :reason
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  # return [Hash] Headers
         | 
| 12 | 
            +
                  attr_reader :headers
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                  # return [Hash] Body
         | 
| 15 | 
            +
                  attr_reader :body
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  # @return [String] Iris Error code
         | 
| 18 | 
            +
                  attr_reader :code
         | 
| 19 | 
            +
             | 
| 11 20 | 
             
                  # @api private
         | 
| 12 | 
            -
                  def initialize  | 
| 13 | 
            -
                    super message
         | 
| 14 | 
            -
                    @code = code
         | 
| 21 | 
            +
                  def initialize http_status, reason, headers, body
         | 
| 15 22 | 
             
                    @http_status = http_status
         | 
| 23 | 
            +
                    @reason = reason
         | 
| 24 | 
            +
                    @headers = headers
         | 
| 25 | 
            +
                    @body = body
         | 
| 26 | 
            +
                    @code = body.nil? ? '' : body[:error][:code]
         | 
| 27 | 
            +
                    super message = "HTTP Error\nStatus Code: #{@http_status}\nReason: #{@reason}\nHTTP Headers: #{@headers}\nResponse Body: #{@body}\nIris Error Code: #{@code}"
         | 
| 16 28 | 
             
                  end
         | 
| 17 29 | 
             
                end
         | 
| 18 30 |  | 
| @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            require "delegate"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module BandwidthIris
         | 
| 4 | 
            +
              class PaginatedResult < SimpleDelegator
         | 
| 5 | 
            +
                def initialize(items, links, &block)
         | 
| 6 | 
            +
                  super(items)
         | 
| 7 | 
            +
                  @links = links
         | 
| 8 | 
            +
                  @requestor = block
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                def next
         | 
| 12 | 
            +
                  return unless @links[:next]
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                  @requestor.call(@links[:next].match(/\<([^>]+)\>/)[1].sub(/^http.*\/v1.0/, ""))
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
            end
         | 
| @@ -13,6 +13,26 @@ module BandwidthIris | |
| 13 13 | 
             
                end
         | 
| 14 14 | 
             
                wrap_client_arg :create
         | 
| 15 15 |  | 
| 16 | 
            +
                def self.list_from_page_url(client, url, query=nil)
         | 
| 17 | 
            +
                  response = client.make_request(:get, url, query)[0]
         | 
| 18 | 
            +
                  items = response[:lnp_port_info_for_given_status]
         | 
| 19 | 
            +
                  items = items.is_a?(Array) ? items : [items]
         | 
| 20 | 
            +
                  PaginatedResult.new(
         | 
| 21 | 
            +
                    items.map { |item| PortIn.new(item, client) },
         | 
| 22 | 
            +
                    response[:links]
         | 
| 23 | 
            +
                  ) do |next_url|
         | 
| 24 | 
            +
                    list_from_page_url(client, next_url)
         | 
| 25 | 
            +
                  end
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                def self.list(client, query=nil)
         | 
| 29 | 
            +
                  list_from_page_url(client, client.concat_account_path(PORT_IN_PATH), query)
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
                wrap_client_arg :list
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                def tns
         | 
| 34 | 
            +
                  Array(@client.make_request(:get, "#{@client.concat_account_path(PORT_IN_PATH)}/#{order_id}/tns")[0][:telephone_number])
         | 
| 35 | 
            +
                end
         | 
| 16 36 |  | 
| 17 37 | 
             
                def update(data)
         | 
| 18 38 | 
             
                  @client.make_request(:put,"#{@client.concat_account_path(PORT_IN_PATH)}/#{id}", {:lnp_order_supp => data})
         | 
    
        data/lib/bandwidth-iris/tn.rb
    CHANGED
    
    | @@ -37,5 +37,13 @@ module BandwidthIris | |
| 37 37 | 
             
                def get_details()
         | 
| 38 38 | 
             
                  @client.make_request(:get, "#{TN_PATH}/#{CGI.escape(telephone_number)}/tndetails")[0][:telephone_number_details]
         | 
| 39 39 | 
             
                end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                def move(params)
         | 
| 42 | 
            +
                  @client.make_request(
         | 
| 43 | 
            +
                    :post,
         | 
| 44 | 
            +
                    @client.concat_account_path("moveTns"),
         | 
| 45 | 
            +
                    MoveTnsOrder: params.merge(TelephoneNumbers: { TelephoneNumber: telephone_number })
         | 
| 46 | 
            +
                  )
         | 
| 47 | 
            +
                end
         | 
| 40 48 | 
             
              end
         | 
| 41 49 | 
             
            end
         | 
    
        data/lib/ruby-bandwidth-iris.rb
    CHANGED
    
    | @@ -17,6 +17,7 @@ require 'bandwidth-iris/lidb' | |
| 17 17 | 
             
            require 'bandwidth-iris/lnp_checker'
         | 
| 18 18 | 
             
            require 'bandwidth-iris/lsr_order'
         | 
| 19 19 | 
             
            require 'bandwidth-iris/order'
         | 
| 20 | 
            +
            require 'bandwidth-iris/paginated_result'
         | 
| 20 21 | 
             
            require 'bandwidth-iris/port_in'
         | 
| 21 22 | 
             
            require 'bandwidth-iris/port_out'
         | 
| 22 23 | 
             
            require 'bandwidth-iris/rate_center'
         | 
    
        data/ruby-bandwidth-iris.gemspec
    CHANGED
    
    | @@ -18,7 +18,8 @@ Gem::Specification.new do |spec| | |
| 18 18 | 
             
              spec.add_dependency "faraday"
         | 
| 19 19 | 
             
              spec.add_dependency "faraday_middleware"
         | 
| 20 20 | 
             
              spec.add_dependency "nori"
         | 
| 21 | 
            -
              spec.add_dependency "activesupport", | 
| 21 | 
            +
              spec.add_dependency "activesupport",">= 4.2.7"
         | 
| 22 | 
            +
              spec.add_dependency "rexml"
         | 
| 22 23 |  | 
| 23 24 | 
             
              spec.add_development_dependency "bundler", ">= 1.3"
         | 
| 24 25 | 
             
              spec.add_development_dependency "rake", ">= 11.1.0"
         | 
| @@ -88,8 +88,13 @@ describe BandwidthIris::Client do | |
| 88 88 | 
             
                end
         | 
| 89 89 |  | 
| 90 90 | 
             
                it 'should raise error if http status >= 400' do
         | 
| 91 | 
            -
                  client.stubs.get('/v1.0/path1') { |env| [400, {}, ''] }
         | 
| 92 | 
            -
                  expect{client.make_request(:get, '/path1')}.to raise_error(Errors::GenericError | 
| 91 | 
            +
                  client.stubs.get('/v1.0/path1') { |env| [400, {'content-type'=>'application/xml'}, '<SearchResult><Error><Code>4010</Code><Description>The state abbreviation N is not valid.</Description></Error></SearchResult>'] }
         | 
| 92 | 
            +
                  expect{client.make_request(:get, '/path1')}.to raise_error(an_instance_of(Errors::GenericError).and having_attributes({
         | 
| 93 | 
            +
                    http_status: 400,
         | 
| 94 | 
            +
                    headers: {"content-type"=>"application/xml"},
         | 
| 95 | 
            +
                    code: 4010,
         | 
| 96 | 
            +
                    body: {:error=>{:code=>4010, :description=>"The state abbreviation N is not valid."}}
         | 
| 97 | 
            +
                  }))
         | 
| 93 98 | 
             
                end
         | 
| 94 99 | 
             
              end
         | 
| 95 100 | 
             
            end
         | 
| @@ -9,6 +9,22 @@ describe BandwidthIris::PortIn do | |
| 9 9 | 
             
                client.stubs.verify_stubbed_calls()
         | 
| 10 10 | 
             
              end
         | 
| 11 11 |  | 
| 12 | 
            +
              describe '#list_orders' do
         | 
| 13 | 
            +
                it 'should list port in orders' do
         | 
| 14 | 
            +
                  client.stubs.get('/v1.0/accounts/accountId/portins') {|env| [200, {}, Helper.xml['port_ins']]}
         | 
| 15 | 
            +
                  orders = PortIn.list(client)
         | 
| 16 | 
            +
                  orders.each do |order|
         | 
| 17 | 
            +
                    expect(order.class).to eql(BandwidthIris::PortIn)
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
                  expect(orders[0][:order_id]).to eql("ab03375f-e0a9-47f8-bd31-6d8435454a6b")
         | 
| 20 | 
            +
                  expect(orders[1][:order_id]).to eql("b2190bcc-0272-4a51-ba56-7c3d628e8706")
         | 
| 21 | 
            +
                  expect(orders[0][:lnp_losing_carrier_id]).to eql(1163)
         | 
| 22 | 
            +
                  expect(orders[1][:lnp_losing_carrier_id]).to eql(1290)
         | 
| 23 | 
            +
                  expect(orders[0][:last_modified_date]).to eql(DateTime.new(2020, 1, 15, 19, 8, 57.626))
         | 
| 24 | 
            +
                  expect(orders[1][:last_modified_date]).to eql(DateTime.new(2020, 1, 15, 19, 6, 10.085))
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
              
         | 
| 12 28 | 
             
              describe '#create' do
         | 
| 13 29 | 
             
                it 'should create an order' do
         | 
| 14 30 | 
             
                  data = {
         | 
| @@ -27,6 +27,19 @@ describe BandwidthIris::Tn do | |
| 27 27 | 
             
                end
         | 
| 28 28 | 
             
              end
         | 
| 29 29 |  | 
| 30 | 
            +
              describe '#move' do
         | 
| 31 | 
            +
                it 'should move a number' do
         | 
| 32 | 
            +
                  client.stubs.get('/v1.0/tns/1234') {|env| [200, {}, Helper.xml['tn']]}
         | 
| 33 | 
            +
                  tn = Tn.get(client, '1234')
         | 
| 34 | 
            +
                  client.stubs.post('/v1.0/accounts/accountId/moveTns') {|env| [201, {}, Helper.xml['tn_move']]}
         | 
| 35 | 
            +
                  order = tn.move({'SiteId': 12345, 'SipPeerId': 123450})[0][:move_tns_order]
         | 
| 36 | 
            +
                  expect(order[:created_by_user]).to eql('userapi')
         | 
| 37 | 
            +
                  expect(order[:order_id]).to eql('55689569-86a9-fe40-ab48-f12f6c11e108')
         | 
| 38 | 
            +
                  expect(order[:sip_peer_id]).to eql(123450)
         | 
| 39 | 
            +
                  expect(order[:site_id]).to eql(12345)
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
             | 
| 30 43 | 
             
              describe '#get_sites' do
         | 
| 31 44 | 
             
                it 'should return sites' do
         | 
| 32 45 | 
             
                  client.stubs.get('/v1.0/tns/1234/sites') {|env| [200, {}, Helper.xml['tn_sites']]}
         | 
    
        data/spec/xml.yml
    CHANGED
    
    | @@ -13,12 +13,14 @@ | |
| 13 13 | 
             
              rate_centers1: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><RateCenterResponse><ResultCount>1</ResultCount><RateCenters><RateCenter><Abbreviation>ACME</Abbreviation><Name>ACME</Name></RateCenter></RateCenters></RateCenterResponse>"
         | 
| 14 14 | 
             
              tn: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><TelephoneNumberResponse><TelephoneNumber>1234</TelephoneNumber><Status>Inservice</Status><LastModifiedDate>2014-05-09T21:12:03.000Z</LastModifiedDate><OrderCreateDate>2014-05-09T21:12:03.835Z</OrderCreateDate><OrderId>5f3a4dab-aac7-4b0a-8ee4-1b6a67ae04be</OrderId><OrderType>NEW_NUMBER_ORDER</OrderType><SiteId>1091</SiteId><AccountId>9500149</AccountId></TelephoneNumberResponse>"
         | 
| 15 15 | 
             
              tns: "<?xml version=\"1.0\"?><TelephoneNumbersResponse><TelephoneNumberCount>5</TelephoneNumberCount><Links><first></first><next></next></Links><TelephoneNumbers><TelephoneNumber><City>CARY</City><Lata>426</Lata><State>NC</State><FullNumber>9192381138</FullNumber><Tier>0</Tier><VendorId>49</VendorId><VendorName>Bandwidth CLEC</VendorName><RateCenter>CARY</RateCenter><Status>Inservice</Status><AccountId>9900008</AccountId><LastModified>2013-12-05T05:58:27.000Z</LastModified></TelephoneNumber><TelephoneNumber><City>CARY</City><Lata>426</Lata><FullNumber>9192381139</FullNumber><Tier>0</Tier><VendorId>49</VendorId><VendorName>Bandwidth CLEC</VendorName><RateCenter>CARY</RateCenter><Status>Inservice</Status><AccountId>9900000</AccountId><LastModified>2013-12-05T05:58:27.000Z</LastModified></TelephoneNumber></TelephoneNumbers></TelephoneNumbersResponse>"
         | 
| 16 | 
            +
              tn_move: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><MoveTnsOrderResponse><MoveTnsOrder><OrderCreateDate>2022-05-12T15:30:54.236Z</OrderCreateDate><AccountId>5551234</AccountId><CreatedByUser>userapi</CreatedByUser><OrderId>55689569-86a9-fe40-ab48-f12f6c11e108</OrderId><LastModifiedDate>2022-05-12T15:30:54.271Z</LastModifiedDate><SiteId>12345</SiteId><TelephoneNumbers><TelephoneNumber>1234</TelephoneNumber></TelephoneNumbers><ProcessingStatus>RECEIVED</ProcessingStatus><SipPeerId>123450</SipPeerId><Errors/><Warnings/></MoveTnsOrder></MoveTnsOrderResponse>"
         | 
| 16 17 | 
             
              tn_sites: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Site><Id>1435</Id><Name>Sales Training</Name></Site>"
         | 
| 17 18 | 
             
              tn_sip_peers: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><SipPeer><Id>4064</Id><Name>Sales</Name></SipPeer>"
         | 
| 18 19 | 
             
              tn_rate_center: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><TelephoneNumberResponse><TelephoneNumberDetails><State>CO</State><RateCenter>DENVER</RateCenter></TelephoneNumberDetails></TelephoneNumberResponse>"
         | 
| 19 20 | 
             
              tn_reservation: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><ReservationResponse><Reservation><ReservationId>e34474d6-1d47-486d-af32-be9f2eefdff4</ReservationId><AccountId>111</AccountId><ReservationExpires>13157</ReservationExpires><ReservedTn>9198975719</ReservedTn></Reservation></ReservationResponse>"
         | 
| 20 21 | 
             
              tn_details: "<TelephoneNumberResponse><TelephoneNumberDetails><City>JERSEY CITY</City><Lata>224</Lata><State>NJ</State><FullNumber>2018981023</FullNumber><Tier>0</Tier><VendorId>49</VendorId><VendorName>Bandwidth CLEC</VendorName><RateCenter>JERSEYCITY</RateCenter><Status>Inservice</Status><AccountId>14</AccountId><LastModified>2014-07-30T11:29:37.000Z</LastModified><Features><E911><Status>Success</Status></E911><Lidb><Status>Pending</Status><SubscriberInformation>Fred</SubscriberInformation><UseType>BUSINESS</UseType><Visibility>PUBLIC</Visibility></Lidb><Dlda><Status>Success</Status><SubscriberType>BUSINESS</SubscriberType><ListingType>LISTED</ListingType><ListingName><FirstName>Joe</FirstName><LastName>Smith</LastName></ListingName><ListAddress>true</ListAddress><Address><HouseNumber>12</HouseNumber><StreetName>ELM</StreetName><City>New York</City><StateCode>NY</StateCode><Zip>10007</Zip><Country>United States</Country><AddressType>Dlda</AddressType></Address></Dlda></Features><TnAttributes><TnAttribute>Protected</TnAttribute></TnAttributes></TelephoneNumberDetails></TelephoneNumberResponse>"
         | 
| 21 22 | 
             
              port_in: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><LnpOrderResponse><OrderId>d28b36f7-fa96-49eb-9556-a40fca49f7c6</OrderId><Status><Code>201</Code><Description>Order request received. Please use the order id to check the status of your order later.</Description></Status><ProcessingStatus>PENDING_DOCUMENTS</ProcessingStatus><LoaAuthorizingPerson>John Doe</LoaAuthorizingPerson><Subscriber><SubscriberType>BUSINESS</SubscriberType><BusinessName>Acme Corporation</BusinessName><ServiceAddress><HouseNumber>1623</HouseNumber><StreetName>Brockton Ave #1</StreetName><City>Los Angeles</City><StateCode>CA</StateCode><Zip>90025</Zip><Country>USA</Country></ServiceAddress></Subscriber><BillingTelephoneNumber>6882015002</BillingTelephoneNumber><ListOfPhoneNumbers><PhoneNumber>6882015025</PhoneNumber><PhoneNumber>6882015026</PhoneNumber></ListOfPhoneNumbers><Triggered>false</Triggered><BillingType>PORTIN</BillingType></LnpOrderResponse>"
         | 
| 23 | 
            +
              port_ins: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><LNPResponseWrapper><TotalCount>2</TotalCount><Links><first>Link=<https://test.dashboard.bandwidth.com:443/v1.0/accounts/9900012/portins?page=1&size=10&date=2020-01-15&status=foc>;rel=\"first\";</first></Links><lnpPortInfoForGivenStatus><accountId>9900012</accountId><CountOfTNs>1</CountOfTNs><userId>System</userId><lastModifiedDate>2020-01-15T19:08:57.626Z</lastModifiedDate><OrderDate>2020-01-15T19:08:10.488Z</OrderDate><OrderId>ab03375f-e0a9-47f8-bd31-6d8435454a6b</OrderId><OrderType>port_in</OrderType><ActualFOCDate>2020-01-16T16:30:00.000Z</ActualFOCDate><BillingTelephoneNumber>9196247209</BillingTelephoneNumber><CompanyName>WandEDemo</CompanyName><LNPLosingCarrierId>1163</LNPLosingCarrierId><LNPLosingCarrierName>Bandwidth</LNPLosingCarrierName><ProcessingStatus>FOC</ProcessingStatus><RequestedFOCDate>2020-01-16T16:30:00.000Z</RequestedFOCDate><VendorId>49</VendorId><VendorName>Bandwidth CLEC</VendorName><PON>4c129d8e-57fc-4ccb-a37d-7f21aca8b32d</PON></lnpPortInfoForGivenStatus><lnpPortInfoForGivenStatus><accountId>9900012</accountId><CountOfTNs>1</CountOfTNs><userId>gforrest</userId><lastModifiedDate>2020-01-15T19:06:10.085Z</lastModifiedDate><OrderDate>2019-10-14T17:16:41.949Z</OrderDate><OrderId>b2190bcc-0272-4a51-ba56-7c3d628e8706</OrderId><OrderType>port_in</OrderType><ActualFOCDate>2020-01-16T01:00:00.000Z</ActualFOCDate><BillingTelephoneNumber>2174101100</BillingTelephoneNumber><CompanyName>WandEDemo</CompanyName><LNPLosingCarrierId>1290</LNPLosingCarrierId><LNPLosingCarrierName>IntegraTelecom</LNPLosingCarrierName><ProcessingStatus>FOC</ProcessingStatus><RequestedFOCDate>2020-01-21T17:30:00.000Z</RequestedFOCDate><VendorId>57</VendorId><VendorName>Level 3</VendorName><PON>979E019287CDF6A1</PON></lnpPortInfoForGivenStatus></LNPResponseWrapper>"
         | 
| 22 24 | 
             
              notes: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Notes><Note><Id>11299</Id><UserId>customer</UserId><Description>Test</Description><LastDateModifier>2014-11-20T07:08:47.000Z</LastDateModifier></Note><Note><Id>11301</Id><UserId>customer</UserId><Description>Test1</Description><LastDateModifier>2014-11-20T07:11:36.000Z</LastDateModifier></Note></Notes>"
         | 
| 23 25 | 
             
              files: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><fileListResponse><fileCount>6</fileCount><fileData><FileName>d28b36f7-fa96-49eb-9556-a40fca49f7c6-1416231534986.txt</FileName><FileMetaData><DocumentType>LOA</DocumentType></FileMetaData></fileData><fileData><FileName>d28b36f7-fa96-49eb-9556-a40fca49f7c6-1416231558768.txt</FileName><FileMetaData><DocumentType>LOA</DocumentType></FileMetaData></fileData><fileData><FileName>d28b36f7-fa96-49eb-9556-a40fca49f7c6-1416231581134.txt</FileName><FileMetaData><DocumentType>LOA</DocumentType></FileMetaData></fileData><fileData><FileName>d28b36f7-fa96-49eb-9556-a40fca49f7c6-1416231629005.txt</FileName><FileMetaData><DocumentType>LOA</DocumentType></FileMetaData></fileData><fileData><FileName>d28b36f7-fa96-49eb-9556-a40fca49f7c6-1416231699462.txt</FileName><FileMetaData><DocumentType>LOA</DocumentType></FileMetaData></fileData><fileData><FileName>d28b36f7-fa96-49eb-9556-a40fca49f7c6-1416232756923.txt</FileName><FileMetaData><DocumentType>LOA</DocumentType></FileMetaData></fileData><resultCode>0</resultCode><resultMessage>LOA file list successfully returned</resultMessage></fileListResponse>"
         | 
| 24 26 | 
             
              file_metadata: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><FileMetaData><DocumentType>LOA</DocumentType></FileMetaData>"
         | 
| @@ -39,7 +41,6 @@ | |
| 39 41 | 
             
              users: "<?xml version=\"1.0\"?><UsersResponse><Users><User><Username>testcustomer</Username><FirstName>Jane</FirstName><LastName>Doe</LastName><EmailAddress>janedoe@bandwidth.com</EmailAddress><TelephoneNumber>9199999999</TelephoneNumber></User><User><Username>johndoe</Username><FirstName>John</FirstName><LastName>Doe</LastName><EmailAddress>johndoe@bandwidth.com</EmailAddress><TelephoneNumber>9199999998</TelephoneNumber></User></Users></UsersResponse>"
         | 
| 40 42 | 
             
              dldas: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?><ResponseSelectWrapper><ListOrderIdUserIdDate><TotalCount>3</TotalCount><OrderIdUserIdDate><accountId>14</accountId><CountOfTNs>2</CountOfTNs><userId>team_ua</userId><lastModifiedDate>2014-07-07T10:06:43.427Z</lastModifiedDate><OrderType>dlda</OrderType><OrderDate>2014-07-07T10:06:43.427Z</OrderDate><orderId>37a6447c-1a0b-4be9-ba89-3f5cb0aea142</orderId><OrderStatus>FAILED</OrderStatus></OrderIdUserIdDate><OrderIdUserIdDate><accountId>14</accountId><CountOfTNs>2</CountOfTNs><userId>team_ua</userId><lastModifiedDate>2014-07-07T10:05:56.595Z</lastModifiedDate><OrderType>dlda</OrderType><OrderDate>2014-07-07T10:05:56.595Z</OrderDate><orderId>743b0e64-3350-42e4-baa6-406dac7f4a85</orderId><OrderStatus>RECEIVED</OrderStatus></OrderIdUserIdDate><OrderIdUserIdDate><accountId>14</accountId><CountOfTNs>2</CountOfTNs><userId>team_ua</userId><lastModifiedDate>2014-07-07T09:32:17.234Z</lastModifiedDate><OrderType>dlda</OrderType><OrderDate>2014-07-07T09:32:17.234Z</OrderDate><orderId>f71eb4d2-bfef-4384-957f-45cd6321185e</orderId><OrderStatus>RECEIVED</OrderStatus></OrderIdUserIdDate></ListOrderIdUserIdDate></ResponseSelectWrapper>"
         | 
| 41 43 | 
             
              dlda: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?><DldaOrderResponse><DldaOrder><CustomerOrderId>5a88d16d-f8a9-45c5-a5db-137d700c6a22</CustomerOrderId><OrderCreateDate>2014-07-10T12:38:11.833Z</OrderCreateDate><AccountId>14</AccountId><CreatedByUser>jbm</CreatedByUser><OrderId>ea9e90c2-77a4-4f82-ac47-e1c5bb1311f4</OrderId><LastModifiedDate>2014-07-10T12:38:11.833Z</LastModifiedDate><ProcessingStatus>RECEIVED</ProcessingStatus><DldaTnGroups><DldaTnGroup><TelephoneNumbers><TelephoneNumber>2053778335</TelephoneNumber><TelephoneNumber>2053865784</TelephoneNumber></TelephoneNumbers><AccountType>BUSINESS</AccountType><ListingType>LISTED</ListingType><ListingName><FirstName>Joe</FirstName><LastName>Smith</LastName></ListingName><ListAddress>true</ListAddress><Address><HouseNumber>12</HouseNumber><StreetName>ELM</StreetName><City>New York</City><StateCode>NY</StateCode><Zip>10007</Zip><Country>United States</Country><AddressType>Dlda</AddressType></Address></DldaTnGroup></DldaTnGroups></DldaOrder></DldaOrderResponse>"
         | 
| 42 | 
            -
              order_history: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><OrderHistoryWrapper><OrderHistory><OrderDate>2014-05-20T14:21:43.937Z</OrderDate><Note>Order backordered - awaiting additional numbers</Note><Status>BACKORDERED</Status></OrderHistory><OrderHistory><OrderDate>2014-05-20T14:24:43.428Z</OrderDate><Note>Order backordered - awaiting additional numbers</Note><Author>System</Author><Status>BACKORDERED</Status><Difference></Difference></OrderHistory></OrderHistoryWrapper>"
         | 
| 43 44 | 
             
              in_service_numbers: "<?xml version=\"1.0\"?><TNs><TotalCount>59</TotalCount><Links><first> ( a link goes here ) </first></Links><TelephoneNumbers><Count>59</Count><TelephoneNumber>8043024183</TelephoneNumber><TelephoneNumber>8042121778</TelephoneNumber><TelephoneNumber>8042146066</TelephoneNumber><TelephoneNumber>8043814903</TelephoneNumber><TelephoneNumber>8043814905</TelephoneNumber><TelephoneNumber>8043814864</TelephoneNumber><TelephoneNumber>8043326094</TelephoneNumber><TelephoneNumber>8042121771</TelephoneNumber><TelephoneNumber>8043024182</TelephoneNumber><!-- SNIP --><TelephoneNumber>8043814900</TelephoneNumber><TelephoneNumber>8047672642</TelephoneNumber><TelephoneNumber>8043024368</TelephoneNumber><TelephoneNumber>8042147950</TelephoneNumber><TelephoneNumber>8043169931</TelephoneNumber><TelephoneNumber>8043325302</TelephoneNumber></TelephoneNumbers></TNs>"
         | 
| 44 45 | 
             
              in_service_numbers_totals: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Quantity><Count>3</Count></Quantity>"
         | 
| 45 46 | 
             
              lidbs: "<?xml version=\"1.0\"?><ResponseSelectWrapper><ListOrderIdUserIdDate><TotalCount>2122</TotalCount><OrderIdUserIdDate><accountId>9999999</accountId><CountOfTNs>0</CountOfTNs><lastModifiedDate>2014-02-25T16:02:43.195Z</lastModifiedDate><OrderType>lidb</OrderType><OrderDate>2014-02-25T16:02:43.195Z</OrderDate><orderId>abe36738-6929-4c6f-926c-88e534e2d46f</orderId><OrderStatus>FAILED</OrderStatus><TelephoneNumberDetails/><userId>team_ua</userId></OrderIdUserIdDate><!-- ...SNIP... --><OrderIdUserIdDate><accountId>9999999</accountId><CountOfTNs>0</CountOfTNs><lastModifiedDate>2014-02-25T16:02:39.021Z</lastModifiedDate><OrderType>lidb</OrderType><OrderDate>2014-02-25T16:02:39.021Z</OrderDate><orderId>ba5b6297-139b-4430-aab0-9ff02c4362f4</orderId><OrderStatus>FAILED</OrderStatus><userId>team_ua</userId></OrderIdUserIdDate></ListOrderIdUserIdDate></ResponseSelectWrapper>"
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ruby-bandwidth-iris
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 5.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Andrey Belchikov
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2022- | 
| 11 | 
            +
            date: 2022-05-24 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: builder
         | 
| @@ -70,16 +70,30 @@ dependencies: | |
| 70 70 | 
             
              name: activesupport
         | 
| 71 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                requirements:
         | 
| 73 | 
            -
                - - " | 
| 73 | 
            +
                - - ">="
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 75 | 
             
                    version: 4.2.7
         | 
| 76 76 | 
             
              type: :runtime
         | 
| 77 77 | 
             
              prerelease: false
         | 
| 78 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
                requirements:
         | 
| 80 | 
            -
                - - " | 
| 80 | 
            +
                - - ">="
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 82 | 
             
                    version: 4.2.7
         | 
| 83 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 84 | 
            +
              name: rexml
         | 
| 85 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 | 
            +
                requirements:
         | 
| 87 | 
            +
                - - ">="
         | 
| 88 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            +
                    version: '0'
         | 
| 90 | 
            +
              type: :runtime
         | 
| 91 | 
            +
              prerelease: false
         | 
| 92 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 | 
            +
                requirements:
         | 
| 94 | 
            +
                - - ">="
         | 
| 95 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            +
                    version: '0'
         | 
| 83 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 98 | 
             
              name: bundler
         | 
| 85 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -129,10 +143,10 @@ extensions: [] | |
| 129 143 | 
             
            extra_rdoc_files: []
         | 
| 130 144 | 
             
            files:
         | 
| 131 145 | 
             
            - ".editorconfig"
         | 
| 146 | 
            +
            - ".github/CODEOWNERS"
         | 
| 132 147 | 
             
            - ".github/ISSUE_TEMPLATE/bug_report.md"
         | 
| 133 148 | 
             
            - ".github/ISSUE_TEMPLATE/config.yml"
         | 
| 134 149 | 
             
            - ".github/workflows/deploy.yml"
         | 
| 135 | 
            -
            - ".github/workflows/release-draft.yml"
         | 
| 136 150 | 
             
            - ".github/workflows/test.yml"
         | 
| 137 151 | 
             
            - ".gitignore"
         | 
| 138 152 | 
             
            - ".rspec"
         | 
| @@ -153,6 +167,7 @@ files: | |
| 153 167 | 
             
            - examples/order.rb
         | 
| 154 168 | 
             
            - examples/order_number.rb
         | 
| 155 169 | 
             
            - examples/port-in.rb
         | 
| 170 | 
            +
            - examples/portin_list.rb
         | 
| 156 171 | 
             
            - examples/sip_peer.rb
         | 
| 157 172 | 
             
            - examples/site.rb
         | 
| 158 173 | 
             
            - examples/tn.rb
         | 
| @@ -182,6 +197,7 @@ files: | |
| 182 197 | 
             
            - lib/bandwidth-iris/lnp_checker.rb
         | 
| 183 198 | 
             
            - lib/bandwidth-iris/lsr_order.rb
         | 
| 184 199 | 
             
            - lib/bandwidth-iris/order.rb
         | 
| 200 | 
            +
            - lib/bandwidth-iris/paginated_result.rb
         | 
| 185 201 | 
             
            - lib/bandwidth-iris/port_in.rb
         | 
| 186 202 | 
             
            - lib/bandwidth-iris/port_out.rb
         | 
| 187 203 | 
             
            - lib/bandwidth-iris/rate_center.rb
         | 
| @@ -255,7 +271,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 255 271 | 
             
                - !ruby/object:Gem::Version
         | 
| 256 272 | 
             
                  version: '0'
         | 
| 257 273 | 
             
            requirements: []
         | 
| 258 | 
            -
            rubygems_version: 3.2. | 
| 274 | 
            +
            rubygems_version: 3.2.33
         | 
| 259 275 | 
             
            signing_key: 
         | 
| 260 276 | 
             
            specification_version: 4
         | 
| 261 277 | 
             
            summary: Gem for integrating to Bandwidth's Iris API
         | 
| @@ -1,19 +0,0 @@ | |
| 1 | 
            -
            name: Create/update draft release
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            on:
         | 
| 4 | 
            -
              push:
         | 
| 5 | 
            -
                branches:
         | 
| 6 | 
            -
                  - main
         | 
| 7 | 
            -
             | 
| 8 | 
            -
            jobs:
         | 
| 9 | 
            -
              deploy:
         | 
| 10 | 
            -
                name: deploy
         | 
| 11 | 
            -
                runs-on: ubuntu-latest
         | 
| 12 | 
            -
                steps:
         | 
| 13 | 
            -
                  - uses: actions/checkout@v2
         | 
| 14 | 
            -
                  # Drafts your next Release notes as Pull Requests are merged
         | 
| 15 | 
            -
                  - uses: release-drafter/release-drafter@v5
         | 
| 16 | 
            -
                    with:
         | 
| 17 | 
            -
                      config-name: draft_release.yml
         | 
| 18 | 
            -
                    env:
         | 
| 19 | 
            -
                      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         |