module Soaspec # Accessors specific to REST handler module RestAccessors # Defines method 'base_url_value' containing base URL used in REST requests # @param [String] url Base Url to use in REST requests. Suburl is appended to this def base_url(url) define_method('base_url_value') do url end end # Will create access_token method based on passed parameters # @param [Hash] params Params client_id: nil, client_secret: nil, token_url: nil, username: nil, password: nil, security_token: nil def oauth2(params) # Method to send request to get oauth token based on parameters define_method('oauth_response') do OAuth2.new(params, api_username).response end define_method('access_token') do oauth_response['access_token'] end define_method('instance_url') do oauth_response['instance_url'] end end # Pass path to YAML file containing OAuth2 parameters # @param [String] path_to_filename Will have Soaspec.credentials_folder appended to it if set def oauth2_file(path_to_filename) full_path = Soaspec.credentials_folder ? File.join(Soaspec.credentials_folder, path_to_filename) : path_to_filename full_path += '.yml' unless full_path.end_with?('.yml') file_hash = YAML.load_file(full_path) raise 'File at ' + full_path + ' is not a hash ' unless file_hash.is_a? Hash oauth_hash = file_hash.transform_keys_to_symbols oauth2 **oauth_hash end # @param [Hash] headers Hash of REST headers used in RestClient def headers(headers) define_method('rest_client_headers') do headers end end # Convert each key from snake_case to PascalCase def pascal_keys(set) define_method('pascal_keys?') do set end end end end