Skip to content

Commit 4f11d75

Browse files
feat: Support create sign request with template ID (#834)
* support create sign request calls with sign template IDs * Update sign request template id --------- Co-authored-by: Minh Nguyen Cong <mcong@box.com>
1 parent b709d6b commit 4f11d75

File tree

4 files changed

+15
-4
lines changed

4 files changed

+15
-4
lines changed

boxsdk/client/client.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1525,6 +1525,7 @@ def create_sign_request(
15251525
is_document_preparation_needed: Optional[bool] = None,
15261526
redirect_url: Optional[str] = None,
15271527
declined_redirect_url: Optional[str] = None,
1528+
template_id: Optional[str] = None,
15281529
) -> dict:
15291530
"""
15301531
Used to create a new sign request.
@@ -1561,6 +1562,8 @@ def create_sign_request(
15611562
If no declined redirect URL is specified, this URL will be used for decline actions as well.
15621563
:param declined_redirect_url:
15631564
The URL that a signer will be redirected to after declining to sign a document.
1565+
:param template_id:
1566+
The ID of the sign template to use for the sign request.
15641567
:returns:
15651568
A dictionary representing a created SignRequest
15661569
"""
@@ -1595,6 +1598,9 @@ def create_sign_request(
15951598
body['redirect_url'] = redirect_url
15961599
if declined_redirect_url:
15971600
body['declined_redirect_url'] = declined_redirect_url
1601+
if template_id:
1602+
body['template_id'] = template_id
1603+
15981604
box_response = self._session.post(url, data=json.dumps(body))
15991605
response = box_response.json()
16001606
return self.translator.translate(

docs/usage/sign_requests.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ A Sign Request can refer to one or more Box Files and can be sent to one or more
1919
Create Sign Request
2020
------------------------
2121

22-
The [`client.create_sign_request(files, signers, parent_folder_id, prefill_tags=None, are_reminders_enabled=None, are_text_signatures_enabled=None, days_valid=None, email_message=None, email_subject=None, external_id=None, is_document_preparation_needed=None, redirect_url=None, declined_redirect_url=None)`][create-sign-request]
22+
The [`client.create_sign_request(files, signers, parent_folder_id, prefill_tags=None, are_reminders_enabled=None, are_text_signatures_enabled=None, days_valid=None, email_message=None, email_subject=None, external_id=None, is_document_preparation_needed=None, redirect_url=None, declined_redirect_url=None, template_id=None)`][create-sign-request]
2323
method will create a Sign Request. You need to provide at least one file and up to 10 files (from which the signing document will be created) with at least one signer to receive the Sign Request.
2424

2525
<!-- sample post_sign_requests -->

test/unit/client/test_client.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1658,7 +1658,8 @@ def mock_sign_request_response():
16581658
}
16591659
}
16601660
],
1661-
'status': 'converting'
1661+
'status': 'converting',
1662+
'template_id': '123075213-af2c8822-3ef2-4952-8557-52d69c2fe9cb'
16621663
}
16631664
return mock_sign_request
16641665

@@ -1688,6 +1689,7 @@ def test_create_sign_request(mock_client, mock_box_session, mock_sign_request_re
16881689
expected_url = f'{API.BASE_API_URL}/sign_requests'
16891690
redirect_url = 'https://www.box.com/accepted'
16901691
declined_redirect_url = 'https://www.box.com/declined'
1692+
template_id = '123075213-af2c8822-3ef2-4952-8557-52d69c2fe9cb'
16911693
source_file = {
16921694
'id': '12345',
16931695
'type': 'file'
@@ -1727,12 +1729,13 @@ def test_create_sign_request(mock_client, mock_box_session, mock_sign_request_re
17271729
},
17281730
'redirect_url': redirect_url,
17291731
'declined_redirect_url': declined_redirect_url,
1732+
'template_id': template_id
17301733
})
17311734
mock_box_session.post.return_value.json.return_value = mock_sign_request_response
17321735

17331736
new_sign_request = mock_client.create_sign_request(
17341737
files, signers, parent_folder_id,
1735-
redirect_url=redirect_url, declined_redirect_url=declined_redirect_url)
1738+
redirect_url=redirect_url, declined_redirect_url=declined_redirect_url, template_id=template_id)
17361739

17371740
mock_box_session.post.assert_called_once_with(expected_url, data=data)
17381741
assert isinstance(new_sign_request, SignRequest)
@@ -1741,6 +1744,7 @@ def test_create_sign_request(mock_client, mock_box_session, mock_sign_request_re
17411744
assert new_sign_request['parent_folder']['id'] == parent_folder_id
17421745
assert new_sign_request['redirect_url'] == redirect_url
17431746
assert new_sign_request['declined_redirect_url'] == declined_redirect_url
1747+
assert new_sign_request['template_id'] == template_id
17441748

17451749

17461750
def test_file_request(mock_client):

test/unit/object/test_sign_request.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,8 @@ def mock_sign_request_response():
107107
}
108108
}
109109
],
110-
'status': 'cancelled'
110+
'status': 'cancelled',
111+
'template_id': '123075213-af2c8822-3ef2-4952-8557-52d69c2fe9cb'
111112
}
112113
return mock_sign_request
113114

0 commit comments

Comments
 (0)