diff --git a/appstoreconnect/api.py b/appstoreconnect/api.py index 83f8852..20178dc 100644 --- a/appstoreconnect/api.py +++ b/appstoreconnect/api.py @@ -34,7 +34,7 @@ def __init__(self, error_string, status_code): class Api: - def __init__(self, key_id, key_file, issuer_id, submit_stats=True): + def __init__(self, key_id, key_file, issuer_id, submit_stats=False): self._token = None self.token_gen_date = None self.exp = None @@ -165,6 +165,10 @@ def __init__(self, api, url): self.total_length = None self.payload = None + def __getitem__(self, item): + items = list(self) + return items[item] + def __iter__(self): return self @@ -665,6 +669,13 @@ def list_profiles(self, filters=None, sort=None): """ return self._get_resources(Profile, filters, sort) + def read_profile(self, profileId): + """ + :reference: https://developer.apple.com/documentation/appstoreconnectapi/read_and_download_profile_information + :return: an iterator over Profile resources + """ + return self._get_resource(Profile, profileId) + def get_build_info(self, build_id): """ :reference: https://developer.apple.com/documentation/appstoreconnectapi/read_build_information @@ -757,6 +768,7 @@ def modify_app_info(self, app_information: AppInfo, primaryCategory: str = None, """ return self._modify_resource(app_information, locals()) + # Reporting def download_finance_reports(self, filters=None, split_response=False, save_to=None): # setup required filters if not provided diff --git a/appstoreconnect/resources.py b/appstoreconnect/resources.py index 1bc6313..27a9895 100644 --- a/appstoreconnect/resources.py +++ b/appstoreconnect/resources.py @@ -281,6 +281,13 @@ class UserInvitation(Resource): # Provisioning class BundleId(Resource): endpoint = '/v1/bundleIds' + type = 'bundleIds' + attributes = ['identifier', 'name', 'platform', 'seedId'] + relationships = { + 'profiles': {'multiple': True}, + 'bundleIdCapabilities': {'multiple': True}, + 'app': {'multiple': False}, + } documentation = 'https://developer.apple.com/documentation/appstoreconnectapi/bundleid/attributes' @@ -301,7 +308,13 @@ class Device(Resource): class Profile(Resource): endpoint = '/v1/profiles' documentation = 'https://developer.apple.com/documentation/appstoreconnectapi/profile/attributes' - + type = 'profiles' + attributes = ['name', 'platform', 'profileContent', 'uuid', 'createdDate', 'profileState', 'profileType', 'expirationDate'] + relationships = { + 'certificates': {'multiple': True}, + 'devices': {'multiple': True}, + 'bundleId': {'multiple': False}, + } # Reporting