in firebase_admin/_messaging_encoder.py [0:0]
def encode_aps_sound(cls, sound):
"""Encodes an APNs sound configuration into JSON."""
if sound is None:
return None
if sound and isinstance(sound, str):
return sound
if not isinstance(sound, _messaging_utils.CriticalSound):
raise ValueError(
'Aps.sound must be a non-empty string or an instance of CriticalSound class.')
result = {
'name': _Validators.check_string('CriticalSound.name', sound.name, non_empty=True),
'volume': _Validators.check_number('CriticalSound.volume', sound.volume),
}
if sound.critical:
result['critical'] = 1
if not result['name']:
raise ValueError('CriticalSond.name must be a non-empty string.')
volume = result['volume']
if volume is not None and (volume < 0 or volume > 1):
raise ValueError('CriticalSound.volume must be in the interval [0,1].')
return cls.remove_null_values(result)