salesforce_http_client 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/.gitignore +0 -1
 - data/README.md +10 -1
 - data/lib/salesforce_http_client/configuration.rb +23 -4
 - data/lib/salesforce_http_client/salesforce_http_access.rb +1 -1
 - data/lib/salesforce_http_client/version.rb +1 -1
 - data/spec/salesforce_http_client/client_spec.rb +29 -4
 - data/tmp/.gitkeep +0 -0
 - data/tmp/cookie_store.dat +0 -0
 - metadata +4 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: ca610c378d7eab64f6860210db9105cc791524d8
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 0a35fb07028a40e27d7ec625f4e19d4b574b483d
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: e9fa5620a4c8cceaf18fe01e7ec37de1982ad21287f4d678faf1092a457ebf5364010818fc44bf9be3f54852cf662570fc5a2236e101a68459461162004959a2
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 7de758e095cd6bc8f4eb16b6fbb0353ba37000d7f1bb5d546c0c89a53a10f4a4bb9934e20a0648aab5dd7411976a9bb6d6e1cae2bbb417b1da504b5ef7985c0a
         
     | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -3,9 +3,11 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            This gem provides a simple way to download report data from salesforce.com.
         
     | 
| 
       4 
4 
     | 
    
         
             
            It works well with any ruby applications, include such as Ruby on Rails.
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
            You can access salesfore.com using only your  
     | 
| 
      
 6 
     | 
    
         
            +
            You can access salesfore.com using only your salesforce login id (=email) and password. 
         
     | 
| 
       7 
7 
     | 
    
         
             
            A security token is no need.
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
      
 9 
     | 
    
         
            +
            Data will be saved in CSV format.
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
       9 
11 
     | 
    
         
             
            [](http://badge.fury.io/rb/salesforce_http_client)
         
     | 
| 
       10 
12 
     | 
    
         
             
            [](https://travis-ci.org/apuruni/salesforce_http_client)
         
     | 
| 
       11 
13 
     | 
    
         
             
            [](https://coveralls.io/r/apuruni/salesforce_http_client?branch=master)
         
     | 
| 
         @@ -27,11 +29,18 @@ Or install it yourself as: 
     | 
|
| 
       27 
29 
     | 
    
         
             
            ## Configuring SalesforceHttpClient
         
     | 
| 
       28 
30 
     | 
    
         | 
| 
       29 
31 
     | 
    
         
             
            Add configurations to set your salesforce.com login_id/password.
         
     | 
| 
      
 32 
     | 
    
         
            +
            You must check your salesforce.com instance to get the right domain for your account.
         
     | 
| 
      
 33 
     | 
    
         
            +
            For example:  https://na12.salesforce.com/000000000000ABC, where 'http://na12.salesforce.com/' is the salesforce.com instance domain.
         
     | 
| 
       30 
34 
     | 
    
         | 
| 
       31 
35 
     | 
    
         
             
            ```ruby
         
     | 
| 
      
 36 
     | 
    
         
            +
            require 'fileutils'
         
     | 
| 
      
 37 
     | 
    
         
            +
            require 'httpclient'
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
       32 
39 
     | 
    
         
             
            SalesforceHttpClient.configure do |config|
         
     | 
| 
       33 
40 
     | 
    
         
             
              config.salesforce_login_id = 'my_login_id_or_email'
         
     | 
| 
       34 
41 
     | 
    
         
             
              config.salesforce_password = 'my_password'
         
     | 
| 
      
 42 
     | 
    
         
            +
              # this parameter must be set if you are not using the default (ap.salesforce.com) instance domain of this gem.
         
     | 
| 
      
 43 
     | 
    
         
            +
              config.salesforce_instance_domain = 'https://na12.salesforce.com'
         
     | 
| 
       35 
44 
     | 
    
         
             
            end
         
     | 
| 
       36 
45 
     | 
    
         
             
            ```
         
     | 
| 
       37 
46 
     | 
    
         | 
| 
         @@ -15,6 +15,7 @@ module SalesforceHttpClient 
     | 
|
| 
       15 
15 
     | 
    
         
             
                attr_accessor :salesforce_login_id
         
     | 
| 
       16 
16 
     | 
    
         
             
                attr_accessor :salesforce_password
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
      
 18 
     | 
    
         
            +
                attr_accessor :salesforce_instance_domain
         
     | 
| 
       18 
19 
     | 
    
         
             
                attr_accessor :salesforce_report_url_format
         
     | 
| 
       19 
20 
     | 
    
         
             
                attr_accessor :salesforce_report_id_param
         
     | 
| 
       20 
21 
     | 
    
         | 
| 
         @@ -29,10 +30,12 @@ module SalesforceHttpClient 
     | 
|
| 
       29 
30 
     | 
    
         
             
                end
         
     | 
| 
       30 
31 
     | 
    
         | 
| 
       31 
32 
     | 
    
         
             
                def initialize
         
     | 
| 
      
 33 
     | 
    
         
            +
                  @salesforce_instance_domain = "https://ap.salesforce.com"
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
       32 
35 
     | 
    
         
             
                  @salesforce_login_url = "https://login.salesforce.com/"
         
     | 
| 
       33 
     | 
    
         
            -
                  @salesforce_logout_url = " 
     | 
| 
      
 36 
     | 
    
         
            +
                  @salesforce_logout_url = ->() { @salesforce_instance_domain + "/secur/logout.jsp" }
         
     | 
| 
       34 
37 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
                  @salesforce_report_url_format = ' 
     | 
| 
      
 38 
     | 
    
         
            +
                  @salesforce_report_url_format = ->() { @salesforce_instance_domain + '/#{report_id}?export=1&enc=UTF-8&xf=csv' }
         
     | 
| 
       36 
39 
     | 
    
         
             
                  @salesforce_report_id_param = '#{report_id}'
         
     | 
| 
       37 
40 
     | 
    
         | 
| 
       38 
41 
     | 
    
         
             
                  @http_timeout = 5 * 60 * 1000
         
     | 
| 
         @@ -42,11 +45,27 @@ module SalesforceHttpClient 
     | 
|
| 
       42 
45 
     | 
    
         
             
                end
         
     | 
| 
       43 
46 
     | 
    
         | 
| 
       44 
47 
     | 
    
         
             
                def report_url(report_id)
         
     | 
| 
       45 
     | 
    
         
            -
                  @salesforce_report_url_format. 
     | 
| 
      
 48 
     | 
    
         
            +
                  if @salesforce_report_url_format.is_a? Proc
         
     | 
| 
      
 49 
     | 
    
         
            +
                    url_format = @salesforce_report_url_format.call
         
     | 
| 
      
 50 
     | 
    
         
            +
                  else
         
     | 
| 
      
 51 
     | 
    
         
            +
                    url_format = salesforce_report_url_format
         
     | 
| 
      
 52 
     | 
    
         
            +
                  end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                  url_format.gsub(@salesforce_report_id_param, report_id)
         
     | 
| 
      
 55 
     | 
    
         
            +
                end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                def logout_url
         
     | 
| 
      
 58 
     | 
    
         
            +
                  if @salesforce_logout_url.is_a? Proc
         
     | 
| 
      
 59 
     | 
    
         
            +
                    @salesforce_logout_url.call
         
     | 
| 
      
 60 
     | 
    
         
            +
                  else
         
     | 
| 
      
 61 
     | 
    
         
            +
                    @salesforce_logout_url
         
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
       46 
63 
     | 
    
         
             
                end
         
     | 
| 
       47 
64 
     | 
    
         | 
| 
       48 
65 
     | 
    
         
             
                def cookie_store_file_path
         
     | 
| 
       49 
     | 
    
         
            -
                  File.join(@tmp_dir, 'cookie_store.dat')
         
     | 
| 
      
 66 
     | 
    
         
            +
                  file_path = File.join(@tmp_dir, 'cookie_store.dat')
         
     | 
| 
      
 67 
     | 
    
         
            +
                  FileUtils.mkdir_p(File.dirname(file_path))
         
     | 
| 
      
 68 
     | 
    
         
            +
                  file_path
         
     | 
| 
       50 
69 
     | 
    
         
             
                end
         
     | 
| 
       51 
70 
     | 
    
         | 
| 
       52 
71 
     | 
    
         
             
                private
         
     | 
| 
         @@ -10,21 +10,23 @@ module SalesforceHttpClient 
     | 
|
| 
       10 
10 
     | 
    
         
             
                end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
                describe '#download_report' do
         
     | 
| 
      
 13 
     | 
    
         
            +
                  let(:sf_domain) { 'https://ap.salesforce.com' }
         
     | 
| 
      
 14 
     | 
    
         
            +
                  let(:report_id) { 'a' }
         
     | 
| 
       13 
15 
     | 
    
         
             
                  before do
         
     | 
| 
       14 
16 
     | 
    
         
             
                    stub_request(:get, "https://login.salesforce.com/")
         
     | 
| 
       15 
17 
     | 
    
         
             
                      .to_return(status: 200, body: "", headers: {})
         
     | 
| 
       16 
18 
     | 
    
         | 
| 
       17 
19 
     | 
    
         
             
                    stub_request(:post, "https://login.salesforce.com/")
         
     | 
| 
       18 
20 
     | 
    
         
             
                      .with(body: { "pw" => "test_password", "un" => "test_login_id" })
         
     | 
| 
       19 
     | 
    
         
            -
                      .to_return(status: 302, body: "", headers: { 'Location' => ' 
     | 
| 
      
 21 
     | 
    
         
            +
                      .to_return(status: 302, body: "", headers: { 'Location' => "#{sf_domain}" + '/secur/frontdoor.jsp?sid=00D10000000ZIju%21ARkAQBU5ixFxxAzNvQTreC6rOQ9QSt_cMxFbwmVoVNbWtl.xxHasjFO8v100wa6b0kv.c9Q9RzYuwss9F5TodikF.ELZAHwq&apv=1&cshc=0000001shFs0000000ZIju&display=page' })
         
     | 
| 
       20 
22 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
                    stub_request(:get, " 
     | 
| 
      
 23 
     | 
    
         
            +
                    stub_request(:get, "#{sf_domain}/secur/frontdoor.jsp?apv=1&cshc=0000001shFs0000000ZIju&display=page&sid=00D10000000ZIju!ARkAQBU5ixFxxAzNvQTreC6rOQ9QSt_cMxFbwmVoVNbWtl.xxHasjFO8v100wa6b0kv.c9Q9RzYuwss9F5TodikF.ELZAHwq")
         
     | 
| 
       22 
24 
     | 
    
         
             
                      .to_return(status: 200, body: "", headers: {})
         
     | 
| 
       23 
25 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
                    stub_request(:get, " 
     | 
| 
      
 26 
     | 
    
         
            +
                    stub_request(:get, "#{sf_domain}/#{report_id}?enc=UTF-8&export=1&xf=csv")
         
     | 
| 
       25 
27 
     | 
    
         
             
                      .to_return(status: 200, body: "", headers: {})
         
     | 
| 
       26 
28 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
                    stub_request(:get, " 
     | 
| 
      
 29 
     | 
    
         
            +
                    stub_request(:get, "#{sf_domain}/secur/logout.jsp")
         
     | 
| 
       28 
30 
     | 
    
         
             
                      .to_return(status: 200, body: "", headers: {})
         
     | 
| 
       29 
31 
     | 
    
         
             
                  end
         
     | 
| 
       30 
32 
     | 
    
         | 
| 
         @@ -39,6 +41,29 @@ module SalesforceHttpClient 
     | 
|
| 
       39 
41 
     | 
    
         | 
| 
       40 
42 
     | 
    
         
             
                    client = SalesforceHttpClient::Client.new
         
     | 
| 
       41 
43 
     | 
    
         
             
                    client.download_report("a", output_file)
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                    expect(File.exist?(output_file)).to be_truthy
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                  context 'north american instance' do
         
     | 
| 
      
 49 
     | 
    
         
            +
                    let(:sf_domain) { 'https://na12.salesforce.com' }
         
     | 
| 
      
 50 
     | 
    
         
            +
                    let(:report_id) { 'b' }
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                    it 'can download report use customized url format' do
         
     | 
| 
      
 53 
     | 
    
         
            +
                      Configuration.configure do |config|
         
     | 
| 
      
 54 
     | 
    
         
            +
                        config.salesforce_login_id = 'test_login_id'
         
     | 
| 
      
 55 
     | 
    
         
            +
                        config.salesforce_password = 'test_password'
         
     | 
| 
      
 56 
     | 
    
         
            +
                        config.salesforce_instance_domain = 'https://na12.salesforce.com'
         
     | 
| 
      
 57 
     | 
    
         
            +
                      end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                      output_file = "tmp/report_b.csv"
         
     | 
| 
      
 60 
     | 
    
         
            +
                      File.delete(output_file) if File.exist?(output_file)
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                      client = SalesforceHttpClient::Client.new
         
     | 
| 
      
 63 
     | 
    
         
            +
                      client.download_report("b", output_file)
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                      expect(File.exist?(output_file)).to be_truthy
         
     | 
| 
      
 66 
     | 
    
         
            +
                    end
         
     | 
| 
       42 
67 
     | 
    
         
             
                  end
         
     | 
| 
       43 
68 
     | 
    
         
             
                end
         
     | 
| 
       44 
69 
     | 
    
         
             
              end
         
     | 
    
        data/tmp/.gitkeep
    ADDED
    
    | 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: salesforce_http_client
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.2.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Apuruni
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2015- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-04-19 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: httpclient
         
     | 
| 
         @@ -209,6 +209,8 @@ files: 
     | 
|
| 
       209 
209 
     | 
    
         
             
            - spec/salesforce_http_client/version_spec.rb
         
     | 
| 
       210 
210 
     | 
    
         
             
            - spec/salesforce_http_client_spec.rb
         
     | 
| 
       211 
211 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
      
 212 
     | 
    
         
            +
            - tmp/.gitkeep
         
     | 
| 
      
 213 
     | 
    
         
            +
            - tmp/cookie_store.dat
         
     | 
| 
       212 
214 
     | 
    
         
             
            homepage: https://github.com/apuruni/salesforce_http_client
         
     | 
| 
       213 
215 
     | 
    
         
             
            licenses:
         
     | 
| 
       214 
216 
     | 
    
         
             
            - MIT
         
     |