Sha256: e7fc69d0452f11e4552e48fa6c1d3a33e6a3c2ac55b8c2fa4f1a8e15a0b1c611

Contents?: true

Size: 969 Bytes

Versions: 2

Compression:

Stored size: 969 Bytes

Contents

# frozen_string_literal: true

module TwilioBase
  class PhoneNumber
    COUNTRY_CODE = ENV.fetch('COUNTRY_CODE')

    class << self
      include TwilioBase::Clients

      def find_or_create(phone_number)
        phone_number ? find(phone_number) : create
      end

      def incoming_phone_number_list(**args)
        incoming_phone_numbers.list(args)
      end

      private

      def find(phone_number)
        incoming_phone_number_list(phone_number: phone_number).first
      end

      def create
        number = available_numbers.first.phone_number
        purchase_number(number)
      end

      def available_numbers
        rest_client.api.available_phone_numbers(COUNTRY_CODE).local.list(
          sms_enabled: true
        )
      end

      def purchase_number(number)
        incoming_phone_numbers.create(phone_number: number)
      end

      def incoming_phone_numbers
        rest_client.api.incoming_phone_numbers
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
twilio_base-1.11.1101 app/services/twilio_base/phone_number.rb
twilio_base-1.11.11 app/services/twilio_base/phone_number.rb