apple_reporter 0.1.4 → 0.1.5
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/README.md +28 -3
- data/lib/apple_reporter.rb +1 -0
- data/lib/apple_reporter/reporter.rb +13 -6
- data/lib/apple_reporter/token.rb +44 -0
- data/lib/apple_reporter/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7b0d8ee407b6024a34eb2c38d4bd58a0c71ca24
|
4
|
+
data.tar.gz: 95a62804de25c89f5fc278649b38097dbbab851f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
data/lib/apple_reporter.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
52
|
-
|
53
|
-
|
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
|
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.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:
|
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.
|
149
|
+
rubygems_version: 2.6.14
|
149
150
|
signing_key:
|
150
151
|
specification_version: 4
|
151
152
|
summary: Apple iTunes Connect Reporter
|