lib/ringcentral_sdk/rest/request/fax.rb in ringcentral_sdk-2.0.3 vs lib/ringcentral_sdk/rest/request/fax.rb in ringcentral_sdk-2.1.0

- old
+ new

@@ -1,111 +1,21 @@ -require 'base64' -require 'mime' -require 'mime/types' -require 'mime_builder' -require 'multi_json' - module RingCentralSdk module REST module Request - # Helper to create a fax request - class Fax < RingCentralSdk::REST::Request::Base - attr_reader :msg - - attr_reader :account_id - attr_reader :extension_id - - def initialize(opts = {}) - @metadata_part_encode_base64 = true - - @msg = MIME::Multipart::Mixed.new - @msg.headers.delete('Content-Id') - - add_path(opts) - add_part_meta(opts) - add_part_text(opts[:text]) - add_parts(opts[:files]) - add_parts(opts[:parts]) - end - - def add_path(opts = {}) - @account_id = opts[:accountId] ||= '~' - @extension_id = opts[:extensionId] ||= '~' - end - - def add_part_meta(opts = {}) - meta = create_metadata opts - @msg.add MIMEBuilder::JSON.new(meta).mime - true - end - - def create_metadata(opts = {}) - meta = {} - return meta unless opts.is_a?(Hash) - - inf = RingCentralSdk::REST::Request::Inflator::ContactInfo.new - meta[:to] = inf.inflate_to_array opts[:to] - - processed = { - accountId: 1, - extensionId: 1, - to: 1, - text: 1, - files: 1, - parts: 1 - } - - opts.each do |k, v| - meta[k] = v unless processed.key? k - end - - meta - end - - def add_part_text(text = nil, opts = {}) - return if text.nil? || text.to_s.empty? - opts[:content_id_disable] = true - text_part = MIMEBuilder::Text.new text, opts - @msg.add text_part.mime - end - - def add_parts(parts = []) - return if parts.nil? - unless parts.is_a? Array - raise 'invalid parameter[0]. needs to be an array' - end - parts.each do |part| - if part.is_a? MIME::Media - @msg.add part - elsif part.is_a?(String) - file_part = MIMEBuilder::Filepath.new part - @msg.add file_part.mime - elsif part.is_a? Hash - part[:content_id_disable] = true - part[:is_attachment] = true - if part.key? :filename - @msg.add MIMEBuilder::Filepath.new(part[:filename], part).mime - elsif part.key? :text - @msg.add MIMEBuilder::Text.new(part[:text], part).mime - end + class Fax < RingCentralSdk::REST::Request::BaseMultipart + def add_metadata data, opts = {} + if data.is_a? Hash + inf = RingCentralSdk::REST::Request::Inflator::ContactInfo.new + if data.key? :to + data[:to] = inf.inflate_to_array data[:to] end end - end - def method - 'post' + super data, opts end def url "account/#{@account_id}/extension/#{@extension_id}/fax" - end - - def content_type - @msg.headers.get('Content-Type').to_s - end - - def body - @msg.body.to_s end end end end end