app_store_connect_api_client 0.35.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +41 -0
  4. data/CHANGELOG.md +9 -0
  5. data/CODE_OF_CONDUCT.md +84 -0
  6. data/Gemfile +5 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +94 -0
  9. data/Rakefile +10 -0
  10. data/app_store_connect_api.gemspec +41 -0
  11. data/lib/app_store_connect_api/authorization.rb +36 -0
  12. data/lib/app_store_connect_api/client.rb +92 -0
  13. data/lib/app_store_connect_api/domain/age_rating_declarations.rb +14 -0
  14. data/lib/app_store_connect_api/domain/app_availabilities.rb +24 -0
  15. data/lib/app_store_connect_api/domain/app_categories.rb +27 -0
  16. data/lib/app_store_connect_api/domain/app_info_localizations.rb +31 -0
  17. data/lib/app_store_connect_api/domain/app_infos.rb +59 -0
  18. data/lib/app_store_connect_api/domain/app_price_points.rb +17 -0
  19. data/lib/app_store_connect_api/domain/app_price_schedules.rb +35 -0
  20. data/lib/app_store_connect_api/domain/app_store_version_localizations.rb +31 -0
  21. data/lib/app_store_connect_api/domain/app_store_version_phased_releases.rb +26 -0
  22. data/lib/app_store_connect_api/domain/app_store_version_release_requests.rb +13 -0
  23. data/lib/app_store_connect_api/domain/app_store_versions.rb +77 -0
  24. data/lib/app_store_connect_api/domain/apps.rb +125 -0
  25. data/lib/app_store_connect_api/domain/beta_app_localizations.rb +41 -0
  26. data/lib/app_store_connect_api/domain/beta_app_review_details.rb +29 -0
  27. data/lib/app_store_connect_api/domain/beta_app_review_submissions.rb +28 -0
  28. data/lib/app_store_connect_api/domain/beta_build_localizations.rb +41 -0
  29. data/lib/app_store_connect_api/domain/beta_groups.rb +81 -0
  30. data/lib/app_store_connect_api/domain/beta_license_agreements.rb +29 -0
  31. data/lib/app_store_connect_api/domain/beta_tester_invitations.rb +14 -0
  32. data/lib/app_store_connect_api/domain/beta_testers.rb +84 -0
  33. data/lib/app_store_connect_api/domain/build_beta_details.rb +29 -0
  34. data/lib/app_store_connect_api/domain/build_beta_notifications.rb +13 -0
  35. data/lib/app_store_connect_api/domain/builds.rb +105 -0
  36. data/lib/app_store_connect_api/domain/bundle_id_capabilities.rb +28 -0
  37. data/lib/app_store_connect_api/domain/bundle_ids.rb +50 -0
  38. data/lib/app_store_connect_api/domain/certificates.rb +29 -0
  39. data/lib/app_store_connect_api/domain/customer_reviews.rb +12 -0
  40. data/lib/app_store_connect_api/domain/devices.rb +31 -0
  41. data/lib/app_store_connect_api/domain/prerelease_versions.rb +27 -0
  42. data/lib/app_store_connect_api/domain/profiles.rb +44 -0
  43. data/lib/app_store_connect_api/domain/review_submission_items.rb +25 -0
  44. data/lib/app_store_connect_api/domain/review_submissions.rb +36 -0
  45. data/lib/app_store_connect_api/domain/sandbox_testers.rb +25 -0
  46. data/lib/app_store_connect_api/domain/user_invitations.rb +36 -0
  47. data/lib/app_store_connect_api/domain/users.rb +55 -0
  48. data/lib/app_store_connect_api/domain.rb +77 -0
  49. data/lib/app_store_connect_api/utils/hash_utils.rb +22 -0
  50. data/lib/app_store_connect_api/utils/relationship_mapper.rb +47 -0
  51. data/lib/app_store_connect_api/utils/string_utils.rb +31 -0
  52. data/lib/app_store_connect_api/version.rb +5 -0
  53. data/lib/app_store_connect_api.rb +28 -0
  54. metadata +198 -0
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnectApi
4
+ module Domain
5
+ module AppPriceSchedules
6
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_an_app_s_price_schedule_information
7
+ def app_price_schedule(app_price_schedule_id, options = {})
8
+ get "/v1/appPriceSchedules/#{app_price_schedule_id}", options
9
+ end
10
+
11
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/add_a_scheduled_price_change_to_an_app
12
+ def create_app_price_schedule(relationships, app_price_ids = [], territory_ids = [])
13
+ post '/v1/appPriceSchedules', data: { relationships: Utils::RelationshipMapper.expand(relationships, 'manualPrices' => 'appPrices', 'baseTerritories' => 'territories'),
14
+ included: Utils::RelationshipMapper.resource_keys(app_price_ids, 'appPrices') +
15
+ Utils::RelationshipMapper.resource_keys(territory_ids, 'territories'),
16
+ type: 'appPriceSchedules' }
17
+ end
18
+
19
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_automatically_generated_prices_for_an_app
20
+ def app_price_schedule_automatic_prices(app_price_schedule_id, options = {})
21
+ get "/v1/appPriceSchedules/#{app_price_schedule_id}/automaticPrices", options
22
+ end
23
+
24
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_manually_chosen_prices_for_an_app
25
+ def app_price_schedule_manual_prices(app_price_schedule_id, options = {})
26
+ get "/v1/appPriceSchedules/#{app_price_schedule_id}/manualPrices", options
27
+ end
28
+
29
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_base_territory_for_an_app_s_price_schedule
30
+ def app_price_schedule_base_territory(app_price_schedule_id, options = {})
31
+ get "/v1/appPriceSchedules/#{app_price_schedule_id}/baseTerritory", options
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnectApi
4
+ module Domain
5
+ module AppStoreVersionLocalizations
6
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_app_store_version_localization_information
7
+ def app_store_version_localization(app_store_version_localization_id, options = {})
8
+ get "/v1/appStoreVersionLocalizations/#{app_store_version_localization_id}", options
9
+ end
10
+
11
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/create_an_app_store_version_localization
12
+ def create_app_store_version_localization(attributes, relationships)
13
+ post '/v1/appStoreVersionLocalizations', data: { attributes: attributes,
14
+ relationships: Utils::RelationshipMapper.expand(relationships),
15
+ type: 'appStoreVersionLocalizations' }
16
+ end
17
+
18
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/modify_an_app_store_version_localization
19
+ def update_app_store_version_localization(app_store_version_localization_id, attributes)
20
+ patch "/v1/appStoreVersionLocalizations/#{app_store_version_localization_id}", data: { attributes: attributes,
21
+ id: app_store_version_localization_id,
22
+ type: 'appStoreVersionLocalizations' }
23
+ end
24
+
25
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/delete_an_app_store_version_localization
26
+ def delete_app_store_version_localization(app_store_version_localization_id)
27
+ delete "/v1/appStoreVersionLocalizations/#{app_store_version_localization_id}"
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnectApi
4
+ module Domain
5
+ module AppStoreVersionPhasedReleases
6
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/create_an_app_store_version_phased_release
7
+ def create_app_store_version_phased_release(attributes, relationships)
8
+ post '/v1/appStoreVersionPhasedReleases', data: { attributes: attributes,
9
+ relationships: Utils::RelationshipMapper.expand(relationships),
10
+ type: 'appStoreVersionPhasedReleases' }
11
+ end
12
+
13
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/modify_an_app_store_version_phased_release
14
+ def update_app_store_version_phased_release(app_store_version_phased_release_id, attributes)
15
+ patch "/v1/appStoreVersionPhasedReleases/#{app_store_version_phased_release_id}", data: { attributes: attributes,
16
+ id: app_store_version_phased_release_id,
17
+ type: 'appStoreVersionPhasedReleases' }
18
+ end
19
+
20
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/delete_an_app_store_version_phased_release
21
+ def delete_app_store_version_phased_release(app_store_version_phased_release_id)
22
+ delete "/v1/appStoreVersionPhasedReleases/#{app_store_version_phased_release_id}"
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnectApi
4
+ module Domain
5
+ module AppStoreVersionReleaseRequests
6
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/manually_release_an_app_store_approved_version_of_your_app
7
+ def create_app_store_version_release_request(relationships)
8
+ post '/v1/appStoreVersionReleaseRequests', data: { relationships: Utils::RelationshipMapper.expand(relationships),
9
+ type: 'appStoreVersionReleaseRequests' }
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnectApi
4
+ module Domain
5
+ module AppStoreVersions
6
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_app_store_version_information
7
+ def app_store_version(app_store_version_id, options = {})
8
+ get "/v1/appStoreVersions/#{app_store_version_id}", options
9
+ end
10
+
11
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/create_an_app_store_version
12
+ def create_app_store_version(attributes, relationships)
13
+ post '/v1/appStoreVersions', data: { attributes: attributes,
14
+ relationships: Utils::RelationshipMapper.expand(relationships),
15
+ type: 'appStoreVersions' }
16
+ end
17
+
18
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/modify_an_app_store_version
19
+ def update_app_store_version(app_store_version_id, attributes = {}, relationships = {})
20
+ patch "/v1/appStoreVersions/#{app_store_version_id}", data: { attributes: attributes,
21
+ relationships: Utils::RelationshipMapper.expand(relationships),
22
+ id: app_store_version_id,
23
+ type: 'appStoreVersions' }
24
+ end
25
+
26
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/delete_an_app_store_version
27
+ def delete_app_store_version(app_store_version_id)
28
+ delete "/v1/appStoreVersions/#{app_store_version_id}"
29
+ end
30
+
31
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_build_information_of_an_app_store_version
32
+ def app_store_version_build(app_store_version_id, options = {})
33
+ get "/v1/appStoreVersions/#{app_store_version_id}/build", options
34
+ end
35
+
36
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/get_the_build_id_for_an_app_store_version
37
+ def app_store_version_build_id(app_store_version_id)
38
+ get "/v1/appStoreVersions/#{app_store_version_id}/relationships/build"
39
+ end
40
+
41
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/modify_the_build_for_an_app_store_version
42
+ def update_app_store_version_build(app_store_version_id, build_id)
43
+ patch "/v1/appStoreVersions/#{app_store_version_id}/relationships/build", data: { id: build_id, type: 'builds' }
44
+ end
45
+
46
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/get_v1_appstoreversions_id_appstoreversionexperiments
47
+ def app_store_version_app_store_version_experiments(app_store_version_id, options = {})
48
+ get "/v1/appStoreVersions/#{app_store_version_id}/appStoreVersionExperiments", options
49
+ end
50
+
51
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_app_store_version_localizations_for_an_app_store_version
52
+ def app_store_version_app_store_version_localizations(app_store_version_id, options = {})
53
+ get "/v1/appStoreVersions/#{app_store_version_id}/appStoreVersionLocalizations", options
54
+ end
55
+
56
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_app_store_version_phased_release_information_of_an_app_store_version
57
+ def app_store_version_app_store_version_phased_release(app_store_version_id, options = {})
58
+ get "/v1/appStoreVersions/#{app_store_version_id}/appStoreVersionPhasedRelease", options
59
+ end
60
+
61
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_app_store_review_details_resource_information_of_an_app_store_version
62
+ def app_store_version_app_store_review_detail(app_store_version_id, options = {})
63
+ get "/v1/appStoreVersions/#{app_store_version_id}/appStoreReviewDetail", options
64
+ end
65
+
66
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_routing_app_coverage_information_of_an_app_store_version
67
+ def app_store_version_routing_app_coverage(app_store_version_id, options = {})
68
+ get "/v1/appStoreVersions/#{app_store_version_id}/routingAppCoverage", options
69
+ end
70
+
71
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_customer_reviews_for_an_app_store_version
72
+ def app_store_version_customer_reviews(app_store_version_id, options = {})
73
+ get "/v1/appStoreVersions/#{app_store_version_id}/customerReviews", options
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,125 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnectApi
4
+ module Domain
5
+ module Apps
6
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_apps
7
+ def apps(options = {})
8
+ get '/v1/apps', options
9
+ end
10
+
11
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_app_information
12
+ def app(app_id, options = {})
13
+ get "/v1/apps/#{app_id}", options
14
+ end
15
+
16
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/modify_an_app
17
+ def update_app(app_id, attributes = {}, app_price_ids = [])
18
+ patch "/v1/apps/#{app_id}", data: { attributes: attributes,
19
+ id: app_id,
20
+ type: 'apps' },
21
+ included: Utils::RelationshipMapper.resource_keys(app_price_ids, 'appPrices')
22
+ end
23
+
24
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_beta_groups_for_an_app
25
+ def app_beta_groups(app_id, options = {})
26
+ get "/v1/apps/#{app_id}/betaGroups", options
27
+ end
28
+
29
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/remove_specified_beta_testers_from_all_groups_and_builds_of_an_app
30
+ def remove_app_beta_testers(app_id, beta_tester_ids)
31
+ delete "/v1/apps/#{app_id}/relationships/betaTesters", data: Utils::RelationshipMapper.resource_keys(beta_tester_ids, 'betaTesters')
32
+ end
33
+
34
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_beta_app_review_details_resource_of_an_app
35
+ def app_beta_app_review_detail(app_id, options = {})
36
+ get "/v1/apps/#{app_id}/betaAppReviewDetail", options
37
+ end
38
+
39
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_beta_license_agreement_of_an_app
40
+ def app_beta_license_agreement(app_id, options = {})
41
+ get "/v1/apps/#{app_id}/betaLicenseAgreement", options
42
+ end
43
+
44
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_beta_app_localizations_of_an_app
45
+ def app_beta_app_localizations(app_id, options = {})
46
+ get "/v1/apps/#{app_id}/betaAppLocalizations", options
47
+ end
48
+
49
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_builds_of_an_app
50
+ def app_builds(app_id, options = {})
51
+ get "/v1/apps/#{app_id}/builds", options
52
+ end
53
+
54
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_prerelease_versions_for_an_app
55
+ def app_prerelease_versions(app_id, options = {})
56
+ get "/v1/apps/#{app_id}/preReleaseVersions", options
57
+ end
58
+
59
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_app_clips_for_an_app
60
+ def app_app_clips(app_id, options = {})
61
+ get "/v1/apps/#{app_id}/appClips", options
62
+ end
63
+
64
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_price_points_for_an_app
65
+ def app_app_price_points(app_id, options = {})
66
+ get "/v1/apps/#{app_id}/appPricePoints", options
67
+ end
68
+
69
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_app_store_versions_for_an_app
70
+ def app_app_store_versions(app_id, options = {})
71
+ get "/v1/apps/#{app_id}/appStoreVersions", options
72
+ end
73
+
74
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_app_infos_for_an_app
75
+ def app_app_infos(app_id, options = {})
76
+ get "/v1/apps/#{app_id}/appInfos", options
77
+ end
78
+
79
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_pre-order_information_of_an_app
80
+ def app_pre_order(app_id, options = {})
81
+ get "/v1/apps/#{app_id}/preOrder", options
82
+ end
83
+
84
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_end_user_license_agreement_information_of_an_app
85
+ def app_end_user_license_agreement(app_id, options = {})
86
+ get "/v1/apps/#{app_id}/endUserLicenseAgreement", options
87
+ end
88
+
89
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_custom_product_pages_for_an_app
90
+ def app_app_custom_product_pages(app_id, options = {})
91
+ get "/v1/apps/#{app_id}/appCustomProductPages", options
92
+ end
93
+
94
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_in-app_purchases_for_an_app
95
+ def app_in_app_purchases(app_id, options = {})
96
+ get "/v1/apps/#{app_id}/inAppPurchasesV2", options
97
+ end
98
+
99
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_promoted_purchases_for_an_app
100
+ def app_promoted_purchases(app_id, options = {})
101
+ get "/v1/apps/#{app_id}/promotedPurchases", options
102
+ end
103
+
104
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/get_review_submissions_for_an_app
105
+ def app_review_submissions(app_id, options = {})
106
+ get "/v1/apps/#{app_id}/reviewSubmissions", options
107
+ end
108
+
109
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_customer_reviews_for_an_app
110
+ def app_customer_reviews(app_id, options = {})
111
+ get "/v1/apps/#{app_id}/customerReviews", options
112
+ end
113
+
114
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_price_schedule_information_for_an_app
115
+ def app_app_price_schedule(app_id, options = {})
116
+ get "/v1/apps/#{app_id}/appPriceSchedule", options
117
+ end
118
+
119
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_availability_for_an_app
120
+ def app_app_availability(app_id, options = {})
121
+ get "/v1/apps/#{app_id}/appAvailability", options
122
+ end
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnectApi
4
+ module Domain
5
+ module BetaAppLocalizations
6
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_beta_app_localizations
7
+ def beta_app_localizations(options = {})
8
+ get '/v1/betaAppLocalizations', options
9
+ end
10
+
11
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_beta_app_localization_information
12
+ def beta_app_localization(beta_app_localization_id, options = {})
13
+ get "/v1/betaAppLocalizations/#{beta_app_localization_id}", options
14
+ end
15
+
16
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/create_a_beta_app_localization
17
+ def create_beta_app_localization(attributes, relationships)
18
+ post '/v1/betaAppLocalizations', data: { attributes: attributes,
19
+ relationships: Utils::RelationshipMapper.expand(relationships),
20
+ type: 'betaAppLocalizations' }
21
+ end
22
+
23
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/modify_a_beta_app_localization
24
+ def update_beta_app_localization(beta_app_localization_id, attributes)
25
+ patch "/v1/betaAppLocalizations/#{beta_app_localization_id}", data: { attributes: attributes,
26
+ id: beta_app_localization_id,
27
+ type: 'betaAppLocalizations' }
28
+ end
29
+
30
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/delete_a_beta_app_localization
31
+ def delete_beta_app_localization(beta_app_localization_id)
32
+ delete "/v1/betaAppLocalizations/#{beta_app_localization_id}"
33
+ end
34
+
35
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_app_information_of_a_beta_app_localization
36
+ def beta_app_localization_app(beta_app_localization_id, options = {})
37
+ get "/v1/betaAppLocalizations/#{beta_app_localization_id}/app", options
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnectApi
4
+ module Domain
5
+ module BetaAppReviewDetails
6
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_beta_app_review_details
7
+ def beta_app_review_details(options = {})
8
+ get '/v1/betaAppReviewDetails', options
9
+ end
10
+
11
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_beta_app_review_detail_information
12
+ def beta_app_review_detail(beta_app_review_detail_id, options = {})
13
+ get "/v1/betaAppReviewDetails/#{beta_app_review_detail_id}", options
14
+ end
15
+
16
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/modify_a_beta_app_review_detail
17
+ def update_beta_app_review_detail(beta_app_review_detail_id, attributes)
18
+ patch "/v1/betaAppReviewDetails/#{beta_app_review_detail_id}", data: { attributes: attributes,
19
+ id: beta_app_review_detail_id,
20
+ type: 'betaAppReviewDetails' }
21
+ end
22
+
23
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_app_information_of_a_beta_app_review_detail
24
+ def beta_app_review_detail_app(beta_app_review_detail_id, options = {})
25
+ get "/v1/betaAppReviewDetails/#{beta_app_review_detail_id}/app", options
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnectApi
4
+ module Domain
5
+ module BetaAppReviewSubmissions
6
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_beta_app_review_submissions
7
+ def beta_app_review_submissions(options = {})
8
+ get '/v1/betaAppReviewSubmissions', options
9
+ end
10
+
11
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_beta_app_review_submission_information
12
+ def beta_app_review_submission(beta_app_review_submission_id, options = {})
13
+ get "/v1/betaAppReviewSubmissions/#{beta_app_review_submission_id}", options
14
+ end
15
+
16
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/submit_an_app_for_beta_review
17
+ def create_beta_app_review_submission(relationships)
18
+ post '/v1/betaAppReviewSubmissions', data: { relationships: Utils::RelationshipMapper.expand(relationships),
19
+ type: 'betaAppReviewSubmissions' }
20
+ end
21
+
22
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_build_information_of_a_beta_app_review_submission
23
+ def beta_app_review_submission_build(beta_app_review_submission_id, options = {})
24
+ get "/v1/betaAppReviewSubmissions/#{beta_app_review_submission_id}/build", options
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnectApi
4
+ module Domain
5
+ module BetaBuildLocalizations
6
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_beta_build_localizations
7
+ def beta_build_localizations(options = {})
8
+ get '/v1/betaBuildLocalizations', options
9
+ end
10
+
11
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_beta_build_localization_information
12
+ def beta_build_localization(beta_build_localization_id, options = {})
13
+ get "/v1/betaBuildLocalizations/#{beta_build_localization_id}", options
14
+ end
15
+
16
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/create_a_beta_build_localization
17
+ def create_beta_build_localization(attributes, relationships)
18
+ post '/v1/betaBuildLocalizations', data: { attributes: attributes,
19
+ relationships: Utils::RelationshipMapper.expand(relationships),
20
+ type: 'betaBuildLocalizations' }
21
+ end
22
+
23
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/modify_a_beta_build_localization
24
+ def update_beta_build_localization(beta_build_localization_id, attributes)
25
+ patch "/v1/betaBuildLocalizations/#{beta_build_localization_id}", data: { attributes: attributes,
26
+ id: beta_build_localization_id,
27
+ type: 'betaBuildLocalizations' }
28
+ end
29
+
30
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/delete_a_beta_build_localization
31
+ def delete_beta_build_localization(beta_build_localization_id)
32
+ delete "/v1/betaBuildLocalizations/#{beta_build_localization_id}"
33
+ end
34
+
35
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_build_information_of_a_beta_build_localization
36
+ def beta_build_localization_build(beta_build_localization_id, options = {})
37
+ get "/v1/betaBuildLocalizations/#{beta_build_localization_id}/build", options
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnectApi
4
+ module Domain
5
+ module BetaGroups
6
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_beta_groups
7
+ def beta_groups(options = {})
8
+ get '/v1/betaGroups', options
9
+ end
10
+
11
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_beta_group_information
12
+ def beta_group(beta_group_id, options = {})
13
+ get "/v1/betaGroups/#{beta_group_id}", options
14
+ end
15
+
16
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/create_a_beta_group
17
+ def create_beta_group(attributes, relationships)
18
+ post '/v1/betaGroups', data: { attributes: attributes,
19
+ relationships: Utils::RelationshipMapper.expand(relationships),
20
+ type: 'betaGroups' }
21
+ end
22
+
23
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/modify_a_beta_group
24
+ def update_beta_group(beta_group_id, attributes)
25
+ patch "/v1/betaGroups/#{beta_group_id}", data: { attributes: attributes,
26
+ id: beta_group_id,
27
+ type: 'betaGroups' }
28
+ end
29
+
30
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/delete_a_beta_group
31
+ def delete_beta_group(beta_group_id)
32
+ delete "/v1/betaGroups/#{beta_group_id}"
33
+ end
34
+
35
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_app_information_of_a_beta_group
36
+ def beta_group_app(beta_group_id, options = {})
37
+ get "/v1/betaGroups/#{beta_group_id}/app", options
38
+ end
39
+
40
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_beta_testers_in_a_beta_group
41
+ def beta_group_beta_testers(beta_group_id, options = {})
42
+ get "/v1/betaGroups/#{beta_group_id}/betaTesters", options
43
+ end
44
+
45
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/get_all_beta_tester_ids_in_a_beta_group
46
+ def beta_group_beta_tester_ids(beta_group_id, options = {})
47
+ get "/v1/betaGroups/#{beta_group_id}/relationships/betaTesters", options
48
+ end
49
+
50
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/add_beta_testers_to_a_beta_group
51
+ def add_beta_group_beta_testers(beta_group_id, beta_tester_ids)
52
+ post "/v1/betaGroups/#{beta_group_id}/relationships/betaTesters", data: Utils::RelationshipMapper.resource_keys(beta_tester_ids, 'betaTesters')
53
+ end
54
+
55
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/remove_beta_testers_from_a_beta_group
56
+ def remove_beta_group_beta_testers(beta_group_id, beta_tester_ids)
57
+ delete "/v1/betaGroups/#{beta_group_id}/relationships/betaTesters", data: Utils::RelationshipMapper.resource_keys(beta_tester_ids, 'betaTesters')
58
+ end
59
+
60
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_all_builds_for_a_beta_group
61
+ def beta_group_builds(beta_group_id, options = {})
62
+ get "/v1/betaGroups/#{beta_group_id}/builds", options
63
+ end
64
+
65
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/get_all_build_ids_in_a_beta_group
66
+ def beta_group_build_ids(beta_group_id, options = {})
67
+ get "/v1/betaGroups/#{beta_group_id}/relationships/builds", options
68
+ end
69
+
70
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/add_builds_to_a_beta_group
71
+ def add_beta_group_builds(beta_group_id, build_ids)
72
+ post "/v1/betaGroups/#{beta_group_id}/relationships/builds", data: Utils::RelationshipMapper.resource_keys(build_ids, 'builds')
73
+ end
74
+
75
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/remove_builds_from_a_beta_group
76
+ def remove_beta_group_builds(beta_group_id, build_ids)
77
+ delete "/v1/betaGroups/#{beta_group_id}/relationships/builds", data: Utils::RelationshipMapper.resource_keys(build_ids, 'builds')
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnectApi
4
+ module Domain
5
+ module BetaLicenseAgreements
6
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/list_beta_license_agreements
7
+ def beta_license_agreements(options = {})
8
+ get '/v1/betaLicenseAgreements', options
9
+ end
10
+
11
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_beta_license_agreement_information
12
+ def beta_license_agreement(beta_license_agreement_id, options = {})
13
+ get "/v1/betaLicenseAgreements/#{beta_license_agreement_id}", options
14
+ end
15
+
16
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/modify_a_beta_license_agreement
17
+ def update_beta_license_agreement(beta_license_agreement_id, attributes)
18
+ patch "/v1/betaLicenseAgreements/#{beta_license_agreement_id}", data: { attributes: attributes,
19
+ id: beta_license_agreement_id,
20
+ type: 'betaLicenseAgreements' }
21
+ end
22
+
23
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/read_the_app_information_of_a_beta_license_agreement
24
+ def beta_license_agreement_app(beta_license_agreement_id, options = {})
25
+ get "/v1/betaLicenseAgreements/#{beta_license_agreement_id}/app", options
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreConnectApi
4
+ module Domain
5
+ module BetaTesterInvitations
6
+ # @see https://developer.apple.com/documentation/appstoreconnectapi/send_an_invitation_to_a_beta_tester
7
+ def create_beta_tester_invitation(relationships)
8
+ post '/v1/betaTesterInvitations', data: { relationships: Utils::RelationshipMapper.expand(relationships),
9
+ type: 'betaTesterInvitations' }
10
+ end
11
+ alias invite_beta_tester create_beta_tester_invitation
12
+ end
13
+ end
14
+ end