Sha256: c54da3aef82ade79ac60911e5617af2f119214057bbe52823d9c1e28d7aa48d2

Contents?: true

Size: 1.29 KB

Versions: 9

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

module Telnyx
  class Call < APIResource
    extend Telnyx::APIOperations::Create
    extend Telnyx::APIOperations::NestedResource

    def initialize(*args, **opts)
      super
      opts.each do |k, v|
        setter = "#{k}=".to_sym
        next unless respond_to? setter
        send(setter, v)
      end
    end

    def id
      call_control_id if defined? call_control_id
    end

    def id=(val)
      initialize_from({ call_control_id: val }, {}, true)
    end

    %w[call_leg_id call_session_id].each do |attribute|
      define_method attribute do
        send(attribute) if respond_to?(attribute)
      end
      define_method attribute + "=" do |val|
        initialize_from({ attribute.to_sym => val }, {}, true)
      end
    end

    ACTIONS = %w[reject answer hangup bridge speak fork_start fork_stop
                 gather_using_audio gather_using_speak playback_start
                 playback_stop record_start record_stop send_dtmf transfer].freeze

    ACTIONS.each do |action|
      nested_resource_class_methods action,
                                    path: ["actions", action],
                                    operations: [:create],
                                    instance_methods: { create: action }
    end

    OBJECT_NAME = "call".freeze
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
telnyx-2.4.0 lib/telnyx/call.rb
telnyx-2.3.0 lib/telnyx/call.rb
telnyx-2.2.0 lib/telnyx/call.rb
telnyx-0.1.0 lib/telnyx/call.rb
telnyx-0.0.8 lib/telnyx/call.rb
telnyx-0.0.7 lib/telnyx/call.rb
telnyx-0.0.6 lib/telnyx/call.rb
telnyx-0.0.5 lib/telnyx/call.rb
telnyx-0.0.4 lib/telnyx/call.rb