apple_reporter 0.1.6 → 0.1.7
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 +2 -0
- data/Gemfile +15 -0
- data/README.md +2 -2
- data/lib/apple_reporter/reporter.rb +25 -7
- data/lib/apple_reporter/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 1e96ff23e34a81a9f7ba0e6d93420cba262039578c4a3d0dbeff2d50b5427c81
         | 
| 4 | 
            +
              data.tar.gz: d9321c247000ce4e397b13e210e3de4177016d27156cd1b0741fafa13f1f1755
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: fbaaea3513df08e0afb7519cdfff2513cb65f0dfeae375e01d56ea5b5c66de720ae1a9195b4f60dc77364db9c344b9148929504670dd07e673e9d43decbcc1bd
         | 
| 7 | 
            +
              data.tar.gz: 58b9ebf2e728af1b1380ebed53914321efd372369e8bc33ee715d7397fedea6c3c455a30a7b225bbea09ab4446379cd4bd6abf7c9db8109ae116c3c2006a1f49
         | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/Gemfile
    CHANGED
    
    | @@ -2,3 +2,18 @@ source 'https://rubygems.org' | |
| 2 2 |  | 
| 3 3 | 
             
            # Specify your gem's dependencies in apple_reporter.gemspec
         | 
| 4 4 | 
             
            gemspec
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            group :development do
         | 
| 7 | 
            +
              gem 'rake'
         | 
| 8 | 
            +
              gem 'webmock'
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              platforms :mri do
         | 
| 11 | 
            +
                # to avoid problems, bring Byebug in on just versions of Ruby under which
         | 
| 12 | 
            +
                # it's known to work well
         | 
| 13 | 
            +
                if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.0.0')
         | 
| 14 | 
            +
                  gem 'byebug'
         | 
| 15 | 
            +
                  gem 'pry'
         | 
| 16 | 
            +
                  gem 'pry-byebug'
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
            end
         | 
    
        data/README.md
    CHANGED
    
    | @@ -59,8 +59,8 @@ report = reporter.get_report( | |
| 59 59 |  | 
| 60 60 | 
             
            ```ruby
         | 
| 61 61 | 
             
            reporter = AppleReporter::Finance.new(
         | 
| 62 | 
            -
              user_id: 'your user id', | 
| 63 | 
            -
              access_token: 'your access token'
         | 
| 62 | 
            +
              user_id: 'your user id',
         | 
| 63 | 
            +
              access_token: 'your access token',
         | 
| 64 64 | 
             
              version: '1_1'
         | 
| 65 65 | 
             
            )
         | 
| 66 66 | 
             
            report = reporter.get_report(
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            module AppleReporter
         | 
| 2 2 | 
             
              class Reporter
         | 
| 3 3 | 
             
                ENDPOINT = 'https://reportingitc-reporter.apple.com/reportservice'
         | 
| 4 | 
            -
             | 
| 4 | 
            +
                GZIP_MIMETYPE = '1f8b0800000000000000'.freeze
         | 
| 5 5 | 
             
                #
         | 
| 6 6 | 
             
                # Usage:
         | 
| 7 7 | 
             
                # reporter = Apple::Reporter::Sale.new(user_id: 'iscreen', access_token: 'secret', account: 'myAccount')
         | 
| @@ -30,20 +30,25 @@ module AppleReporter | |
| 30 30 | 
             
                  }
         | 
| 31 31 | 
             
                  payload[:account] = @config[:account] if @config[:account]
         | 
| 32 32 | 
             
                  payload[:password] = @config[:password] if @config[:password]
         | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 33 | 
            +
                  response = RestClient.post(
         | 
| 34 | 
            +
                    "#{ENDPOINT}#{api_path}",
         | 
| 35 | 
            +
                    "jsonRequest=#{payload.to_json}#{url_params}",
         | 
| 36 | 
            +
                    headers
         | 
| 37 | 
            +
                  )
         | 
| 35 38 | 
             
                  handle_response(@config[:mode], response)
         | 
| 36 39 | 
             
                rescue RestClient::ExceptionWithResponse => err
         | 
| 37 | 
            -
                   | 
| 40 | 
            +
                  if err.response
         | 
| 41 | 
            +
                    handle_response(@config[:mode], err.response)
         | 
| 42 | 
            +
                  else
         | 
| 43 | 
            +
                    raise err
         | 
| 44 | 
            +
                  end
         | 
| 38 45 | 
             
                end
         | 
| 39 46 |  | 
| 40 47 | 
             
                #
         | 
| 41 48 | 
             
                def handle_response(mode, response)
         | 
| 42 49 | 
             
                  if response.code == 200
         | 
| 43 50 | 
             
                    if response.headers[:content_type] == 'application/a-gzip'
         | 
| 44 | 
            -
                       | 
| 45 | 
            -
                      gz = Zlib::GzipReader.new(io)
         | 
| 46 | 
            -
                      return gz.readlines.join
         | 
| 51 | 
            +
                      decompress_gzip(response.body)
         | 
| 47 52 | 
             
                    else
         | 
| 48 53 | 
             
                      handle_response_body_with_mode(response.body, mode)
         | 
| 49 54 | 
             
                    end
         | 
| @@ -59,5 +64,18 @@ module AppleReporter | |
| 59 64 | 
             
                    body
         | 
| 60 65 | 
             
                  end
         | 
| 61 66 | 
             
                end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                def decompress_gzip(compress_string)
         | 
| 69 | 
            +
                  buffer = []
         | 
| 70 | 
            +
                  chunks = compress_string.unpack('H*').first.split(GZIP_MIMETYPE)
         | 
| 71 | 
            +
                  if chunks.length == 1
         | 
| 72 | 
            +
                    buffer << ActiveSupport::Gzip.decompress([chunks.first].pack('H*'))
         | 
| 73 | 
            +
                  else
         | 
| 74 | 
            +
                    chunks.reject(&:empty?).each do |chunk|
         | 
| 75 | 
            +
                      buffer << Zlib::GzipReader.new(StringIO.new([GZIP_MIMETYPE + chunk].pack('H*'))).read
         | 
| 76 | 
            +
                    end
         | 
| 77 | 
            +
                  end
         | 
| 78 | 
            +
                  buffer.join
         | 
| 79 | 
            +
                end
         | 
| 62 80 | 
             
              end
         | 
| 63 81 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: apple_reporter
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.7
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Dean Lin
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2018- | 
| 11 | 
            +
            date: 2018-12-20 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rest-client
         |