lib/constantcontact/util/config.rb in constantcontact-1.0.2 vs lib/constantcontact/util/config.rb in constantcontact-1.1.0

- old
+ new

@@ -3,144 +3,162 @@ # ConstantContact # # Copyright (c) 2013 Constant Contact. All rights reserved. module ConstantContact - module Util - class Config + module Util + class Config - # Return a hash of configuration strings - # @return [Hash] - hash of configuration properties - @props = { - # REST endpoints - :endpoints => { - :base_url => 'https://api.constantcontact.com/v2/', + # Return a hash of configuration strings + # @return [Hash] - hash of configuration properties + @props = { + # REST endpoints + :endpoints => { + :base_url => 'https://api.constantcontact.com/v2/', - :activity => 'activities/%s', - :activities => 'activities', - :export_contacts_activity => 'activities/exportcontacts', - :clear_lists_activity => 'activities/clearlists', - :remove_from_lists_activity => 'activities/removefromlists', - :add_contacts_activity => 'activities/addcontacts', + :activity => 'activities/%s', + :activities => 'activities', + :export_contacts_activity => 'activities/exportcontacts', + :clear_lists_activity => 'activities/clearlists', + :remove_from_lists_activity => 'activities/removefromlists', + :add_contacts_activity => 'activities/addcontacts', - :account_verified_addresses => 'account/verifiedemailaddresses', + :account_verified_addresses => 'account/verifiedemailaddresses', - :contact => 'contacts/%s', - :contacts => 'contacts', - :lists => 'lists', - :list => 'lists/%s', - :list_contacts => 'lists/%s/contacts', - :contact_lists => 'contacts/%s/lists', - :contact_list => 'contacts/%s/lists/%s', + :contact => 'contacts/%s', + :contacts => 'contacts', + :lists => 'lists', + :list => 'lists/%s', + :list_contacts => 'lists/%s/contacts', + :contact_lists => 'contacts/%s/lists', + :contact_list => 'contacts/%s/lists/%s', - :campaigns => 'emailmarketing/campaigns', - :campaign => 'emailmarketing/campaigns/%s', - :campaign_schedules => 'emailmarketing/campaigns/%s/schedules', - :campaign_schedule => 'emailmarketing/campaigns/%s/schedules/%s', - :campaign_test_sends => 'emailmarketing/campaigns/%s/tests', - :campaign_tracking_summary => 'emailmarketing/campaigns/%s/tracking/reports/summary', - :campaign_tracking_bounces => 'emailmarketing/campaigns/%s/tracking/bounces', - :campaign_tracking_clicks => 'emailmarketing/campaigns/%s/tracking/clicks', - :campaign_tracking_forwards => 'emailmarketing/campaigns/%s/tracking/forwards', - :campaign_tracking_opens => 'emailmarketing/campaigns/%s/tracking/opens', - :campaign_tracking_sends => 'emailmarketing/campaigns/%s/tracking/sends', - :campaign_tracking_unsubscribes => 'emailmarketing/campaigns/%s/tracking/unsubscribes', - :campaign_tracking_link => 'emailmarketing/campaigns/%s/tracking/clicks/%s', + :campaigns => 'emailmarketing/campaigns', + :campaign => 'emailmarketing/campaigns/%s', + :campaign_schedules => 'emailmarketing/campaigns/%s/schedules', + :campaign_schedule => 'emailmarketing/campaigns/%s/schedules/%s', + :campaign_test_sends => 'emailmarketing/campaigns/%s/tests', + :campaign_tracking_summary => 'emailmarketing/campaigns/%s/tracking/reports/summary', + :campaign_tracking_bounces => 'emailmarketing/campaigns/%s/tracking/bounces', + :campaign_tracking_clicks => 'emailmarketing/campaigns/%s/tracking/clicks', + :campaign_tracking_forwards => 'emailmarketing/campaigns/%s/tracking/forwards', + :campaign_tracking_opens => 'emailmarketing/campaigns/%s/tracking/opens', + :campaign_tracking_sends => 'emailmarketing/campaigns/%s/tracking/sends', + :campaign_tracking_unsubscribes => 'emailmarketing/campaigns/%s/tracking/unsubscribes', + :campaign_tracking_link => 'emailmarketing/campaigns/%s/tracking/clicks/%s', - :contact_tracking_summary => 'contacts/%s/tracking/reports/summary', - :contact_tracking_bounces => 'contacts/%s/tracking/bounces', - :contact_tracking_clicks => 'contacts/%s/tracking/clicks', - :contact_tracking_forwards => 'contacts/%s/tracking/forwards', - :contact_tracking_opens => 'contacts/%s/tracking/opens', - :contact_tracking_sends => 'contacts/%s/tracking/sends', - :contact_tracking_unsubscribes => 'contacts/%s/tracking/unsubscribes', - :contact_tracking_link => 'contacts/%s/tracking/clicks/%s' - }, + :events => 'eventspot/events', + :event => 'eventspot/events/%s', + :event_fees => 'eventspot/events/%s/fees', + :event_fee => 'eventspot/events/%s/fees/%s', + :event_registrants => 'eventspot/events/%s/registrants', + :event_registrant => 'eventspot/events/%s/registrants/%s', - # OAuth2 Authorization related configuration options - :auth => { - :base_url => 'https://oauth2.constantcontact.com/oauth2/', - :response_type_code => 'code', - :response_type_token => 'token', - :authorization_code_grant_type => 'authorization_code', - :authorization_endpoint => 'oauth/siteowner/authorize', - :token_endpoint => 'oauth/token', + :contact_tracking_summary => 'contacts/%s/tracking/reports/summary', + :contact_tracking_bounces => 'contacts/%s/tracking/bounces', + :contact_tracking_clicks => 'contacts/%s/tracking/clicks', + :contact_tracking_forwards => 'contacts/%s/tracking/forwards', + :contact_tracking_opens => 'contacts/%s/tracking/opens', + :contact_tracking_sends => 'contacts/%s/tracking/sends', + :contact_tracking_unsubscribes => 'contacts/%s/tracking/unsubscribes', + :contact_tracking_link => 'contacts/%s/tracking/clicks/%s', + + :library_info => 'library/info', + :library_files => 'library/files', + :library_files_by_folder => 'library/folders/%s/files', + :library_folders => 'library/folders', + :library_folder => 'library/folders/%s', + :library_folder_trash => 'library/folders/trash/files', + :library_file => 'library/files/%s', + :library_file_upload_status => 'library/files/uploadstatus/%s', + :library_file_move => 'library/folders/%s/files' + }, + + # OAuth2 Authorization related configuration options + :auth => { + :base_url => 'https://oauth2.constantcontact.com/oauth2/', + :response_type_code => 'code', + :response_type_token => 'token', + :authorization_code_grant_type => 'authorization_code', + :authorization_endpoint => 'oauth/siteowner/authorize', + :token_endpoint => 'oauth/token', + :token_info => 'tokeninfo.htm', :api_key => '', :api_secret => '', :redirect_uri => '' - }, + }, - # Column names used with bulk activities - :activities_columns => { - :email => 'EMAIL', - :first_name => 'FIRST NAME', - :middle_name => 'MIDDLE NAME', - :last_name => 'LAST NAME', - :job_title => 'JOB TITLE', - :company_name => 'COMPANY NAME', - :work_phone => 'WORK PHONE', - :home_phone => 'HOME PHONE', - :address1 => 'ADDRESS LINE 1', - :address2 => 'ADDRESS LINE 2', - :address3 => 'ADDRESS LINE 3', - :city => 'CITY', - :state => 'STATE', - :state_province => 'US STATE/CA PROVINCE', - :country => 'COUNTRY', - :postal_code => 'ZIP/POSTAL CODE', - :sub_postal_code => 'SUB ZIP/POSTAL CODE', - :custom_field_1 => 'CUSTOM FIELD 1', - :custom_field_2 => 'CUSTOM FIELD 2', - :custom_field_3 => 'CUSTOM FIELD 3', - :custom_field_4 => 'CUSTOM FIELD 4', - :custom_field_5 => 'CUSTOM FIELD 5', - :custom_field_6 => 'CUSTOM FIELD 6', - :custom_field_7 => 'CUSTOM FIELD 7', - :custom_field_8 => 'CUSTOM FIELD 8', - :custom_field_9 => 'CUSTOM FIELD 9', - :custom_field_10 => 'CUSTOM FIELD 10', - :custom_field_11 => 'CUSTOM FIELD 11', - :custom_field_12 => 'CUSTOM FIELD 12', - :custom_field_13 => 'CUSTOM FIELD 13', - :custom_field_14 => 'CUSTOM FIELD 14', - :custom_field_15 => 'CUSTOM FIELD 15' - }, + # Column names used with bulk activities + :activities_columns => { + :email => 'EMAIL', + :first_name => 'FIRST NAME', + :middle_name => 'MIDDLE NAME', + :last_name => 'LAST NAME', + :job_title => 'JOB TITLE', + :company_name => 'COMPANY NAME', + :work_phone => 'WORK PHONE', + :home_phone => 'HOME PHONE', + :address1 => 'ADDRESS LINE 1', + :address2 => 'ADDRESS LINE 2', + :address3 => 'ADDRESS LINE 3', + :city => 'CITY', + :state => 'STATE', + :state_province => 'US STATE/CA PROVINCE', + :country => 'COUNTRY', + :postal_code => 'ZIP/POSTAL CODE', + :sub_postal_code => 'SUB ZIP/POSTAL CODE', + :custom_field_1 => 'CUSTOM FIELD 1', + :custom_field_2 => 'CUSTOM FIELD 2', + :custom_field_3 => 'CUSTOM FIELD 3', + :custom_field_4 => 'CUSTOM FIELD 4', + :custom_field_5 => 'CUSTOM FIELD 5', + :custom_field_6 => 'CUSTOM FIELD 6', + :custom_field_7 => 'CUSTOM FIELD 7', + :custom_field_8 => 'CUSTOM FIELD 8', + :custom_field_9 => 'CUSTOM FIELD 9', + :custom_field_10 => 'CUSTOM FIELD 10', + :custom_field_11 => 'CUSTOM FIELD 11', + :custom_field_12 => 'CUSTOM FIELD 12', + :custom_field_13 => 'CUSTOM FIELD 13', + :custom_field_14 => 'CUSTOM FIELD 14', + :custom_field_15 => 'CUSTOM FIELD 15' + }, - # Errors to be returned for various exceptions - :errors => { - :id_or_object => 'Only an id or %s object are allowed for this method.' - } - } + # Errors to be returned for various exceptions + :errors => { + :id_or_object => 'Only an id or %s object are allowed for this method.' + } + } - class << self + class << self attr_accessor :props - def configure + def configure yield props if block_given? end - # Get a configuration property given a specified location, example usage: Config::get('auth.token_endpoint') - # @param [String] index - location of the property to obtain - # @return [String] - def get(index) - properties = index.split('.') - get_value(properties, props) - end + # Get a configuration property given a specified location, example usage: Config::get('auth.token_endpoint') + # @param [String] index - location of the property to obtain + # @return [String] + def get(index) + properties = index.split('.') + get_value(properties, props) + end - private + private - # Navigate through a config array looking for a particular index - # @param [Array] index The index sequence we are navigating down - # @param [Hash, String] value The portion of the config array to process - # @return [String] - def get_value(index, value) - index = index.is_a?(Array) ? index : [index] - key = index.shift.to_sym - value.is_a?(Hash) and value[key] and value[key].is_a?(Hash) ? - get_value(index, value[key]) : - value[key] - end - end + # Navigate through a config array looking for a particular index + # @param [Array] index The index sequence we are navigating down + # @param [Hash, String] value The portion of the config array to process + # @return [String] + def get_value(index, value) + index = index.is_a?(Array) ? index : [index] + key = index.shift.to_sym + value.is_a?(Hash) and value[key] and value[key].is_a?(Hash) ? + get_value(index, value[key]) : + value[key] + end + end - end - end + end + end end \ No newline at end of file