apple_reporter 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f9609786844909fdf453e6429dc6ebe596eada77
4
- data.tar.gz: cba7b3351e012f9d7f6c32723c888a0ca4919436
3
+ metadata.gz: d7b0d8ee407b6024a34eb2c38d4bd58a0c71ca24
4
+ data.tar.gz: 95a62804de25c89f5fc278649b38097dbbab851f
5
5
  SHA512:
6
- metadata.gz: 8d382919f316fe29ba521cb777d4d00a76d09df85f0168ed1ccd2e7304bab29ebe2755d15b028dd5d3d96f984c92c542c87b50065e53c9ab2a9986848e481b8e
7
- data.tar.gz: b1d1692fedb41e54e7fe7409cdf1db676ac09d9d82f5175948d07e5e8cff1f6b14189d49779cf962d06b24eae614047062feb02ca6781fa3fb0565892a54470d
6
+ metadata.gz: 902c2ac017f889c94abdef8655d59c55d007bef0a79cafc2f6ca1615532e54add7b418733babcf2fccd341360a2f93b1698b2d0d45b2e3995aa4552e2b3dbb44
7
+ data.tar.gz: 8b61c6f719bd2f7665a32392aa4483dd6538357d1aba6650f15dd5cceda712a530ecbc65b1cad13b6b7978c5d0737ec47fd1421513535d832c7e9929c2162fec
data/README.md CHANGED
@@ -30,7 +30,7 @@ Or install it yourself as:
30
30
 
31
31
  - get_report
32
32
 
33
- ```
33
+ ```ruby
34
34
  reporter = AppleReporter::Sale.new(user_id: 'your user id', access_token: 'your access token')
35
35
  report = reporter.get_report(
36
36
  vendor_number: 'your vender id',
@@ -43,7 +43,8 @@ report = reporter.get_report(
43
43
  ### Finance
44
44
 
45
45
  - get_report
46
- ```
46
+
47
+ ```ruby
47
48
  reporter = AppleReporter::Finance.new(user_id: 'your user id', access_token: 'your access token')
48
49
  report = reporter.get_report(
49
50
  vendor_number: 'your vender id',
@@ -55,7 +56,8 @@ report = reporter.get_report(
55
56
  ```
56
57
 
57
58
  - get_report with version
58
- ```
59
+
60
+ ```ruby
59
61
  reporter = AppleReporter::Finance.new(
60
62
  user_id: 'your user id',
61
63
  access_token: 'your access token'
@@ -70,6 +72,29 @@ report = reporter.get_report(
70
72
  )
71
73
  ```
72
74
 
75
+ ### AccessToken
76
+
77
+ - view
78
+
79
+ ```ruby
80
+ reporter = AppleReporter::Token.new(user_id: 'your user id', password: 'your password')
81
+ token_info = reporter.view
82
+ ```
83
+
84
+ - generate
85
+
86
+ ```ruby
87
+ reporter = AppleReporter::Token.new(user_id: 'your user id', password: 'your password')
88
+ token_info = reporter.generate
89
+ ```
90
+ - delete
91
+
92
+ ```ruby
93
+ reporter = AppleReporter::Token.new(user_id: 'your user id', password: 'your password')
94
+ reporter.delete
95
+ ```
96
+
97
+
73
98
  ## Development
74
99
 
75
100
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rspec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -5,6 +5,7 @@ require 'apple_reporter/version'
5
5
  require 'apple_reporter/reporter'
6
6
  require 'apple_reporter/sale'
7
7
  require 'apple_reporter/finance'
8
+ require 'apple_reporter/token'
8
9
 
9
10
  module AppleReporter
10
11
  raise "Cannot require AppleReporter, unsupported engine '#{RUBY_ENGINE}'" unless RUBY_ENGINE == "ruby"
@@ -17,7 +17,7 @@ module AppleReporter
17
17
 
18
18
  private
19
19
 
20
- def fetch(api_path, params)
20
+ def fetch(api_path, params, url_params=nil)
21
21
  headers = {
22
22
  'Content-Type' => 'application/x-www-form-urlencoded'
23
23
  }
@@ -29,8 +29,9 @@ module AppleReporter
29
29
  queryInput: "[p=Reporter.properties, #{params}]"
30
30
  }
31
31
  payload[:account] = @config[:account] if @config[:account]
32
+ payload[:password] = @config[:password] if @config[:password]
32
33
 
33
- response = RestClient.post("#{ENDPOINT}#{api_path}", "jsonRequest=#{payload.to_json}", headers)
34
+ response = RestClient.post("#{ENDPOINT}#{api_path}", "jsonRequest=#{payload.to_json}#{url_params}", headers)
34
35
  handle_response(@config[:mode], response)
35
36
  rescue RestClient::ExceptionWithResponse => err
36
37
  handle_response(@config[:mode], err.response)
@@ -44,13 +45,19 @@ module AppleReporter
44
45
  gz = Zlib::GzipReader.new(io)
45
46
  return gz.readlines.join
46
47
  else
47
- return Hash.from_xml(response.body)
48
+ handle_response_body_with_mode(response.body, mode)
48
49
  end
50
+ else
51
+ handle_response_body_with_mode(response.body, mode)
49
52
  end
53
+ end
50
54
 
51
- return Hash.from_xml(response.body) if mode == 'Robot.XML'
52
-
53
- response.body
55
+ def handle_response_body_with_mode(body, mode)
56
+ if mode =~ /robot\.xml/i
57
+ Hash.from_xml(body)
58
+ else
59
+ body
60
+ end
54
61
  end
55
62
  end
56
63
  end
@@ -0,0 +1,44 @@
1
+ module AppleReporter
2
+ class Token < Reporter
3
+ # view
4
+ #
5
+ # Usage:
6
+ # token_info = token.view
7
+ def view
8
+ data, _ = fetch(@config[:sales_path], 'Sales.viewToken')
9
+ data
10
+ end
11
+
12
+ # generate
13
+ #
14
+ # Usage:
15
+ # token_info = token.generate
16
+ def generate
17
+ # ported from python implementation at https://github.com/fedoco/itc-reporter/blob/master/reporter.py
18
+ mode_backup = @config[:mode]
19
+ @config[:mode] = 'normal'
20
+ _, headers = fetch(@config[:sales_path], 'Sales.generateToken')
21
+
22
+ # generating a new token requires mirroring back a request id to the iTC server, so let's examine the response header...
23
+ @config[:mode] = mode_backup
24
+ url_params = "&isExistingToken=%s&requestId=%s" % ['Y', headers[:service_request_id]]
25
+ data, _ = fetch(@config[:sales_path], 'Sales.generateToken', url_params)
26
+ data
27
+ end
28
+
29
+ def delete
30
+ data, _ = fetch(@config[:sales_path], 'Sales.deleteToken')
31
+ data
32
+ end
33
+
34
+ private
35
+
36
+ #
37
+ # return response headers along with (optionaly parsed body)
38
+ def handle_response(mode, response)
39
+ data = super
40
+ [data, response.headers]
41
+ end
42
+
43
+ end
44
+ end
@@ -1,3 +1,3 @@
1
1
  module AppleReporter
2
- VERSION = '0.1.4'.freeze
2
+ VERSION = '0.1.5'.freeze
3
3
  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
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dean Lin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-24 00:00:00.000000000 Z
11
+ date: 2018-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -124,6 +124,7 @@ files:
124
124
  - lib/apple_reporter/finance.rb
125
125
  - lib/apple_reporter/reporter.rb
126
126
  - lib/apple_reporter/sale.rb
127
+ - lib/apple_reporter/token.rb
127
128
  - lib/apple_reporter/version.rb
128
129
  homepage: https://github.com/iscreen/apple_reporter.git
129
130
  licenses:
@@ -145,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
146
  version: '0'
146
147
  requirements: []
147
148
  rubyforge_project:
148
- rubygems_version: 2.6.11
149
+ rubygems_version: 2.6.14
149
150
  signing_key:
150
151
  specification_version: 4
151
152
  summary: Apple iTunes Connect Reporter