Skip to content

Commit 6e9058f

Browse files
committed
Add link_domain to ActionCodeSettings; update encode_action_code_settings to handle link_domain
1 parent 2d9b18c commit 6e9058f

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

firebase_admin/_user_mgt.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -490,14 +490,16 @@ class ActionCodeSettings:
490490
"""
491491

492492
def __init__(self, url, handle_code_in_app=None, dynamic_link_domain=None, ios_bundle_id=None,
493-
android_package_name=None, android_install_app=None, android_minimum_version=None):
493+
android_package_name=None, android_install_app=None, android_minimum_version=None,
494+
link_domain=None):
494495
self.url = url
495496
self.handle_code_in_app = handle_code_in_app
496497
self.dynamic_link_domain = dynamic_link_domain
497498
self.ios_bundle_id = ios_bundle_id
498499
self.android_package_name = android_package_name
499500
self.android_install_app = android_install_app
500501
self.android_minimum_version = android_minimum_version
502+
self.link_domain = link_domain
501503

502504

503505
def encode_action_code_settings(settings):
@@ -535,6 +537,13 @@ def encode_action_code_settings(settings):
535537
.format(settings.dynamic_link_domain))
536538
parameters['dynamicLinkDomain'] = settings.dynamic_link_domain
537539

540+
# link_domain
541+
if settings.link_domain is not None:
542+
if not isinstance(settings.link_domain, str):
543+
raise ValueError('Invalid value provided for link_domain: {0}'
544+
.format(settings.link_domain))
545+
parameters['linkDomain'] = settings.link_domain
546+
538547
# ios_bundle_id
539548
if settings.ios_bundle_id is not None:
540549
if not isinstance(settings.ios_bundle_id, str):

tests/test_user_mgt.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@
4343
MOCK_ACTION_CODE_DATA = {
4444
'url': 'http://localhost',
4545
'handle_code_in_app': True,
46-
'dynamic_link_domain': 'http://testly',
46+
'dynamic_link_domain': 'http://dynamic-link-domain',
47+
'link_domain': 'http://link-domain',
4748
'ios_bundle_id': 'test.bundle',
4849
'android_package_name': 'test.bundle',
4950
'android_minimum_version': '7',
@@ -1364,7 +1365,8 @@ def test_valid_data(self):
13641365
data = {
13651366
'url': 'http://localhost',
13661367
'handle_code_in_app': True,
1367-
'dynamic_link_domain': 'http://testly',
1368+
'dynamic_link_domain': 'http://dynamic-link-domain',
1369+
'link_domain': 'http://link-domain',
13681370
'ios_bundle_id': 'test.bundle',
13691371
'android_package_name': 'test.bundle',
13701372
'android_minimum_version': '7',
@@ -1375,6 +1377,7 @@ def test_valid_data(self):
13751377
assert parameters['continueUrl'] == data['url']
13761378
assert parameters['canHandleCodeInApp'] == data['handle_code_in_app']
13771379
assert parameters['dynamicLinkDomain'] == data['dynamic_link_domain']
1380+
assert parameters['linkDomain'] == data['link_domain']
13781381
assert parameters['iOSBundleId'] == data['ios_bundle_id']
13791382
assert parameters['androidPackageName'] == data['android_package_name']
13801383
assert parameters['androidMinimumVersion'] == data['android_minimum_version']
@@ -1535,6 +1538,7 @@ def _validate_request(self, request, settings=None):
15351538
assert request['continueUrl'] == settings.url
15361539
assert request['canHandleCodeInApp'] == settings.handle_code_in_app
15371540
assert request['dynamicLinkDomain'] == settings.dynamic_link_domain
1541+
assert request['linkDomain'] == settings.link_domain
15381542
assert request['iOSBundleId'] == settings.ios_bundle_id
15391543
assert request['androidPackageName'] == settings.android_package_name
15401544
assert request['androidMinimumVersion'] == settings.android_minimum_version

0 commit comments

Comments
 (0)