app_store_connect 0.29.0 → 0.38.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/.github/dependabot.yml +12 -0
- data/.github/workflows/default.yml +34 -25
- data/.gitignore +0 -1
- data/.rubocop.yml +6 -2
- data/CHANGELOG.md +443 -0
- data/Gemfile.lock +201 -0
- data/README.md +113 -11
- data/app_store_connect.gemspec +8 -4
- data/assets/banner.png +0 -0
- data/bin/console +10 -0
- data/lib/app_store_connect/app_store_version_build_linkage_request.rb +1 -3
- data/lib/app_store_connect/app_store_version_create_request.rb +1 -3
- data/lib/app_store_connect/app_store_version_phased_release_create_request.rb +1 -3
- data/lib/app_store_connect/app_store_version_phased_release_update_request.rb +1 -3
- data/lib/app_store_connect/app_store_version_release_request_create_request.rb +1 -3
- data/lib/app_store_connect/app_store_version_update_request.rb +1 -3
- data/lib/app_store_connect/base.rb +83 -0
- data/lib/app_store_connect/beta_build_localization_create_request.rb +14 -0
- data/lib/app_store_connect/beta_build_localization_modify_request.rb +14 -0
- data/lib/app_store_connect/build_update_request.rb +1 -3
- data/lib/app_store_connect/bundle_id_capability_create_request.rb +1 -3
- data/lib/app_store_connect/bundle_id_create_request.rb +1 -3
- data/lib/app_store_connect/certificate_create_request.rb +1 -3
- data/lib/app_store_connect/client/builder.rb +91 -0
- data/lib/app_store_connect/client.rb +45 -71
- data/lib/app_store_connect/device_create_request.rb +1 -3
- data/lib/app_store_connect/object/data.rb +19 -7
- data/lib/app_store_connect/object/data_type.rb +23 -0
- data/lib/app_store_connect/object/included.rb +27 -0
- data/lib/app_store_connect/profile_create_request.rb +1 -3
- data/lib/app_store_connect/request/body.rb +26 -0
- data/lib/app_store_connect/request/builder/create.rb +69 -0
- data/lib/app_store_connect/request.rb +2 -2
- data/lib/app_store_connect/requests/delete_with_body.rb +11 -0
- data/lib/app_store_connect/requests/v1/app_store_version_localization/create.rb +25 -0
- data/lib/app_store_connect/requests/v1/app_store_version_localization/update.rb +25 -0
- data/lib/app_store_connect/requests/v1/beta_app_review_submission/create.rb +15 -0
- data/lib/app_store_connect/requests/v1/build_beta_detail/update.rb +20 -0
- data/lib/app_store_connect/requests/v1/build_beta_groups/create.rb +16 -0
- data/lib/app_store_connect/requests/v1/build_beta_groups/delete.rb +16 -0
- data/lib/app_store_connect/requests/v1/in_app_purchase_localization/create.rb +21 -0
- data/lib/app_store_connect/requests/v1/in_app_purchase_localization/update.rb +21 -0
- data/lib/app_store_connect/requests/v1/in_app_purchase_price_schedule/create.rb +15 -0
- data/lib/app_store_connect/requests/v1/in_app_purchase_review_screenshot/create.rb +20 -0
- data/lib/app_store_connect/requests/v1/in_app_purchase_review_screenshot/update.rb +21 -0
- data/lib/app_store_connect/requests/v1/in_app_purchase_submission/create.rb +15 -0
- data/lib/app_store_connect/requests/v2/in_app_purchase/create.rb +24 -0
- data/lib/app_store_connect/requests/v2/in_app_purchase/update.rb +23 -0
- data/lib/app_store_connect/review_submission_create_request.rb +1 -3
- data/lib/app_store_connect/review_submission_item_create_request.rb +1 -3
- data/lib/app_store_connect/review_submission_update_request.rb +1 -3
- data/lib/app_store_connect/specification/component/schema.rb +25 -0
- data/lib/app_store_connect/specification.rb +54 -0
- data/lib/app_store_connect/user_invitation_create_request.rb +1 -3
- data/lib/app_store_connect/version.rb +1 -1
- data/lib/app_store_connect.rb +4 -22
- data/lib/config/schema.json +175 -22
- data/lib/tasks/bundle.rake +7 -0
- data/lib/tasks/changelog.rake +17 -0
- data/lib/tasks/git.rake +19 -0
- data/lib/tasks/push.rake +18 -0
- data/lib/tasks/release.rake +11 -12
- data/lib/tasks/version.rake +4 -1
- metadata +98 -15
- data/lib/app_store_connect/create_request.rb +0 -14
data/Gemfile.lock
ADDED
@@ -0,0 +1,201 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
app_store_connect (0.38.0)
|
5
|
+
activesupport (>= 6.0.0)
|
6
|
+
jwt (>= 1.4)
|
7
|
+
zeitwerk (>= 2.6.7)
|
8
|
+
|
9
|
+
GEM
|
10
|
+
remote: https://rubygems.org/
|
11
|
+
specs:
|
12
|
+
activesupport (7.0.4.3)
|
13
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
14
|
+
i18n (>= 1.6, < 2)
|
15
|
+
minitest (>= 5.1)
|
16
|
+
tzinfo (~> 2.0)
|
17
|
+
addressable (2.8.1)
|
18
|
+
public_suffix (>= 2.0.2, < 6.0)
|
19
|
+
ast (2.4.2)
|
20
|
+
async (1.30.3)
|
21
|
+
console (~> 1.10)
|
22
|
+
nio4r (~> 2.3)
|
23
|
+
timers (~> 4.1)
|
24
|
+
async-http (0.60.1)
|
25
|
+
async (>= 1.25)
|
26
|
+
async-io (>= 1.28)
|
27
|
+
async-pool (>= 0.2)
|
28
|
+
protocol-http (~> 0.24.0)
|
29
|
+
protocol-http1 (~> 0.15.0)
|
30
|
+
protocol-http2 (~> 0.15.0)
|
31
|
+
traces (>= 0.8.0)
|
32
|
+
async-http-faraday (0.11.0)
|
33
|
+
async-http (~> 0.42)
|
34
|
+
faraday
|
35
|
+
async-io (1.34.3)
|
36
|
+
async
|
37
|
+
async-pool (0.3.12)
|
38
|
+
async (>= 1.25)
|
39
|
+
cgi (0.3.6)
|
40
|
+
coderay (1.1.3)
|
41
|
+
concurrent-ruby (1.2.2)
|
42
|
+
console (1.16.2)
|
43
|
+
fiber-local
|
44
|
+
crack (0.4.5)
|
45
|
+
rexml
|
46
|
+
diff-lcs (1.5.0)
|
47
|
+
docile (1.4.0)
|
48
|
+
erb (4.0.2)
|
49
|
+
cgi (>= 0.3.3)
|
50
|
+
factory_bot (6.2.1)
|
51
|
+
activesupport (>= 5.0.0)
|
52
|
+
faraday (2.7.4)
|
53
|
+
faraday-net_http (>= 2.0, < 3.1)
|
54
|
+
ruby2_keywords (>= 0.0.4)
|
55
|
+
faraday-http-cache (2.4.1)
|
56
|
+
faraday (>= 0.8)
|
57
|
+
faraday-net_http (3.0.2)
|
58
|
+
ffi (1.15.5)
|
59
|
+
fiber-local (1.0.0)
|
60
|
+
formatador (1.1.0)
|
61
|
+
github_changelog_generator (1.16.4)
|
62
|
+
activesupport
|
63
|
+
async (>= 1.25.0)
|
64
|
+
async-http-faraday
|
65
|
+
faraday-http-cache
|
66
|
+
multi_json
|
67
|
+
octokit (~> 4.6)
|
68
|
+
rainbow (>= 2.2.1)
|
69
|
+
rake (>= 10.0)
|
70
|
+
guard (2.18.0)
|
71
|
+
formatador (>= 0.2.4)
|
72
|
+
listen (>= 2.7, < 4.0)
|
73
|
+
lumberjack (>= 1.0.12, < 2.0)
|
74
|
+
nenv (~> 0.1)
|
75
|
+
notiffany (~> 0.0)
|
76
|
+
pry (>= 0.13.0)
|
77
|
+
shellany (~> 0.0)
|
78
|
+
thor (>= 0.18.1)
|
79
|
+
guard-compat (1.2.1)
|
80
|
+
guard-rspec (4.7.3)
|
81
|
+
guard (~> 2.1)
|
82
|
+
guard-compat (~> 1.1)
|
83
|
+
rspec (>= 2.99.0, < 4.0)
|
84
|
+
hashdiff (1.0.1)
|
85
|
+
i18n (1.12.0)
|
86
|
+
concurrent-ruby (~> 1.0)
|
87
|
+
json (2.6.3)
|
88
|
+
jwt (2.7.0)
|
89
|
+
listen (3.7.1)
|
90
|
+
rb-fsevent (~> 0.10, >= 0.10.3)
|
91
|
+
rb-inotify (~> 0.9, >= 0.9.10)
|
92
|
+
lumberjack (1.2.8)
|
93
|
+
method_source (1.0.0)
|
94
|
+
minitest (5.18.0)
|
95
|
+
multi_json (1.15.0)
|
96
|
+
nenv (0.3.0)
|
97
|
+
nio4r (2.5.8)
|
98
|
+
notiffany (0.1.3)
|
99
|
+
nenv (~> 0.1)
|
100
|
+
shellany (~> 0.0)
|
101
|
+
octokit (4.25.1)
|
102
|
+
faraday (>= 1, < 3)
|
103
|
+
sawyer (~> 0.9)
|
104
|
+
parallel (1.23.0)
|
105
|
+
parser (3.2.2.0)
|
106
|
+
ast (~> 2.4.1)
|
107
|
+
protocol-hpack (1.4.2)
|
108
|
+
protocol-http (0.24.0)
|
109
|
+
protocol-http1 (0.15.0)
|
110
|
+
protocol-http (~> 0.22)
|
111
|
+
protocol-http2 (0.15.0)
|
112
|
+
protocol-hpack (~> 1.4)
|
113
|
+
protocol-http (~> 0.18)
|
114
|
+
pry (0.14.2)
|
115
|
+
coderay (~> 1.1)
|
116
|
+
method_source (~> 1.0)
|
117
|
+
public_suffix (5.0.0)
|
118
|
+
rainbow (3.1.1)
|
119
|
+
rake (13.0.6)
|
120
|
+
rb-fsevent (0.11.2)
|
121
|
+
rb-inotify (0.10.1)
|
122
|
+
ffi (~> 1.0)
|
123
|
+
regexp_parser (2.8.0)
|
124
|
+
rexml (3.2.5)
|
125
|
+
rspec (3.12.0)
|
126
|
+
rspec-core (~> 3.12.0)
|
127
|
+
rspec-expectations (~> 3.12.0)
|
128
|
+
rspec-mocks (~> 3.12.0)
|
129
|
+
rspec-core (3.12.1)
|
130
|
+
rspec-support (~> 3.12.0)
|
131
|
+
rspec-expectations (3.12.2)
|
132
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
133
|
+
rspec-support (~> 3.12.0)
|
134
|
+
rspec-mocks (3.12.3)
|
135
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
136
|
+
rspec-support (~> 3.12.0)
|
137
|
+
rspec-support (3.12.0)
|
138
|
+
rubocop (1.50.2)
|
139
|
+
json (~> 2.3)
|
140
|
+
parallel (~> 1.10)
|
141
|
+
parser (>= 3.2.0.0)
|
142
|
+
rainbow (>= 2.2.2, < 4.0)
|
143
|
+
regexp_parser (>= 1.8, < 3.0)
|
144
|
+
rexml (>= 3.2.5, < 4.0)
|
145
|
+
rubocop-ast (>= 1.28.0, < 2.0)
|
146
|
+
ruby-progressbar (~> 1.7)
|
147
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
148
|
+
rubocop-ast (1.28.0)
|
149
|
+
parser (>= 3.2.1.0)
|
150
|
+
ruby-progressbar (1.13.0)
|
151
|
+
ruby2_keywords (0.0.5)
|
152
|
+
rubyzip (2.3.2)
|
153
|
+
sawyer (0.9.2)
|
154
|
+
addressable (>= 2.3.5)
|
155
|
+
faraday (>= 0.17.3, < 3)
|
156
|
+
semantic (1.6.1)
|
157
|
+
shellany (0.0.1)
|
158
|
+
simplecov (0.22.0)
|
159
|
+
docile (~> 1.1)
|
160
|
+
simplecov-html (~> 0.11)
|
161
|
+
simplecov_json_formatter (~> 0.1)
|
162
|
+
simplecov-html (0.12.3)
|
163
|
+
simplecov_json_formatter (0.1.4)
|
164
|
+
thor (1.2.1)
|
165
|
+
timecop (0.9.6)
|
166
|
+
timers (4.3.5)
|
167
|
+
traces (0.8.0)
|
168
|
+
tzinfo (2.0.6)
|
169
|
+
concurrent-ruby (~> 1.0)
|
170
|
+
unicode-display_width (2.4.2)
|
171
|
+
webmock (3.18.1)
|
172
|
+
addressable (>= 2.8.0)
|
173
|
+
crack (>= 0.3.2)
|
174
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
175
|
+
zeitwerk (2.6.8)
|
176
|
+
|
177
|
+
PLATFORMS
|
178
|
+
arm64-darwin-21
|
179
|
+
arm64-darwin-22
|
180
|
+
x86_64-darwin-22
|
181
|
+
x86_64-linux
|
182
|
+
|
183
|
+
DEPENDENCIES
|
184
|
+
app_store_connect!
|
185
|
+
bundler
|
186
|
+
erb (~> 4.0.2)
|
187
|
+
factory_bot (~> 6.2.1)
|
188
|
+
github_changelog_generator (= 1.16.4)
|
189
|
+
guard-rspec (~> 4.7.3)
|
190
|
+
pry (~> 0.14.1)
|
191
|
+
rake (~> 13.0.6)
|
192
|
+
rspec (~> 3.12.0)
|
193
|
+
rubocop (~> 1.50.1)
|
194
|
+
rubyzip
|
195
|
+
semantic (~> 1.6.1)
|
196
|
+
simplecov (~> 0.22.0)
|
197
|
+
timecop (~> 0.9.5)
|
198
|
+
webmock (~> 3.18.1)
|
199
|
+
|
200
|
+
BUNDLED WITH
|
201
|
+
2.3.24
|
data/README.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
|
2
|
+
|
3
|
+
<div align="center">
|
4
|
+
<img src="assets/banner.png">
|
5
|
+
|
6
|
+
<h1>App Store Connect for Ruby</h1>
|
7
|
+
|
8
|
+
[](https://github.com/kyledecot/app_store_connect/actions/workflows/default.yml)
|
9
|
+
</div>
|
10
|
+
|
11
|
+
|
3
12
|
|
4
13
|
A Ruby interface to the [App Store Connect API](https://developer.apple.com/app-store-connect/api/)
|
5
14
|
|
@@ -66,43 +75,124 @@ app_store_connect.sales_reports(
|
|
66
75
|
|
67
76
|
```ruby
|
68
77
|
|
69
|
-
|
70
|
-
puts JSON.pretty_generate(
|
78
|
+
devices = app_store_connect.devices
|
79
|
+
puts JSON.pretty_generate(devices)
|
71
80
|
|
72
81
|
```
|
73
82
|
|
74
83
|
### Register a New Device
|
75
84
|
|
76
85
|
```ruby
|
77
|
-
|
86
|
+
created_device = app_store_connect.create_device(
|
78
87
|
name: 'name',
|
79
88
|
platform: 'IOS',
|
80
89
|
udid: 'udid'
|
81
90
|
)
|
82
91
|
|
83
|
-
puts JSON.pretty_generate(
|
92
|
+
puts JSON.pretty_generate(created_device)
|
84
93
|
```
|
85
94
|
|
86
95
|
### Update an App Store Version
|
87
96
|
|
88
97
|
```ruby
|
89
|
-
app_store_connect.update_app_store_version
|
98
|
+
app_store_connect.update_app_store_version(
|
99
|
+
id: '<app-store-version-id>',
|
100
|
+
version_string: '1.0'
|
101
|
+
)
|
90
102
|
```
|
91
103
|
|
92
104
|
### Link a Build to an App Store Version
|
93
105
|
|
94
106
|
```ruby
|
95
|
-
app_store_connect.update_app_store_version_build
|
107
|
+
app_store_connect.update_app_store_version_build(
|
108
|
+
id: '<app-store-version-id>',
|
109
|
+
build_id: '<build-id>'
|
110
|
+
)
|
96
111
|
```
|
97
112
|
|
98
113
|
### Create a Review Submission Item
|
99
114
|
|
100
115
|
```ruby
|
101
|
-
app_store_connect.create_review_submission_item
|
102
|
-
|
116
|
+
app_store_connect.create_review_submission_item(
|
117
|
+
relationships: {
|
118
|
+
reviewSubmission: {
|
119
|
+
data: {
|
120
|
+
id: '<review-submission-id>',
|
121
|
+
type: 'reviewSubmissions'
|
122
|
+
}
|
123
|
+
},
|
124
|
+
appStoreVersion: {
|
125
|
+
data: {
|
126
|
+
id: '<app-store-version-id>',
|
127
|
+
type: 'appStoreVersions'
|
128
|
+
}
|
129
|
+
}
|
130
|
+
}
|
131
|
+
)
|
132
|
+
```
|
133
|
+
|
134
|
+
### Create In-App Purchase Price Schedule
|
135
|
+
|
136
|
+
```ruby
|
137
|
+
app_store_connect.create_in_app_purchase_price_schedule(
|
138
|
+
relationships: {
|
139
|
+
manual_prices: {
|
140
|
+
data: [
|
141
|
+
{
|
142
|
+
type: 'inAppPurchasePrices',
|
143
|
+
id: '${price1}'
|
144
|
+
}
|
145
|
+
]
|
146
|
+
},
|
147
|
+
in_app_purchase: {
|
148
|
+
data: {
|
149
|
+
type: 'inAppPurchases',
|
150
|
+
id: '<in-app-purchase-id>'
|
151
|
+
}
|
152
|
+
}
|
153
|
+
},
|
154
|
+
included: [
|
155
|
+
{
|
156
|
+
type: 'inAppPurchasePrices',
|
157
|
+
id: '${price1}',
|
158
|
+
attributes: {
|
159
|
+
startDate: nil
|
160
|
+
},
|
161
|
+
relationships: {
|
162
|
+
inAppPurchaseV2: {
|
163
|
+
data: {
|
164
|
+
type: 'inAppPurchases',
|
165
|
+
id: '<in-app-purchase-id>'
|
166
|
+
}
|
167
|
+
},
|
168
|
+
inAppPurchasePricePoint: {
|
169
|
+
data: {
|
170
|
+
type: 'inAppPurchasePricePoints',
|
171
|
+
id: '<price-point-id>'
|
172
|
+
}
|
173
|
+
}
|
174
|
+
}
|
175
|
+
}
|
176
|
+
]
|
177
|
+
)
|
103
178
|
```
|
104
179
|
|
105
|
-
|
180
|
+
### Add or remove access for a Beta Group to a Build
|
181
|
+
|
182
|
+
```ruby
|
183
|
+
app_store_connect.add_build_beta_groups(
|
184
|
+
id: '<build-id>',
|
185
|
+
data: [{id: '<beta-group-id>'}]
|
186
|
+
)
|
187
|
+
|
188
|
+
app_store_connect.delete_build_beta_groups(
|
189
|
+
id: '<build-id>',
|
190
|
+
data: [{id: '<beta-group-id>'}]
|
191
|
+
)
|
192
|
+
|
193
|
+
```
|
194
|
+
|
195
|
+
## FAQ
|
106
196
|
|
107
197
|
### How to understand the `devices, sales_reports, create_bundle_id` keyword seen in the demo?
|
108
198
|
|
@@ -116,6 +206,18 @@ It's function key from `schema.json` file.
|
|
116
206
|
|
117
207
|
`http_body_type` have a value type. Based on this value, we can find the definition of the relevant configuration in the source code of ruby.
|
118
208
|
|
209
|
+
### How to include related resources?
|
210
|
+
|
211
|
+
```ruby
|
212
|
+
app_store_connect.in_app_purchase(id: 123, include: 'appStoreReviewScreenshot,pricePoints')
|
213
|
+
```
|
214
|
+
|
215
|
+
### How to filter fields?
|
216
|
+
|
217
|
+
```ruby
|
218
|
+
app_store_connect.in_app_purchase(id: 123, fields: 'name,productId')
|
219
|
+
```
|
220
|
+
|
119
221
|
## Development
|
120
222
|
|
121
223
|
After checking out the repo, run `bundle install` to install dependencies. Then, run `rake spec` to run the tests. You can also run `rake console` for an interactive prompt that will allow you to experiment.
|
data/app_store_connect.gemspec
CHANGED
@@ -24,17 +24,21 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.required_ruby_version = '>= 2.7.0'
|
25
25
|
|
26
26
|
spec.add_runtime_dependency 'activesupport', '>= 6.0.0'
|
27
|
-
spec.add_runtime_dependency 'jwt', '>= 1.4'
|
27
|
+
spec.add_runtime_dependency 'jwt', '>= 1.4'
|
28
|
+
spec.add_runtime_dependency 'zeitwerk', '>= 2.6.7'
|
28
29
|
|
29
30
|
spec.add_development_dependency 'bundler'
|
31
|
+
spec.add_development_dependency 'erb', '~> 4.0.2'
|
30
32
|
spec.add_development_dependency 'factory_bot', '~> 6.2.1'
|
33
|
+
spec.add_development_dependency 'github_changelog_generator', '1.16.4'
|
31
34
|
spec.add_development_dependency 'guard-rspec', '~> 4.7.3'
|
32
35
|
spec.add_development_dependency 'pry', '~> 0.14.1'
|
33
36
|
spec.add_development_dependency 'rake', '~> 13.0.6'
|
34
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
35
|
-
spec.add_development_dependency 'rubocop', '~> 1.
|
37
|
+
spec.add_development_dependency 'rspec', '~> 3.12.0'
|
38
|
+
spec.add_development_dependency 'rubocop', '~> 1.50.1'
|
39
|
+
spec.add_development_dependency 'rubyzip'
|
36
40
|
spec.add_development_dependency 'semantic', '~> 1.6.1'
|
37
|
-
spec.add_development_dependency 'simplecov', '~> 0.
|
41
|
+
spec.add_development_dependency 'simplecov', '~> 0.22.0'
|
38
42
|
spec.add_development_dependency 'timecop', '~> 0.9.5'
|
39
43
|
spec.add_development_dependency 'webmock', '~> 3.18.1'
|
40
44
|
end
|
data/assets/banner.png
ADDED
Binary file
|
data/bin/console
ADDED
@@ -1,9 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'app_store_connect/create_request'
|
4
|
-
|
5
3
|
module AppStoreConnect
|
6
|
-
class AppStoreVersionBuildLinkageRequest <
|
4
|
+
class AppStoreVersionBuildLinkageRequest < Request::Body
|
7
5
|
data do
|
8
6
|
id :build_id
|
9
7
|
type 'builds'
|
@@ -1,9 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'app_store_connect/create_request'
|
4
|
-
|
5
3
|
module AppStoreConnect
|
6
|
-
class AppStoreVersionPhasedReleaseCreateRequest <
|
4
|
+
class AppStoreVersionPhasedReleaseCreateRequest < Request::Body
|
7
5
|
data do
|
8
6
|
type 'appStoreVersionPhasedReleases'
|
9
7
|
|
@@ -1,9 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'app_store_connect/create_request'
|
4
|
-
|
5
3
|
module AppStoreConnect
|
6
|
-
class AppStoreVersionPhasedReleaseUpdateRequest <
|
4
|
+
class AppStoreVersionPhasedReleaseUpdateRequest < Request::Body
|
7
5
|
data do
|
8
6
|
id
|
9
7
|
type 'appStoreVersionPhasedReleases'
|
@@ -1,9 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'app_store_connect/create_request'
|
4
|
-
|
5
3
|
module AppStoreConnect
|
6
|
-
class AppStoreVersionReleaseRequestCreateRequest <
|
4
|
+
class AppStoreVersionReleaseRequestCreateRequest < Request::Body
|
7
5
|
data do
|
8
6
|
type 'appStoreVersionReleaseRequests'
|
9
7
|
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AppStoreConnect
|
4
|
+
class Base
|
5
|
+
def initialize(**kwargs)
|
6
|
+
@options = Client::Options.new(kwargs)
|
7
|
+
@authorization = Client::Authorization.new(@options.slice(*Client::Authorization::OPTIONS))
|
8
|
+
@registry = Client::Registry.new(@options.slice(*Client::Registry::OPTIONS))
|
9
|
+
end
|
10
|
+
|
11
|
+
def respond_to_missing?(method_name, include_private = false)
|
12
|
+
web_service_endpoint_aliases.include?(method_name) || super
|
13
|
+
end
|
14
|
+
|
15
|
+
def method_missing(method_name, **kwargs)
|
16
|
+
super unless web_service_endpoint_aliases.include?(method_name)
|
17
|
+
|
18
|
+
web_service_endpoint = web_service_endpoint_by(method_name)
|
19
|
+
|
20
|
+
call(web_service_endpoint, **kwargs)
|
21
|
+
end
|
22
|
+
|
23
|
+
# :nocov:
|
24
|
+
def inspect
|
25
|
+
"#<#{self.class.name}:#{object_id}>"
|
26
|
+
end
|
27
|
+
# :nocov:
|
28
|
+
|
29
|
+
def web_service_endpoint_aliases
|
30
|
+
@registry.keys
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def call(web_service_endpoint, **kwargs)
|
36
|
+
raise "invalid http method: #{web_service_endpoint.http_method}" unless %i[get delete post patch].include?(web_service_endpoint.http_method)
|
37
|
+
|
38
|
+
request = build_request(web_service_endpoint, **kwargs)
|
39
|
+
|
40
|
+
response = request.execute
|
41
|
+
|
42
|
+
Client::Utils.decode(response.body, response.content_type) if response.body
|
43
|
+
end
|
44
|
+
|
45
|
+
def build_uri(web_service_endpoint, **kwargs)
|
46
|
+
URI(web_service_endpoint
|
47
|
+
.url
|
48
|
+
.gsub(/(\{(\w+)\})/) { kwargs.fetch(Regexp.last_match(2).to_sym) })
|
49
|
+
end
|
50
|
+
|
51
|
+
def web_service_endpoint_by(alias_sym)
|
52
|
+
@registry[alias_sym]
|
53
|
+
end
|
54
|
+
|
55
|
+
def http_body(web_service_endpoint, **kwargs)
|
56
|
+
Client::Utils.encode("AppStoreConnect::#{web_service_endpoint.http_body_type}"
|
57
|
+
.constantize
|
58
|
+
.new(**kwargs)
|
59
|
+
.to_h)
|
60
|
+
end
|
61
|
+
|
62
|
+
def build_request(web_service_endpoint, **kwargs)
|
63
|
+
options = {
|
64
|
+
kwargs: kwargs,
|
65
|
+
web_service_endpoint: web_service_endpoint,
|
66
|
+
http_method: web_service_endpoint.http_method,
|
67
|
+
uri: build_uri(web_service_endpoint, **kwargs),
|
68
|
+
headers: headers
|
69
|
+
}
|
70
|
+
|
71
|
+
options[:http_body] = http_body(web_service_endpoint, **kwargs) if web_service_endpoint.http_body_type.present?
|
72
|
+
|
73
|
+
Request.new(**options)
|
74
|
+
end
|
75
|
+
|
76
|
+
def headers
|
77
|
+
{
|
78
|
+
'Authorization' => "Bearer #{@authorization.token}",
|
79
|
+
'Content-Type' => 'application/json'
|
80
|
+
}
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AppStoreConnect
|
4
|
+
class BetaBuildLocalizationCreateRequest < Request::Body
|
5
|
+
data do
|
6
|
+
type 'betaBuildLocalizations'
|
7
|
+
|
8
|
+
attributes do
|
9
|
+
property :locale, required: true
|
10
|
+
property :whats_new
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|