File tree Expand file tree Collapse file tree 3 files changed +34
-0
lines changed Expand file tree Collapse file tree 3 files changed +34
-0
lines changed Original file line number Diff line number Diff line change @@ -72,6 +72,10 @@ class AppleAppV1 < Hanami::API
72
72
status ( 204 )
73
73
end
74
74
75
+ patch "cancel_submission" do
76
+ json ( DOMAIN . cancel_review_submission ( **env [ :app_store_connect_params ] . merge ( params ) ) )
77
+ end
78
+
75
79
patch "start" do
76
80
DOMAIN . start_release ( **env [ :app_store_connect_params ] . merge ( params ) )
77
81
status ( 204 )
Original file line number Diff line number Diff line change @@ -25,6 +25,8 @@ def self.prepare_release(**params) = new(**params).prepare_release(**params.slic
25
25
26
26
def self . create_review_submission ( **params ) = new ( **params ) . create_review_submission ( **params . slice ( :build_number , :version ) )
27
27
28
+ def self . cancel_review_submission ( **params ) = new ( **params ) . cancel_review_submission ( **params . slice ( :build_number , :version ) )
29
+
28
30
def self . release ( **params ) = new ( **params ) . release ( **params . slice ( :build_number ) )
29
31
30
32
def self . start_release ( **params ) = new ( **params ) . start_release ( **params . slice ( :build_number ) )
@@ -244,6 +246,22 @@ def submit_review(submission, edit_version)
244
246
end
245
247
end
246
248
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
+
247
265
# no of api calls: 2
248
266
def release ( build_number : nil )
249
267
execute do
Original file line number Diff line number Diff line change @@ -61,6 +61,18 @@ def as_json
61
61
end
62
62
end
63
63
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
+
64
76
class BuildMismatchError < StandardError
65
77
MSG = "The build on the release in app store does not match the build number"
66
78
You can’t perform that action at this time.
0 commit comments