class InterFAX::Outbound::Delivery
Constants
- BOUNDARY
- HEADERS
- VALID_KEYS
Attributes
client[RW]
fax_number[RW]
files[RW]
params[RW]
Public Class Methods
new(client)
click to toggle source
# File lib/interfax/outbound/delivery.rb, line 10 def initialize client self.client = client end
Public Instance Methods
deliver(params)
click to toggle source
# File lib/interfax/outbound/delivery.rb, line 14 def deliver params params, files = validate_params(params) file_objects = generate_file_objects(files) body = body_for(file_objects) result = client.post('/outbound/faxes', params, VALID_KEYS, HEADERS, body) InterFAX::Outbound::Fax.new(client: client, id: result.split('/').last) end
Private Instance Methods
body_for(files)
click to toggle source
# File lib/interfax/outbound/delivery.rb, line 47 def body_for(files) files.map do |file| "--#{BOUNDARY}\r\n#{file.header}\r\n\r\n#{file.body}\r\n" end.join + "--#{BOUNDARY}--\r\n" end
generate_file_objects(files)
click to toggle source
# File lib/interfax/outbound/delivery.rb, line 37 def generate_file_objects files files.map do |file| if file.kind_of?(String) InterFAX::File.new(client, file) elsif file.kind_of?(InterFAX::File) file end end end
validate_params(params)
click to toggle source
# File lib/interfax/outbound/delivery.rb, line 26 def validate_params params self.fax_number = params[:faxNumber] || raise(ArgumentError.new('Missing argument: faxNumber')) files = [params[:file] || params[:files] || raise(ArgumentError.new('Missing argument: file or files'))].flatten params.delete(:fax_number) params.delete(:file) params.delete(:files) [params, files] end