Esempio n. 1
0
 def read(self, device: Union[LinkedResourceData, ResourceId]) -> Device:
     """
     https://developer.apple.com/documentation/appstoreconnectapi/read_device_information
     """
     device_id = self._get_resource_id(device)
     response = self.client.session.get(
         f'{self.client.API_URL}/devices/{device_id}').json()
     return Device(response['data'])
Esempio n. 2
0
 def list_devices(self, profile: Union[Profile,
                                       ResourceId]) -> List[Device]:
     """
     https://developer.apple.com/documentation/appstoreconnectapi/list_all_devices_in_a_profile
     """
     if isinstance(profile, Profile):
         url = profile.relationships.profiles.links.related
     else:
         url = f'{self.client.API_URL}/profiles/{profile}/devices'
     return [Device(device) for device in self.client.paginate(url)]
Esempio n. 3
0
 def list(self,
          resource_filter: Filter = Filter(),
          ordering=Ordering.NAME,
          reverse=False) -> List[Device]:
     """
     https://developer.apple.com/documentation/appstoreconnectapi/list_devices
     """
     params = {
         'sort': ordering.as_param(reverse),
         **resource_filter.as_query_params()
     }
     devices = self.client.paginate(f'{self.client.API_URL}/devices',
                                    params=params)
     return [Device(device) for device in devices]
Esempio n. 4
0
 def create(self, name: str, platform: BundleIdPlatform,
            udid: str) -> Device:
     """
     https://developer.apple.com/documentation/appstoreconnectapi/register_a_new_device
     """
     attributes = {
         'name': name,
         'platform': platform.value,
         'udid': udid,
     }
     response = self.client.session.post(f'{self.client.API_URL}/devices',
                                         json=self._get_create_payload(
                                             ResourceType.DEVICES,
                                             attributes=attributes)).json()
     return Device(response['data'], created=True)
Esempio n. 5
0
 def modify(self,
            device: Union[LinkedResourceData, ResourceId],
            name: Optional[str] = None,
            status: Optional[DeviceStatus] = None) -> Device:
     """
     https://developer.apple.com/documentation/appstoreconnectapi/modify_a_registered_device
     """
     device_id = self._get_resource_id(device)
     attributes = {}
     if name is not None:
         attributes['name'] = name
     if status is not None:
         attributes['status'] = status.value
     payload = self._get_update_payload(device_id,
                                        ResourceType.DEVICES,
                                        attributes=attributes)
     response = self.client.session.patch(
         f'{self.client.API_URL}/devices/{device_id}', json=payload).json()
     return Device(response['data'])
Esempio n. 6
0
def test_device_initialization(api_device):
    device = Device(api_device)
    assert device.dict() == api_device