@@ -1512,7 +1512,68 @@ def sign_request(self, sign_request_id: str) -> 'SignRequest':
15121512 """
15131513 return self .translator .get ('sign_request' )(session = self ._session , object_id = sign_request_id )
15141514
1515+ # pylint: disable=too-many-branches
1516+ def __create_sign_request (
1517+ self ,
1518+ signers : Iterable ,
1519+ files : Optional [Iterable ] = None ,
1520+ parent_folder_id : Optional [str ] = None ,
1521+ prefill_tags : Optional [Iterable ] = None ,
1522+ are_reminders_enabled : Optional [bool ] = None ,
1523+ are_text_signatures_enabled : Optional [bool ] = None ,
1524+ days_valid : Optional [str ] = None ,
1525+ email_message : Optional [Iterable ] = None ,
1526+ email_subject : Optional [str ] = None ,
1527+ external_id : Optional [str ] = None ,
1528+ is_document_preparation_needed : Optional [bool ] = None ,
1529+ redirect_url : Optional [str ] = None ,
1530+ declined_redirect_url : Optional [str ] = None ,
1531+ template_id : Optional [str ] = None ) -> 'SignRequest' :
1532+ url = self ._session .get_url ('sign_requests' )
1533+
1534+ body = {
1535+ 'signers' : signers ,
1536+ }
1537+
1538+ if files :
1539+ body ['source_files' ] = files
1540+ if parent_folder_id :
1541+ body ['parent_folder' ] = {
1542+ 'id' : parent_folder_id ,
1543+ 'type' : 'folder'
1544+ }
1545+ if prefill_tags :
1546+ body ['prefill_tags' ] = prefill_tags
1547+ if are_reminders_enabled :
1548+ body ['are_reminders_enabled' ] = are_reminders_enabled
1549+ if are_text_signatures_enabled :
1550+ body ['are_text_signatures_enabled' ] = are_text_signatures_enabled
1551+ if days_valid :
1552+ body ['days_valid' ] = days_valid
1553+ if email_message :
1554+ body ['email_message' ] = email_message
1555+ if email_subject :
1556+ body ['email_subject' ] = email_subject
1557+ if external_id :
1558+ body ['external_id' ] = external_id
1559+ if is_document_preparation_needed :
1560+ body ['is_document_preparation_needed' ] = is_document_preparation_needed
1561+ if redirect_url :
1562+ body ['redirect_url' ] = redirect_url
1563+ if declined_redirect_url :
1564+ body ['declined_redirect_url' ] = declined_redirect_url
1565+ if template_id :
1566+ body ['template_id' ] = template_id
1567+
1568+ box_response = self ._session .post (url , data = json .dumps (body ))
1569+ response = box_response .json ()
1570+ return self .translator .translate (
1571+ session = self ._session ,
1572+ response_object = response ,
1573+ )
1574+
15151575 @api_call
1576+ @deprecated ('Use create_sign_request_v2 instead' )
15161577 def create_sign_request (
15171578 self ,
15181579 files : Iterable ,
@@ -1529,7 +1590,7 @@ def create_sign_request(
15291590 redirect_url : Optional [str ] = None ,
15301591 declined_redirect_url : Optional [str ] = None ,
15311592 template_id : Optional [str ] = None ,
1532- ) -> dict :
1593+ ) -> 'SignRequest' :
15331594 """
15341595 Used to create a new sign request.
15351596
@@ -1570,46 +1631,71 @@ def create_sign_request(
15701631 :returns:
15711632 A dictionary representing a created SignRequest
15721633 """
1573- url = self ._session .get_url ('sign_requests' )
1634+ return self .__create_sign_request (
1635+ signers , files , parent_folder_id , prefill_tags , are_reminders_enabled , are_text_signatures_enabled , days_valid , email_message ,
1636+ email_subject , external_id , is_document_preparation_needed , redirect_url , declined_redirect_url , template_id )
15741637
1575- body = {
1576- 'source_files' : files ,
1577- 'signers' : signers ,
1578- 'parent_folder' : {
1579- 'id' : parent_folder_id ,
1580- 'type' : 'folder'
1581- }
1582- }
1583-
1584- if prefill_tags :
1585- body ['prefill_tags' ] = prefill_tags
1586- if are_reminders_enabled :
1587- body ['are_reminders_enabled' ] = are_reminders_enabled
1588- if are_text_signatures_enabled :
1589- body ['are_text_signatures_enabled' ] = are_text_signatures_enabled
1590- if days_valid :
1591- body ['days_valid' ] = days_valid
1592- if email_message :
1593- body ['email_message' ] = email_message
1594- if email_subject :
1595- body ['email_subject' ] = email_subject
1596- if external_id :
1597- body ['external_id' ] = external_id
1598- if is_document_preparation_needed :
1599- body ['is_document_preparation_needed' ] = is_document_preparation_needed
1600- if redirect_url :
1601- body ['redirect_url' ] = redirect_url
1602- if declined_redirect_url :
1603- body ['declined_redirect_url' ] = declined_redirect_url
1604- if template_id :
1605- body ['template_id' ] = template_id
1638+ @api_call
1639+ def create_sign_request_v2 (
1640+ self ,
1641+ signers : Iterable ,
1642+ files : Optional [Iterable ] = None ,
1643+ parent_folder_id : Optional [str ] = None ,
1644+ prefill_tags : Optional [Iterable ] = None ,
1645+ are_reminders_enabled : Optional [bool ] = None ,
1646+ are_text_signatures_enabled : Optional [bool ] = None ,
1647+ days_valid : Optional [str ] = None ,
1648+ email_message : Optional [Iterable ] = None ,
1649+ email_subject : Optional [str ] = None ,
1650+ external_id : Optional [str ] = None ,
1651+ is_document_preparation_needed : Optional [bool ] = None ,
1652+ redirect_url : Optional [str ] = None ,
1653+ declined_redirect_url : Optional [str ] = None ,
1654+ template_id : Optional [str ] = None ,
1655+ ) -> 'SignRequest' :
1656+ """
1657+ Used to create a new sign request.
16061658
1607- box_response = self ._session .post (url , data = json .dumps (body ))
1608- response = box_response .json ()
1609- return self .translator .translate (
1610- session = self ._session ,
1611- response_object = response ,
1612- )
1659+ :param signers:
1660+ List of signers for the sign request. 35 is the max number of signers permitted.
1661+ :param files:
1662+ List of files to create a signing document from.
1663+ :param parent_folder_id:
1664+ The id of the destination folder to place sign request specific data in.
1665+ :param prefill_tags:
1666+ When a document contains sign related tags in the content,
1667+ you can prefill them using this prefill_tags by referencing the 'id' of the tag as the external_id field of the prefill tag.
1668+ :param are_reminders_enabled:
1669+ Reminds signers to sign a document on day 3, 8, 13 and 18. Reminders are only sent to outstanding signers.
1670+ :param are_text_signatures_enabled:
1671+ Disables the usage of signatures generated by typing (text).
1672+ :param days_valid:
1673+ Number of days after which this request will automatically expire if not completed.
1674+ :param email_message:
1675+ Message to include in sign request email. The field is cleaned through sanitization of specific characters.
1676+ However, some html tags are allowed. Links included in the message are also converted to hyperlinks in the email.
1677+ The message may contain the following html tags including a, abbr, acronym, b, blockquote, code, em, i, ul, li, ol, and strong.
1678+ Be aware that when the text to html ratio is too high, the email may end up in spam filters. Custom styles on these tags are not allowed.
1679+ If this field is not passed, a default message will be used.
1680+ :param email_subject:
1681+ Subject of sign request email. This is cleaned by sign request. If this field is not passed, a default subject will be used.
1682+ :param external_id:
1683+ This can be used to reference an ID in an external system that the sign request is related to.
1684+ :param is_document_preparation_needed:
1685+ Indicates if the sender should receive a prepare_url in the response to complete document preparation via UI.
1686+ :param redirect_url:
1687+ The URL that a signer will be redirected to after signing a document.
1688+ If no declined redirect URL is specified, this URL will be used for decline actions as well.
1689+ :param declined_redirect_url:
1690+ The URL that a signer will be redirected to after declining to sign a document.
1691+ :param template_id:
1692+ The ID of the sign template to use for the sign request.
1693+ :returns:
1694+ A dictionary representing a created SignRequest
1695+ """
1696+ return self .__create_sign_request (
1697+ signers , files , parent_folder_id , prefill_tags , are_reminders_enabled , are_text_signatures_enabled , days_valid , email_message ,
1698+ email_subject , external_id , is_document_preparation_needed , redirect_url , declined_redirect_url , template_id )
16131699
16141700 @api_call
16151701 def get_sign_requests (
0 commit comments