Sha256: f4703c97dd96b975b0bed72a7b5e0f4d4eae709464f98b711440fc6a55282b8c

Contents?: true

Size: 1.53 KB

Versions: 1

Compression:

Stored size: 1.53 KB

Contents

module Webex
  module Meeting
    # comment
    class Presenter
      include Webex
      attr_accessor :meeting_key, :back_url, :email, :full_name, :invitation,
                    :phones, :cancel_mail
      # phones = {PhoneCountry: nil, PhoneArea: nil, PhoneNumber: nil, PhoneExt: nil}

      def initialize(attributes = {})
        attributes.each { |k, v| send("#{k}=", v) }
        env_attributes!
        option_required! :back_url
      end

      def add
        option_required! :full_name
        { params: generate_params(api_type: 'AP'),
          url: URI.join(CONFIGURATION.host_url + PATH_URL) }
      end

      def delete
        { params: generate_params(api_type: 'DP'),
          url: URI.join(CONFIGURATION.host_url + PATH_URL) }
      end

      private

      def cancel_mail?
        cancel_mail
      end

      def phone_params
        result = {}
        result[:PC] = phones[:PhoneCountry]
        result[:PA] = phones[:PhoneArea]
        result[:PN] = phones[:PhoneNumber]
        result[:PE] = phones[:PhoneExt]
        result
      end

      def generate_params(overwrite_params = {})
        result = {}
        result[:AT] = overwrite_params[:api_type]
        result[:MK] = meeting_key
        result[:BU] = back_url
        result[:FN] = full_name
        result[:EM] = email
        if result[:AT] == 'AP'
          result[:EI] = invitation
          result.merge!(phone_params) if phones
        end
        result[:EC] = cancel_mail? if result[:AT] == 'DP'
        result.delete_if { |k, v| v.nil? }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
webex-0.0.1 lib/webex/meeting/presenter.rb