Skip to content

Commit 0c0c4ab

Browse files
authored
API to remove a release from review (#30)
1 parent 2556deb commit 0c0c4ab

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed

config.ru

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ class AppleAppV1 < Hanami::API
7272
status(204)
7373
end
7474

75+
patch "cancel_submission" do
76+
json(DOMAIN.cancel_review_submission(**env[:app_store_connect_params].merge(params)))
77+
end
78+
7579
patch "start" do
7680
DOMAIN.start_release(**env[:app_store_connect_params].merge(params))
7781
status(204)

lib/app_store/connect.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ def self.prepare_release(**params) = new(**params).prepare_release(**params.slic
2525

2626
def self.create_review_submission(**params) = new(**params).create_review_submission(**params.slice(:build_number, :version))
2727

28+
def self.cancel_review_submission(**params) = new(**params).cancel_review_submission(**params.slice(:build_number, :version))
29+
2830
def self.release(**params) = new(**params).release(**params.slice(:build_number))
2931

3032
def self.start_release(**params) = new(**params).start_release(**params.slice(:build_number))
@@ -244,6 +246,22 @@ def submit_review(submission, edit_version)
244246
end
245247
end
246248

249+
def cancel_review_submission(build_number:, version:)
250+
execute do
251+
edit_version = app
252+
.get_app_store_versions(includes: "build", filter: INFLIGHT_RELEASE_FILTERS)
253+
.find { |v| v.build&.version == build_number.to_s && v.version_string == version }
254+
raise VersionNotFoundError unless edit_version
255+
256+
sub = app.get_in_progress_review_submission(platform: IOS_PLATFORM)
257+
258+
raise SubmissionNotFoundError unless sub
259+
sub.cancel_submission
260+
261+
version_data(app.get_edit_app_store_version(includes: VERSION_DATA_INCLUDES))
262+
end
263+
end
264+
247265
# no of api calls: 2
248266
def release(build_number: nil)
249267
execute do

lib/app_store/errors.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,18 @@ def as_json
6161
end
6262
end
6363

64+
class SubmissionNotFoundError < StandardError
65+
MSG = "No in progress review submission found"
66+
67+
def initialize(msg = MSG)
68+
super
69+
end
70+
71+
def as_json
72+
AppStore.error_as_json(:submission, :not_found, MSG)
73+
end
74+
end
75+
6476
class BuildMismatchError < StandardError
6577
MSG = "The build on the release in app store does not match the build number"
6678

0 commit comments

Comments
 (0)