soapy_cake 2.1.3 → 2.1.4
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/Gemfile +2 -1
 - data/Rakefile +1 -0
 - data/api.yml +1 -1
 - data/lib/soapy_cake.rb +2 -1
 - data/lib/soapy_cake/admin.rb +1 -0
 - data/lib/soapy_cake/admin_addedit.rb +1 -0
 - data/lib/soapy_cake/admin_batched.rb +1 -0
 - data/lib/soapy_cake/admin_track.rb +1 -0
 - data/lib/soapy_cake/affiliate.rb +1 -0
 - data/lib/soapy_cake/campaigns.rb +2 -1
 - data/lib/soapy_cake/client.rb +13 -0
 - data/lib/soapy_cake/const.rb +1 -0
 - data/lib/soapy_cake/error.rb +1 -0
 - data/lib/soapy_cake/helper.rb +1 -0
 - data/lib/soapy_cake/modification_type.rb +1 -0
 - data/lib/soapy_cake/request.rb +1 -0
 - data/lib/soapy_cake/response.rb +1 -0
 - data/lib/soapy_cake/response_value.rb +1 -0
 - data/lib/soapy_cake/time_converter.rb +1 -0
 - data/lib/soapy_cake/version.rb +2 -1
 - data/soapy_cake.gemspec +1 -0
 - data/spec/fixtures/vcr_cassettes/SoapyCake_Admin/returns_a_clicks_report_with_a_defined_time_range.yml +41 -26
 - data/spec/integration/soapy_cake/admin_addedit_spec.rb +1 -0
 - data/spec/integration/soapy_cake/admin_spec.rb +6 -4
 - data/spec/integration/soapy_cake/admin_track_spec.rb +1 -0
 - data/spec/integration/soapy_cake/campaigns_spec.rb +1 -0
 - data/spec/lib/soapy_cake/admin_addedit_spec.rb +1 -0
 - data/spec/lib/soapy_cake/admin_batched_spec.rb +2 -0
 - data/spec/lib/soapy_cake/admin_spec.rb +31 -0
 - data/spec/lib/soapy_cake/admin_track_spec.rb +1 -0
 - data/spec/lib/soapy_cake/affiliate_spec.rb +3 -0
 - data/spec/lib/soapy_cake/campaigns_spec.rb +6 -5
 - data/spec/lib/soapy_cake/modification_type_spec.rb +1 -0
 - data/spec/lib/soapy_cake/request_spec.rb +1 -0
 - data/spec/lib/soapy_cake/response_spec.rb +1 -0
 - data/spec/lib/soapy_cake/response_value_spec.rb +1 -0
 - data/spec/lib/soapy_cake/time_converter_spec.rb +1 -0
 - data/spec/spec_helper.rb +1 -0
 - data/spec/support/admin_method_example.rb +2 -0
 - metadata +3 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 67f28d72d0e7ce5c2d37d3d138d0a8e2579b9696
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 737fced76a4f046d011fd6e57817ff0c29f5d435
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: a418b18bb03685e298fedd73aee586fed6c7aa45a0989609b0892cbaf99ab15d2d4919a0a2f2fc0b1e049c66f387fee19ee8df1986ce4653adeac4b459e8c041
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 2f31ae5c96fc4f9e101a9f5aca857f99d6777b278125a21a5ecd3e6016c4b48cc68cc453fb931247a174afa379b149f8e01b6fea1cb819b6625bf5565fd65806
         
     | 
    
        data/Gemfile
    CHANGED
    
    | 
         @@ -1,10 +1,11 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            source 'https://rubygems.org'
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
5 
     | 
    
         
             
            gemspec
         
     | 
| 
       5 
6 
     | 
    
         | 
| 
       6 
7 
     | 
    
         
             
            group :development, :test do
         
     | 
| 
      
 8 
     | 
    
         
            +
              gem 'codeclimate-test-reporter', require: false
         
     | 
| 
       7 
9 
     | 
    
         
             
              gem 'rubocop-ci', git: 'https://github.com/ad2games/rubocop-ci'
         
     | 
| 
       8 
10 
     | 
    
         
             
              gem 'simplecov'
         
     | 
| 
       9 
     | 
    
         
            -
              gem 'codeclimate-test-reporter', require: false
         
     | 
| 
       10 
11 
     | 
    
         
             
            end
         
     | 
    
        data/Rakefile
    CHANGED
    
    
    
        data/api.yml
    CHANGED
    
    
    
        data/lib/soapy_cake.rb
    CHANGED
    
    | 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            require 'yaml'
         
     | 
| 
       3 
4 
     | 
    
         
             
            require 'logger'
         
     | 
| 
       4 
5 
     | 
    
         
             
            require 'nokogiri'
         
     | 
| 
         @@ -27,6 +28,6 @@ require 'soapy_cake/modification_type' 
     | 
|
| 
       27 
28 
     | 
    
         
             
            require 'soapy_cake/campaigns'
         
     | 
| 
       28 
29 
     | 
    
         | 
| 
       29 
30 
     | 
    
         
             
            module SoapyCake
         
     | 
| 
       30 
     | 
    
         
            -
              API_CONFIG = YAML. 
     | 
| 
      
 31 
     | 
    
         
            +
              API_CONFIG = YAML.safe_load(File.read(File.expand_path('../../api.yml', __FILE__)))
         
     | 
| 
       31 
32 
     | 
    
         
             
              NET_TIMEOUT = 600
         
     | 
| 
       32 
33 
     | 
    
         
             
            end
         
     | 
    
        data/lib/soapy_cake/admin.rb
    CHANGED
    
    
    
        data/lib/soapy_cake/affiliate.rb
    CHANGED
    
    
    
        data/lib/soapy_cake/campaigns.rb
    CHANGED
    
    | 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            module SoapyCake
         
     | 
| 
       3 
4 
     | 
    
         
             
              class Campaigns
         
     | 
| 
       4 
5 
     | 
    
         
             
                include Helper
         
     | 
| 
         @@ -59,7 +60,7 @@ module SoapyCake 
     | 
|
| 
       59 
60 
     | 
    
         
             
                    .merge(
         
     | 
| 
       60 
61 
     | 
    
         
             
                      affiliate_id: campaign.fetch(:affiliate).fetch(:affiliate_id),
         
     | 
| 
       61 
62 
     | 
    
         
             
                      # Only present in production:
         
     | 
| 
       62 
     | 
    
         
            -
                      display_link_type_id: campaign.dig(: 
     | 
| 
      
 63 
     | 
    
         
            +
                      display_link_type_id: campaign.dig(:display_link_type, :link_display_type_id) || 1,
         
     | 
| 
       63 
64 
     | 
    
         
             
                      media_type_id: campaign.fetch(:media_type).fetch(:media_type_id),
         
     | 
| 
       64 
65 
     | 
    
         
             
                      offer_contract_id: campaign.fetch(:offer_contract).fetch(:offer_contract_id),
         
     | 
| 
       65 
66 
     | 
    
         
             
                      offer_id: campaign.fetch(:offer).fetch(:offer_id),
         
     | 
    
        data/lib/soapy_cake/client.rb
    CHANGED
    
    | 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            require 'net/http'
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
5 
     | 
    
         
             
            module SoapyCake
         
     | 
| 
         @@ -57,6 +58,16 @@ module SoapyCake 
     | 
|
| 
       57 
58 
     | 
    
         
             
                  @logger ||= opts[:logger] || (defined?(::Rails) && ::Rails.logger)
         
     | 
| 
       58 
59 
     | 
    
         
             
                end
         
     | 
| 
       59 
60 
     | 
    
         | 
| 
      
 61 
     | 
    
         
            +
                def log_curl_command(request)
         
     | 
| 
      
 62 
     | 
    
         
            +
                  curl_headers = HEADERS.map { |k, v| "-H \"#{k}: #{v}\"" }.join(' ')
         
     | 
| 
      
 63 
     | 
    
         
            +
                  curl_body = request.xml
         
     | 
| 
      
 64 
     | 
    
         
            +
                    .tr("\n", '')
         
     | 
| 
      
 65 
     | 
    
         
            +
                    .gsub(/>\s*</, '><')
         
     | 
| 
      
 66 
     | 
    
         
            +
                    .sub(request.api_key, '{{{ INSERT API KEY }}}')
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                  logger&.info("curl --data '#{curl_body}' #{curl_headers} https://#{domain}/#{request.path}")
         
     | 
| 
      
 69 
     | 
    
         
            +
                end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
       60 
71 
     | 
    
         
             
                def response_body(request)
         
     | 
| 
       61 
72 
     | 
    
         
             
                  request.opts[:response].presence || http_response(request)
         
     | 
| 
       62 
73 
     | 
    
         
             
                end
         
     | 
| 
         @@ -64,6 +75,8 @@ module SoapyCake 
     | 
|
| 
       64 
75 
     | 
    
         
             
                def http_response(request)
         
     | 
| 
       65 
76 
     | 
    
         
             
                  logger&.info("soapy_cake:request #{request}")
         
     | 
| 
       66 
77 
     | 
    
         | 
| 
      
 78 
     | 
    
         
            +
                  log_curl_command(request) if fetch_opt(:log_curl)
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
       67 
80 
     | 
    
         
             
                  http_request = Net::HTTP::Post.new(request.path, HEADERS)
         
     | 
| 
       68 
81 
     | 
    
         
             
                  http_request.body = request.xml
         
     | 
| 
       69 
82 
     | 
    
         
             
                  response = perform_http_request(http_request)
         
     | 
    
        data/lib/soapy_cake/const.rb
    CHANGED
    
    
    
        data/lib/soapy_cake/error.rb
    CHANGED
    
    
    
        data/lib/soapy_cake/helper.rb
    CHANGED
    
    
    
        data/lib/soapy_cake/request.rb
    CHANGED
    
    
    
        data/lib/soapy_cake/response.rb
    CHANGED
    
    
    
        data/lib/soapy_cake/version.rb
    CHANGED
    
    
    
        data/soapy_cake.gemspec
    CHANGED
    
    
| 
         @@ -2,18 +2,18 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            http_interactions:
         
     | 
| 
       3 
3 
     | 
    
         
             
            - request:
         
     | 
| 
       4 
4 
     | 
    
         
             
                method: post
         
     | 
| 
       5 
     | 
    
         
            -
                uri: https://cake-partner-domain.com/api/ 
     | 
| 
      
 5 
     | 
    
         
            +
                uri: https://cake-partner-domain.com/api/11/reports.asmx
         
     | 
| 
       6 
6 
     | 
    
         
             
                body:
         
     | 
| 
       7 
7 
     | 
    
         
             
                  encoding: UTF-8
         
     | 
| 
       8 
8 
     | 
    
         
             
                  string: |
         
     | 
| 
       9 
9 
     | 
    
         
             
                    <?xml version="1.0"?>
         
     | 
| 
       10 
     | 
    
         
            -
                    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:cake="http://cakemarketing.com/api/ 
     | 
| 
      
 10 
     | 
    
         
            +
                    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:cake="http://cakemarketing.com/api/11/">
         
     | 
| 
       11 
11 
     | 
    
         
             
                      <env:Header/>
         
     | 
| 
       12 
12 
     | 
    
         
             
                      <env:Body>
         
     | 
| 
       13 
13 
     | 
    
         
             
                        <cake:Clicks>
         
     | 
| 
       14 
14 
     | 
    
         
             
                          <cake:api_key>cake-api-key</cake:api_key>
         
     | 
| 
       15 
     | 
    
         
            -
                          <cake:start_date> 
     | 
| 
       16 
     | 
    
         
            -
                          <cake:end_date> 
     | 
| 
      
 15 
     | 
    
         
            +
                          <cake:start_date>2017-05-31T02:00:00</cake:start_date>
         
     | 
| 
      
 16 
     | 
    
         
            +
                          <cake:end_date>2017-06-01T02:00:00</cake:end_date>
         
     | 
| 
       17 
17 
     | 
    
         
             
                          <cake:row_limit>1</cake:row_limit>
         
     | 
| 
       18 
18 
     | 
    
         
             
                        </cake:Clicks>
         
     | 
| 
       19 
19 
     | 
    
         
             
                      </env:Body>
         
     | 
| 
         @@ -21,6 +21,12 @@ http_interactions: 
     | 
|
| 
       21 
21 
     | 
    
         
             
                headers:
         
     | 
| 
       22 
22 
     | 
    
         
             
                  Content-Type:
         
     | 
| 
       23 
23 
     | 
    
         
             
                  - application/soap+xml;charset=UTF-8
         
     | 
| 
      
 24 
     | 
    
         
            +
                  Accept-Encoding:
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
         
     | 
| 
      
 26 
     | 
    
         
            +
                  Accept:
         
     | 
| 
      
 27 
     | 
    
         
            +
                  - "*/*"
         
     | 
| 
      
 28 
     | 
    
         
            +
                  User-Agent:
         
     | 
| 
      
 29 
     | 
    
         
            +
                  - Ruby
         
     | 
| 
       24 
30 
     | 
    
         
             
              response:
         
     | 
| 
       25 
31 
     | 
    
         
             
                status:
         
     | 
| 
       26 
32 
     | 
    
         
             
                  code: 200
         
     | 
| 
         @@ -28,38 +34,47 @@ http_interactions: 
     | 
|
| 
       28 
34 
     | 
    
         
             
                headers:
         
     | 
| 
       29 
35 
     | 
    
         
             
                  Cache-Control:
         
     | 
| 
       30 
36 
     | 
    
         
             
                  - private, max-age=0
         
     | 
| 
      
 37 
     | 
    
         
            +
                  Content-Length:
         
     | 
| 
      
 38 
     | 
    
         
            +
                  - '4034'
         
     | 
| 
       31 
39 
     | 
    
         
             
                  Content-Type:
         
     | 
| 
       32 
40 
     | 
    
         
             
                  - application/soap+xml; charset=utf-8
         
     | 
| 
       33 
     | 
    
         
            -
                   
     | 
| 
       34 
     | 
    
         
            -
                  -  
     | 
| 
      
 41 
     | 
    
         
            +
                  Date:
         
     | 
| 
      
 42 
     | 
    
         
            +
                  - Tue, 27 Jun 2017 09:14:48 GMT
         
     | 
| 
       35 
43 
     | 
    
         
             
                  X-Aspnet-Version:
         
     | 
| 
       36 
44 
     | 
    
         
             
                  - 4.0.30319
         
     | 
| 
       37 
45 
     | 
    
         
             
                  X-Powered-By:
         
     | 
| 
       38 
46 
     | 
    
         
             
                  - ASP.NET
         
     | 
| 
       39 
     | 
    
         
            -
                   
     | 
| 
       40 
     | 
    
         
            -
                  -  
     | 
| 
       41 
     | 
    
         
            -
                  Content-Length:
         
     | 
| 
       42 
     | 
    
         
            -
                  - '2151'
         
     | 
| 
      
 47 
     | 
    
         
            +
                  Connection:
         
     | 
| 
      
 48 
     | 
    
         
            +
                  - close
         
     | 
| 
       43 
49 
     | 
    
         
             
                body:
         
     | 
| 
       44 
50 
     | 
    
         
             
                  encoding: UTF-8
         
     | 
| 
       45 
51 
     | 
    
         
             
                  string: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
         
     | 
| 
       46 
52 
     | 
    
         
             
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><ClicksResponse
         
     | 
| 
       47 
     | 
    
         
            -
                    xmlns="http://cakemarketing.com/api/ 
     | 
| 
       48 
     | 
    
         
            -
                    xmlns="API:id_name_store" 
     | 
| 
       49 
     | 
    
         
            -
                     
     | 
| 
       50 
     | 
    
         
            -
                    xmlns="API:id_name_store"> 
     | 
| 
       51 
     | 
    
         
            -
                    xmlns="API:id_name_store" 
     | 
| 
       52 
     | 
    
         
            -
                     
     | 
| 
       53 
     | 
    
         
            -
                     
     | 
| 
       54 
     | 
    
         
            -
                    xmlns="API:id_name_store" 
     | 
| 
       55 
     | 
    
         
            -
                     
     | 
| 
       56 
     | 
    
         
            -
                     
     | 
| 
       57 
     | 
    
         
            -
                    />< 
     | 
| 
      
 53 
     | 
    
         
            +
                    xmlns="http://cakemarketing.com/api/11/"><ClicksResult><success>true</success><row_count>470134</row_count><clicks><click><click_id>1633967829</click_id><visitor_id>964629655</visitor_id><tracking_id>1251217875</tracking_id><request_session_id>1602923077</request_session_id><click_date>2017-06-01T01:59:59.95</click_date><source_affiliate><source_affiliate_id
         
     | 
| 
      
 54 
     | 
    
         
            +
                    xmlns="API:id_name_store">26833</source_affiliate_id><source_affiliate_name
         
     | 
| 
      
 55 
     | 
    
         
            +
                    xmlns="API:id_name_store">Funtomic Adstack</source_affiliate_name></source_affiliate><brand_advertiser><brand_advertiser_id
         
     | 
| 
      
 56 
     | 
    
         
            +
                    xmlns="API:id_name_store">15176</brand_advertiser_id><brand_advertiser_name
         
     | 
| 
      
 57 
     | 
    
         
            +
                    xmlns="API:id_name_store">Star Stable Entertainment AB</brand_advertiser_name></brand_advertiser><site_offer><site_offer_id
         
     | 
| 
      
 58 
     | 
    
         
            +
                    xmlns="API:id_name_store">16698</site_offer_id><site_offer_name xmlns="API:id_name_store">Star
         
     | 
| 
      
 59 
     | 
    
         
            +
                    Stable (US SOI)</site_offer_name></site_offer><site_offer_contract><site_offer_contract_id
         
     | 
| 
      
 60 
     | 
    
         
            +
                    xmlns="API:id_name_store">22508</site_offer_contract_id><site_offer_contract_name
         
     | 
| 
      
 61 
     | 
    
         
            +
                    xmlns="API:id_name_store">Direct</site_offer_contract_name></site_offer_contract><campaign><campaign_id>646697</campaign_id><campaign_type><campaign_type_id>1</campaign_type_id><campaign_type_name>Standard</campaign_type_name></campaign_type></campaign><creative><creative_id
         
     | 
| 
      
 62 
     | 
    
         
            +
                    xmlns="API:id_name_store">211068</creative_id><creative_name xmlns="API:id_name_store">211068</creative_name></creative><sub_id_1
         
     | 
| 
      
 63 
     | 
    
         
            +
                    /><sub_id_2>CRpyl4PCacTC-9QTL_8kUg</sub_id_2><sub_id_3>as~</sub_id_3><sub_id_4
         
     | 
| 
      
 64 
     | 
    
         
            +
                    /><sub_id_5 /><ip_address>73.47.22.147</ip_address><user_agent>Mozilla/5.0%20(Windows%20NT%2010.0;%20WOW64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/58.0.3029.110%20Safari/537.36</user_agent><referrer_url>http://kizi.com/games/c/family-barn?ref=big_thumb</referrer_url><search_term
         
     | 
| 
      
 65 
     | 
    
         
            +
                    /><request_url>https://a2g-secure.com/?a=26833&c=211068&s1=&s2=CRpyl4PCacTC-9QTL_8kUg&s3=as~</request_url><redirect_url>https://www.starstable.com/en/creation/offer?affiliate=AD2&utm_source=ad2&utm_medium=cpl&referrer=12344&utm_term=standard&utm_content=empty&AffId=#affid#_#s1#&utm_campaign=US-ad2-Display-Star-Stable&ClickID=#reqid#</redirect_url><country><country_code
         
     | 
| 
       58 
66 
     | 
    
         
             
                    xmlns="API:id_name_store">US</country_code><country_name xmlns="API:id_name_store">United
         
     | 
| 
       59 
     | 
    
         
            -
                    States</country_name></country><region><region_code xmlns="API:id_name_store"> 
     | 
| 
       60 
     | 
    
         
            -
                    xmlns="API:id_name_store"> 
     | 
| 
       61 
     | 
    
         
            -
                    xmlns="API:id_name_store"> 
     | 
| 
       62 
     | 
    
         
            -
                     
     | 
| 
      
 67 
     | 
    
         
            +
                    States</country_name></country><region><region_code xmlns="API:id_name_store">NH</region_code><region_name
         
     | 
| 
      
 68 
     | 
    
         
            +
                    xmlns="API:id_name_store">New Hampshire</region_name></region><language><language_id
         
     | 
| 
      
 69 
     | 
    
         
            +
                    xmlns="API:id_name_store">1</language_id><language_name xmlns="API:id_name_store">English</language_name></language><isp><isp_id
         
     | 
| 
      
 70 
     | 
    
         
            +
                    xmlns="API:id_name_store">16357</isp_id><isp_name xmlns="API:id_name_store">Comcast
         
     | 
| 
      
 71 
     | 
    
         
            +
                    Cable Communications Inc.</isp_name></isp><operating_system><operating_system_id>18</operating_system_id><operating_system_name>Windows</operating_system_name><operating_system_version><version_id
         
     | 
| 
      
 72 
     | 
    
         
            +
                    xmlns="API:id_name_store">1</version_id><version_name xmlns="API:id_name_store">Other</version_name></operating_system_version><operating_system_version_minor><version_id
         
     | 
| 
      
 73 
     | 
    
         
            +
                    xmlns="API:id_name_store">1</version_id><version_name xmlns="API:id_name_store"
         
     | 
| 
      
 74 
     | 
    
         
            +
                    /></operating_system_version_minor></operating_system><browser><browser_id>2</browser_id><browser_name>Chrome</browser_name><browser_version><version_id
         
     | 
| 
      
 75 
     | 
    
         
            +
                    xmlns="API:id_name_store">460</version_id><version_name xmlns="API:id_name_store">58</version_name></browser_version><browser_version_minor><version_id
         
     | 
| 
      
 76 
     | 
    
         
            +
                    xmlns="API:id_name_store">691</version_id><version_name xmlns="API:id_name_store">58.0</version_name></browser_version_minor></browser><disposition
         
     | 
| 
      
 77 
     | 
    
         
            +
                    /><duplicate>false</duplicate><duplicate_clicks>0</duplicate_clicks><total_clicks>1</total_clicks></click></clicks></ClicksResult></ClicksResponse></soap:Body></soap:Envelope>
         
     | 
| 
       63 
78 
     | 
    
         
             
                http_version: 
         
     | 
| 
       64 
     | 
    
         
            -
              recorded_at:  
     | 
| 
      
 79 
     | 
    
         
            +
              recorded_at: Mon, 15 Jun 2015 12:00:00 GMT
         
     | 
| 
       65 
80 
     | 
    
         
             
            recorded_with: VCR 2.9.3
         
     | 
| 
         @@ -1,8 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            RSpec.describe SoapyCake::Admin do
         
     | 
| 
       3 
4 
     | 
    
         
             
              around { |example| Timecop.freeze(Time.utc(2015, 6, 15, 12), &example) }
         
     | 
| 
       4 
5 
     | 
    
         | 
| 
       5 
6 
     | 
    
         
             
              let(:logger) { instance_double(Logger) }
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
       6 
8 
     | 
    
         
             
              before { allow(logger).to receive(:info) }
         
     | 
| 
       7 
9 
     | 
    
         | 
| 
       8 
10 
     | 
    
         
             
              subject(:admin) { described_class.new(logger: logger) }
         
     | 
| 
         @@ -40,15 +42,15 @@ RSpec.describe SoapyCake::Admin do 
     | 
|
| 
       40 
42 
     | 
    
         | 
| 
       41 
43 
     | 
    
         
             
              it 'returns a clicks report with a defined time range', :vcr do
         
     | 
| 
       42 
44 
     | 
    
         
             
                result = admin.clicks(
         
     | 
| 
       43 
     | 
    
         
            -
                  start_date: Date.new( 
     | 
| 
       44 
     | 
    
         
            -
                  end_date: Date.new( 
     | 
| 
      
 45 
     | 
    
         
            +
                  start_date: Date.new(2017, 5, 31),
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end_date: Date.new(2017, 6, 1),
         
     | 
| 
       45 
47 
     | 
    
         
             
                  row_limit: 1
         
     | 
| 
       46 
48 
     | 
    
         
             
                )
         
     | 
| 
       47 
49 
     | 
    
         | 
| 
       48 
50 
     | 
    
         
             
                expect(result.count).to eq(1)
         
     | 
| 
       49 
51 
     | 
    
         
             
                expect(result.first).to include(
         
     | 
| 
       50 
     | 
    
         
            -
                  click_id:  
     | 
| 
       51 
     | 
    
         
            -
                  visitor_id:  
     | 
| 
      
 52 
     | 
    
         
            +
                  click_id: 1633967829,
         
     | 
| 
      
 53 
     | 
    
         
            +
                  visitor_id: 964629655
         
     | 
| 
       52 
54 
     | 
    
         
             
                )
         
     | 
| 
       53 
55 
     | 
    
         
             
              end
         
     | 
| 
       54 
56 
     | 
    
         | 
| 
         @@ -1,6 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            RSpec.describe SoapyCake::Admin do
         
     | 
| 
       3 
4 
     | 
    
         
             
              subject(:admin) { described_class.new }
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
       4 
6 
     | 
    
         
             
              let(:opts) { nil }
         
     | 
| 
       5 
7 
     | 
    
         
             
              let(:cake_opts) { opts }
         
     | 
| 
       6 
8 
     | 
    
         
             
              let(:cake_method) { method }
         
     | 
| 
         @@ -11,22 +13,26 @@ RSpec.describe SoapyCake::Admin do 
     | 
|
| 
       11 
13 
     | 
    
         
             
                describe '#affiliate_bills' do
         
     | 
| 
       12 
14 
     | 
    
         
             
                  let(:method) { :affiliate_bills }
         
     | 
| 
       13 
15 
     | 
    
         
             
                  let(:cake_method) { :export_affiliate_bills }
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
       14 
17 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       15 
18 
     | 
    
         
             
                end
         
     | 
| 
       16 
19 
     | 
    
         | 
| 
       17 
20 
     | 
    
         
             
                describe '#advertiser_bills' do
         
     | 
| 
       18 
21 
     | 
    
         
             
                  let(:method) { :advertiser_bills }
         
     | 
| 
       19 
22 
     | 
    
         
             
                  let(:cake_method) { :export_advertiser_bills }
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
       20 
24 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       21 
25 
     | 
    
         
             
                end
         
     | 
| 
       22 
26 
     | 
    
         | 
| 
       23 
27 
     | 
    
         
             
                describe '#mark_affiliate_bill_as_received' do
         
     | 
| 
       24 
28 
     | 
    
         
             
                  let(:method) { :mark_affiliate_bill_as_received }
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
       25 
30 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       26 
31 
     | 
    
         
             
                end
         
     | 
| 
       27 
32 
     | 
    
         | 
| 
       28 
33 
     | 
    
         
             
                describe '#mark_affiliate_bill_as_paid' do
         
     | 
| 
       29 
34 
     | 
    
         
             
                  let(:method) { :mark_affiliate_bill_as_paid }
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
       30 
36 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       31 
37 
     | 
    
         
             
                end
         
     | 
| 
       32 
38 
     | 
    
         
             
              end
         
     | 
| 
         @@ -36,26 +42,31 @@ RSpec.describe SoapyCake::Admin do 
     | 
|
| 
       36 
42 
     | 
    
         | 
| 
       37 
43 
     | 
    
         
             
                describe '#advertisers' do
         
     | 
| 
       38 
44 
     | 
    
         
             
                  let(:method) { :advertisers }
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
       39 
46 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       40 
47 
     | 
    
         
             
                end
         
     | 
| 
       41 
48 
     | 
    
         | 
| 
       42 
49 
     | 
    
         
             
                describe '#affiliates' do
         
     | 
| 
       43 
50 
     | 
    
         
             
                  let(:method) { :affiliates }
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
       44 
52 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       45 
53 
     | 
    
         
             
                end
         
     | 
| 
       46 
54 
     | 
    
         | 
| 
       47 
55 
     | 
    
         
             
                describe '#campaigns' do
         
     | 
| 
       48 
56 
     | 
    
         
             
                  let(:method) { :campaigns }
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
       49 
58 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       50 
59 
     | 
    
         
             
                end
         
     | 
| 
       51 
60 
     | 
    
         | 
| 
       52 
61 
     | 
    
         
             
                describe '#offers' do
         
     | 
| 
       53 
62 
     | 
    
         
             
                  let(:method) { :offers }
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
       54 
64 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       55 
65 
     | 
    
         
             
                end
         
     | 
| 
       56 
66 
     | 
    
         | 
| 
       57 
67 
     | 
    
         
             
                describe '#creatives' do
         
     | 
| 
       58 
68 
     | 
    
         
             
                  let(:method) { :creatives }
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
       59 
70 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       60 
71 
     | 
    
         
             
                end
         
     | 
| 
       61 
72 
     | 
    
         
             
              end
         
     | 
| 
         @@ -65,37 +76,44 @@ RSpec.describe SoapyCake::Admin do 
     | 
|
| 
       65 
76 
     | 
    
         | 
| 
       66 
77 
     | 
    
         
             
                describe '#campaign_summary' do
         
     | 
| 
       67 
78 
     | 
    
         
             
                  let(:method) { :campaign_summary }
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
       68 
80 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       69 
81 
     | 
    
         
             
                end
         
     | 
| 
       70 
82 
     | 
    
         | 
| 
       71 
83 
     | 
    
         
             
                describe '#offer_summary' do
         
     | 
| 
       72 
84 
     | 
    
         
             
                  let(:method) { :offer_summary }
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
       73 
86 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       74 
87 
     | 
    
         
             
                end
         
     | 
| 
       75 
88 
     | 
    
         | 
| 
       76 
89 
     | 
    
         
             
                describe '#affiliate_summary' do
         
     | 
| 
       77 
90 
     | 
    
         
             
                  let(:method) { :affiliate_summary }
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
       78 
92 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       79 
93 
     | 
    
         
             
                end
         
     | 
| 
       80 
94 
     | 
    
         | 
| 
       81 
95 
     | 
    
         
             
                describe '#advertiser_summary' do
         
     | 
| 
       82 
96 
     | 
    
         
             
                  let(:method) { :advertiser_summary }
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
       83 
98 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       84 
99 
     | 
    
         
             
                end
         
     | 
| 
       85 
100 
     | 
    
         | 
| 
       86 
101 
     | 
    
         
             
                describe '#clicks' do
         
     | 
| 
       87 
102 
     | 
    
         
             
                  let(:method) { :clicks }
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
       88 
104 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       89 
105 
     | 
    
         
             
                end
         
     | 
| 
       90 
106 
     | 
    
         | 
| 
       91 
107 
     | 
    
         
             
                describe '#conversions' do
         
     | 
| 
       92 
108 
     | 
    
         
             
                  let(:method) { :conversions }
         
     | 
| 
       93 
109 
     | 
    
         
             
                  let(:cake_opts) {  { conversion_type: 'conversions' } }
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
       94 
111 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       95 
112 
     | 
    
         
             
                end
         
     | 
| 
       96 
113 
     | 
    
         | 
| 
       97 
114 
     | 
    
         
             
                describe '#conversion_changes' do
         
     | 
| 
       98 
115 
     | 
    
         
             
                  let(:method) { :conversion_changes }
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
       99 
117 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       100 
118 
     | 
    
         
             
                end
         
     | 
| 
       101 
119 
     | 
    
         | 
| 
         @@ -103,18 +121,21 @@ RSpec.describe SoapyCake::Admin do 
     | 
|
| 
       103 
121 
     | 
    
         
             
                  let(:method) { :events }
         
     | 
| 
       104 
122 
     | 
    
         
             
                  let(:cake_method) { :conversions }
         
     | 
| 
       105 
123 
     | 
    
         
             
                  let(:cake_opts) { { conversion_type: 'events' } }
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
       106 
125 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       107 
126 
     | 
    
         
             
                end
         
     | 
| 
       108 
127 
     | 
    
         | 
| 
       109 
128 
     | 
    
         
             
                describe '#traffic' do
         
     | 
| 
       110 
129 
     | 
    
         
             
                  let(:method) { :traffic }
         
     | 
| 
       111 
130 
     | 
    
         
             
                  let(:cake_method) { :traffic_export }
         
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
       112 
132 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       113 
133 
     | 
    
         
             
                end
         
     | 
| 
       114 
134 
     | 
    
         | 
| 
       115 
135 
     | 
    
         
             
                describe '#caps' do
         
     | 
| 
       116 
136 
     | 
    
         
             
                  let(:method) { :caps }
         
     | 
| 
       117 
137 
     | 
    
         
             
                  let(:cake_opts) { { start_date: '2015-07-01', end_date: '2015-07-07' } }
         
     | 
| 
      
 138 
     | 
    
         
            +
             
     | 
| 
       118 
139 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       119 
140 
     | 
    
         
             
                end
         
     | 
| 
       120 
141 
     | 
    
         
             
              end
         
     | 
| 
         @@ -125,23 +146,27 @@ RSpec.describe SoapyCake::Admin do 
     | 
|
| 
       125 
146 
     | 
    
         
             
                describe '#verticals' do
         
     | 
| 
       126 
147 
     | 
    
         
             
                  let(:method) { :verticals }
         
     | 
| 
       127 
148 
     | 
    
         
             
                  let(:cake_opts) { nil }
         
     | 
| 
      
 149 
     | 
    
         
            +
             
     | 
| 
       128 
150 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       129 
151 
     | 
    
         
             
                end
         
     | 
| 
       130 
152 
     | 
    
         | 
| 
       131 
153 
     | 
    
         
             
                describe '#countries' do
         
     | 
| 
       132 
154 
     | 
    
         
             
                  let(:method) { :countries }
         
     | 
| 
      
 155 
     | 
    
         
            +
             
     | 
| 
       133 
156 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       134 
157 
     | 
    
         
             
                end
         
     | 
| 
       135 
158 
     | 
    
         | 
| 
       136 
159 
     | 
    
         
             
                describe '#currencies' do
         
     | 
| 
       137 
160 
     | 
    
         
             
                  let(:method) { :currencies }
         
     | 
| 
       138 
161 
     | 
    
         
             
                  let(:cake_opts) { nil }
         
     | 
| 
      
 162 
     | 
    
         
            +
             
     | 
| 
       139 
163 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       140 
164 
     | 
    
         
             
                end
         
     | 
| 
       141 
165 
     | 
    
         | 
| 
       142 
166 
     | 
    
         
             
                describe '#exchange_rates' do
         
     | 
| 
       143 
167 
     | 
    
         
             
                  let(:method) { :exchange_rates }
         
     | 
| 
       144 
168 
     | 
    
         
             
                  let(:cake_opts) { { start_date: '2015-07-01', end_date: '2015-07-07' } }
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
       145 
170 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       146 
171 
     | 
    
         
             
                end
         
     | 
| 
       147 
172 
     | 
    
         | 
| 
         @@ -149,12 +174,14 @@ RSpec.describe SoapyCake::Admin do 
     | 
|
| 
       149 
174 
     | 
    
         
             
                  let(:method) { :tiers }
         
     | 
| 
       150 
175 
     | 
    
         
             
                  let(:cake_method) { :affiliate_tiers }
         
     | 
| 
       151 
176 
     | 
    
         
             
                  let(:cake_opts) { nil }
         
     | 
| 
      
 177 
     | 
    
         
            +
             
     | 
| 
       152 
178 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       153 
179 
     | 
    
         
             
                end
         
     | 
| 
       154 
180 
     | 
    
         | 
| 
       155 
181 
     | 
    
         
             
                describe '#blacklist_reasons' do
         
     | 
| 
       156 
182 
     | 
    
         
             
                  let(:method) { :blacklist_reasons }
         
     | 
| 
       157 
183 
     | 
    
         
             
                  let(:cake_opts) { nil }
         
     | 
| 
      
 184 
     | 
    
         
            +
             
     | 
| 
       158 
185 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       159 
186 
     | 
    
         
             
                end
         
     | 
| 
       160 
187 
     | 
    
         
             
              end
         
     | 
| 
         @@ -165,12 +192,14 @@ RSpec.describe SoapyCake::Admin do 
     | 
|
| 
       165 
192 
     | 
    
         
             
                describe '#update_creative' do
         
     | 
| 
       166 
193 
     | 
    
         
             
                  let(:method) { :update_creative }
         
     | 
| 
       167 
194 
     | 
    
         
             
                  let(:cake_method) { :creative }
         
     | 
| 
      
 195 
     | 
    
         
            +
             
     | 
| 
       168 
196 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       169 
197 
     | 
    
         
             
                end
         
     | 
| 
       170 
198 
     | 
    
         | 
| 
       171 
199 
     | 
    
         
             
                describe '#update_campaign' do
         
     | 
| 
       172 
200 
     | 
    
         
             
                  let(:method) { :update_campaign }
         
     | 
| 
       173 
201 
     | 
    
         
             
                  let(:cake_method) { :campaign }
         
     | 
| 
      
 202 
     | 
    
         
            +
             
     | 
| 
       174 
203 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       175 
204 
     | 
    
         
             
                end
         
     | 
| 
       176 
205 
     | 
    
         | 
| 
         @@ -204,12 +233,14 @@ RSpec.describe SoapyCake::Admin do 
     | 
|
| 
       204 
233 
     | 
    
         
             
                describe '#affiliate_signup' do
         
     | 
| 
       205 
234 
     | 
    
         
             
                  let(:method) { :affiliate_signup }
         
     | 
| 
       206 
235 
     | 
    
         
             
                  let(:cake_method) { :affiliate }
         
     | 
| 
      
 236 
     | 
    
         
            +
             
     | 
| 
       207 
237 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       208 
238 
     | 
    
         
             
                end
         
     | 
| 
       209 
239 
     | 
    
         | 
| 
       210 
240 
     | 
    
         
             
                describe '#media_types' do
         
     | 
| 
       211 
241 
     | 
    
         
             
                  let(:method) { :media_types }
         
     | 
| 
       212 
242 
     | 
    
         
             
                  let(:cake_method) { :get_media_types }
         
     | 
| 
      
 243 
     | 
    
         
            +
             
     | 
| 
       213 
244 
     | 
    
         
             
                  it_behaves_like 'a cake admin method'
         
     | 
| 
       214 
245 
     | 
    
         | 
| 
       215 
246 
     | 
    
         
             
                  it 'uses a local response' do
         
     | 
| 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            RSpec.describe SoapyCake::Affiliate do
         
     | 
| 
       3 
4 
     | 
    
         
             
              let(:affiliate_id) { 42 }
         
     | 
| 
       4 
5 
     | 
    
         
             
              let(:opts) { { a: 1 } }
         
     | 
| 
         @@ -21,12 +22,14 @@ RSpec.describe SoapyCake::Affiliate do 
     | 
|
| 
       21 
22 
     | 
    
         
             
              describe '#bills' do
         
     | 
| 
       22 
23 
     | 
    
         
             
                let(:service) { :reports }
         
     | 
| 
       23 
24 
     | 
    
         
             
                let(:method) { :bills }
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
       24 
26 
     | 
    
         
             
                it_behaves_like 'a cake affiliate method'
         
     | 
| 
       25 
27 
     | 
    
         
             
              end
         
     | 
| 
       26 
28 
     | 
    
         | 
| 
       27 
29 
     | 
    
         
             
              describe '#offer_feed' do
         
     | 
| 
       28 
30 
     | 
    
         
             
                let(:service) { :offers }
         
     | 
| 
       29 
31 
     | 
    
         
             
                let(:method) { :offer_feed }
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
       30 
33 
     | 
    
         
             
                it_behaves_like 'a cake affiliate method'
         
     | 
| 
       31 
34 
     | 
    
         
             
              end
         
     | 
| 
       32 
35 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,14 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            RSpec.describe SoapyCake::Campaigns do
         
     | 
| 
       3 
4 
     | 
    
         
             
              let(:campaigns) { described_class.new }
         
     | 
| 
       4 
5 
     | 
    
         
             
              let(:client) { instance_double(SoapyCake::Client) }
         
     | 
| 
       5 
6 
     | 
    
         
             
              let(:campaign_id) { 1 }
         
     | 
| 
       6 
7 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
              before do
         
     | 
| 
       8 
     | 
    
         
            -
                allow(SoapyCake::Client).to receive(:new).and_return(client)
         
     | 
| 
       9 
     | 
    
         
            -
                allow(client).to receive(:run).with(an_instance_of(SoapyCake::Request))
         
     | 
| 
       10 
     | 
    
         
            -
              end
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
8 
     | 
    
         
             
              let(:default_params) do
         
     | 
| 
       13 
9 
     | 
    
         
             
                {
         
     | 
| 
       14 
10 
     | 
    
         
             
                  affiliate_id: 1,
         
     | 
| 
         @@ -26,6 +22,11 @@ RSpec.describe SoapyCake::Campaigns do 
     | 
|
| 
       26 
22 
     | 
    
         
             
                }
         
     | 
| 
       27 
23 
     | 
    
         
             
              end
         
     | 
| 
       28 
24 
     | 
    
         | 
| 
      
 25 
     | 
    
         
            +
              before do
         
     | 
| 
      
 26 
     | 
    
         
            +
                allow(SoapyCake::Client).to receive(:new).and_return(client)
         
     | 
| 
      
 27 
     | 
    
         
            +
                allow(client).to receive(:run).with(an_instance_of(SoapyCake::Request))
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
       29 
30 
     | 
    
         
             
              def expect_request_to_be_built_with(opts)
         
     | 
| 
       30 
31 
     | 
    
         
             
                expect(SoapyCake::Request).to receive(:new).with(
         
     | 
| 
       31 
32 
     | 
    
         
             
                  :admin,
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: soapy_cake
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.1.4
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - ad2games GmbH
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2017- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2017-06-27 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: activesupport
         
     | 
| 
         @@ -271,7 +271,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       271 
271 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       272 
272 
     | 
    
         
             
            requirements: []
         
     | 
| 
       273 
273 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       274 
     | 
    
         
            -
            rubygems_version: 2.5. 
     | 
| 
      
 274 
     | 
    
         
            +
            rubygems_version: 2.5.1
         
     | 
| 
       275 
275 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       276 
276 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       277 
277 
     | 
    
         
             
            summary: Simple client for the CAKE API
         
     |