Skip to content
This repository was archived by the owner on Oct 17, 2023. It is now read-only.

Commit 9260b98

Browse files
committed
Add decline to sign functionality
1 parent 1fa7cf8 commit 9260b98

4 files changed

Lines changed: 71 additions & 32 deletions

File tree

hellosign_sdk/hsclient.py

Lines changed: 53 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
class HSClient(object):
3232

3333
''' Client object to interact with the API urls
34-
3534
Most of the operations of the SDK is made through this object. Please refer
3635
to the README.rst file for more details on how to use the client object.
3736
@@ -337,7 +336,7 @@ def get_signature_request_file(self, signature_request_id, path_or_file=None, fi
337336
url += '?file_type=%s' % file_type
338337
return request.get_file(url, path_or_file or filename)
339338

340-
def send_signature_request(self, test_mode=False, files=None, file_urls=None, title=None, subject=None, message=None, signing_redirect_url=None, signers=None, cc_email_addresses=None, form_fields_per_document=None, use_text_tags=False, hide_text_tags=False, metadata=None, ux_version=None):
339+
def send_signature_request(self, test_mode=False, files=None, file_urls=None, title=None, subject=None, message=None, signing_redirect_url=None, signers=None, cc_email_addresses=None, form_fields_per_document=None, use_text_tags=False, hide_text_tags=False, metadata=None, ux_version=None, allow_decline=False):
341340
''' Creates and sends a new SignatureRequest with the submitted documents
342341
343342
Creates and sends a new SignatureRequest with the submitted documents.
@@ -380,6 +379,8 @@ def send_signature_request(self, test_mode=False, files=None, file_urls=None, ti
380379
381380
ux_version (int): UX version, either 1 (default) or 2.
382381
382+
allow_decline(bool, optional): Allows signers to decline to sign a document if set to 1. Defaults to 0.
383+
383384
Returns:
384385
A SignatureRequest object
385386
@@ -406,15 +407,16 @@ def send_signature_request(self, test_mode=False, files=None, file_urls=None, ti
406407
'form_fields_per_document': form_fields_per_document,
407408
'use_text_tags': self._boolean(use_text_tags),
408409
'hide_text_tags': self._boolean(hide_text_tags),
409-
'metadata': metadata
410+
'metadata': metadata,
411+
'allow_decline': self._boolean(allow_decline)
410412
}
411413

412414
if ux_version is not None:
413415
params['ux_version'] = ux_version
414416

415417
return self._send_signature_request(**params)
416418

417-
def send_signature_request_with_template(self, test_mode=False, template_id=None, template_ids=None, title=None, subject=None, message=None, signing_redirect_url=None, signers=None, ccs=None, custom_fields=None, metadata=None, ux_version=None):
419+
def send_signature_request_with_template(self, test_mode=False, template_id=None, template_ids=None, title=None, subject=None, message=None, signing_redirect_url=None, signers=None, ccs=None, custom_fields=None, metadata=None, ux_version=None, allow_decline=False):
418420
''' Creates and sends a new SignatureRequest based off of a Template
419421
420422
Creates and sends a new SignatureRequest based off of the Template
@@ -454,6 +456,8 @@ def send_signature_request_with_template(self, test_mode=False, template_id=None
454456
455457
ux_version (int): UX version, either 1 (default) or 2.
456458
459+
allow_decline (bool, optional): Allows signers to decline to sign a document if set to 1. Defaults to 0.
460+
457461
Returns:
458462
A SignatureRequest object
459463
@@ -478,7 +482,8 @@ def send_signature_request_with_template(self, test_mode=False, template_id=None
478482
'signers': signers,
479483
'ccs': ccs,
480484
'custom_fields': custom_fields,
481-
'metadata': metadata
485+
'metadata': metadata,
486+
'allow_decline': allow_decline
482487
}
483488

484489
if ux_version is not None:
@@ -527,7 +532,7 @@ def cancel_signature_request(self, signature_request_id):
527532
request = self._get_request()
528533
request.post(url=self.SIGNATURE_REQUEST_CANCEL_URL + signature_request_id, get_json=False)
529534

530-
def send_signature_request_embedded(self, test_mode=False, client_id=None, files=None, file_urls=None, title=None, subject=None, message=None, signing_redirect_url=None, signers=None, cc_email_addresses=None, form_fields_per_document=None, use_text_tags=False, hide_text_tags=False, metadata=None, ux_version=None):
535+
def send_signature_request_embedded(self, test_mode=False, client_id=None, files=None, file_urls=None, title=None, subject=None, message=None, signing_redirect_url=None, signers=None, cc_email_addresses=None, form_fields_per_document=None, use_text_tags=False, hide_text_tags=False, metadata=None, ux_version=None, allow_decline=False):
531536
''' Creates and sends a new SignatureRequest with the submitted documents
532537
533538
Creates a new SignatureRequest with the submitted documents to be signed
@@ -575,6 +580,8 @@ def send_signature_request_embedded(self, test_mode=False, client_id=None, files
575580
576581
ux_version (int): UX version, either 1 (default) or 2.
577582
583+
allow_decline (bool, optional): Allows signers to decline to sign a document if set to 1. Defaults to 0.
584+
578585
Returns:
579586
A SignatureRequest object
580587
@@ -603,15 +610,16 @@ def send_signature_request_embedded(self, test_mode=False, client_id=None, files
603610
'form_fields_per_document': form_fields_per_document,
604611
'use_text_tags': self._boolean(use_text_tags),
605612
'hide_text_tags': self._boolean(hide_text_tags),
606-
'metadata': metadata
613+
'metadata': metadata,
614+
'allow_decline': allow_decline
607615
}
608616

609617
if ux_version is not None:
610618
params['ux_version'] = ux_version
611619

612620
return self._send_signature_request(**params)
613621

614-
def send_signature_request_embedded_with_template(self, test_mode=False, client_id=None, template_id=None, template_ids=None, title=None, subject=None, message=None, signing_redirect_url=None, signers=None, ccs=None, custom_fields=None, metadata=None, ux_version=None):
622+
def send_signature_request_embedded_with_template(self, test_mode=False, client_id=None, template_id=None, template_ids=None, title=None, subject=None, message=None, signing_redirect_url=None, signers=None, ccs=None, custom_fields=None, metadata=None, ux_version=None, allow_decline=False):
615623
''' Creates and sends a new SignatureRequest based off of a Template
616624
617625
Creates a new SignatureRequest based on the given Template to be
@@ -654,6 +662,8 @@ def send_signature_request_embedded_with_template(self, test_mode=False, client_
654662
655663
ux_version (int): UX version, either 1 (default) or 2.
656664
665+
allow_decline (bool, optional): Allows signers to decline to sign a document if set to 1. Defaults to 0.
666+
657667
Returns:
658668
A SignatureRequest object of the newly created Signature Request
659669
@@ -680,7 +690,8 @@ def send_signature_request_embedded_with_template(self, test_mode=False, client_
680690
'signers': signers,
681691
'ccs': ccs,
682692
'custom_fields': custom_fields,
683-
'metadata': metadata
693+
'metadata': metadata,
694+
'allow_decline': allow_decline
684695
}
685696

686697
if ux_version is not None:
@@ -987,7 +998,7 @@ def get_template_edit_url(self, template_id):
987998

988999
# ---- UNCLAIMED DRAFT METHODS ---------------------
9891000

990-
def create_unclaimed_draft(self, test_mode=False, files=None, file_urls=None, draft_type=None, subject=None, message=None, signers=None, cc_email_addresses=None, signing_redirect_url=None, form_fields_per_document=None, metadata=None, use_preexisting_fields=False):
1001+
def create_unclaimed_draft(self, test_mode=False, files=None, file_urls=None, draft_type=None, subject=None, message=None, signers=None, cc_email_addresses=None, signing_redirect_url=None, form_fields_per_document=None, metadata=None, use_preexisting_fields=False, allow_decline=False):
9911002
''' Creates a new Draft that can be claimed using the claim URL
9921003
9931004
Creates a new Draft that can be claimed using the claim URL. The first
@@ -1029,6 +1040,8 @@ def create_unclaimed_draft(self, test_mode=False, files=None, file_urls=None, dr
10291040
10301041
use_preexisting_fields (bool): Whether to use preexisting PDF fields
10311042
1043+
allow_decline (bool, optional): Allows signers to decline to sign a document if set to 1. Defaults to 0.
1044+
10321045
Returns:
10331046
An UnclaimedDraft object
10341047
@@ -1054,12 +1067,13 @@ def create_unclaimed_draft(self, test_mode=False, files=None, file_urls=None, dr
10541067
'cc_email_addresses': cc_email_addresses,
10551068
'form_fields_per_document': form_fields_per_document,
10561069
'metadata': metadata,
1057-
'use_preexisting_fields': use_preexisting_fields
1070+
'use_preexisting_fields': use_preexisting_fields,
1071+
'allow_decline': self._boolean(allow_decline)
10581072
}
10591073

10601074
return self._create_unclaimed_draft(**params)
10611075

1062-
def create_embedded_unclaimed_draft(self, test_mode=False, client_id=None, is_for_embedded_signing=False, requester_email_address=None, files=None, file_urls=None, draft_type=None, subject=None, message=None, signers=None, cc_email_addresses=None, signing_redirect_url=None, requesting_redirect_url=None, form_fields_per_document=None, metadata=None, use_preexisting_fields=False):
1076+
def create_embedded_unclaimed_draft(self, test_mode=False, client_id=None, is_for_embedded_signing=False, requester_email_address=None, files=None, file_urls=None, draft_type=None, subject=None, message=None, signers=None, cc_email_addresses=None, signing_redirect_url=None, requesting_redirect_url=None, form_fields_per_document=None, metadata=None, use_preexisting_fields=False, allow_decline=False):
10631077
''' Creates a new Draft to be used for embedded requesting
10641078
10651079
Args:
@@ -1100,6 +1114,8 @@ def create_embedded_unclaimed_draft(self, test_mode=False, client_id=None, is_fo
11001114
11011115
use_preexisting_fields (bool): Whether to use preexisting PDF fields
11021116
1117+
allow_decline (bool, optional): Allows signers to decline to sign a document if set to 1. Defaults to 0.
1118+
11031119
Returns:
11041120
An UnclaimedDraft object
11051121
@@ -1131,12 +1147,13 @@ def create_embedded_unclaimed_draft(self, test_mode=False, client_id=None, is_fo
11311147
'cc_email_addresses': cc_email_addresses,
11321148
'form_fields_per_document': form_fields_per_document,
11331149
'metadata': metadata,
1134-
'use_preexisting_fields': use_preexisting_fields
1150+
'use_preexisting_fields': use_preexisting_fields,
1151+
'allow_decline': self._boolean(allow_decline)
11351152
}
11361153

11371154
return self._create_unclaimed_draft(**params)
11381155

1139-
def create_embedded_unclaimed_draft_with_template(self, test_mode=False, client_id=None, is_for_embedded_signing=False, template_id=None, template_ids=None, requester_email_address=None, title=None, subject=None, message=None, signers=None, ccs=None, signing_redirect_url=None, requesting_redirect_url=None, metadata=None, custom_fields=None):
1156+
def create_embedded_unclaimed_draft_with_template(self, test_mode=False, client_id=None, is_for_embedded_signing=False, template_id=None, template_ids=None, requester_email_address=None, title=None, subject=None, message=None, signers=None, ccs=None, signing_redirect_url=None, requesting_redirect_url=None, metadata=None, custom_fields=None, allow_decline=False):
11401157
''' Creates a new Draft to be used for embedded requesting
11411158
11421159
Args:
@@ -1174,6 +1191,8 @@ def create_embedded_unclaimed_draft_with_template(self, test_mode=False, client_
11741191
11751192
custom_fields (list of dict, optional): A list of custom fields. Required when a CustomField exists in the Template. An item of the list should look like this: `{'name: value'}`
11761193
1194+
allow_decline (bool, optional): Allows signers to decline to sign a document if set to 1. Defaults to 0.
1195+
11771196
'''
11781197

11791198
self._check_required_fields({
@@ -1200,7 +1219,8 @@ def create_embedded_unclaimed_draft_with_template(self, test_mode=False, client_
12001219
'signers': signers,
12011220
'ccs': ccs,
12021221
'custom_fields': custom_fields,
1203-
'metadata': metadata
1222+
'metadata': metadata,
1223+
'allow_decline': self._boolean(allow_decline)
12041224
}
12051225

12061226
return self._create_embedded_unclaimed_draft_with_template(**params)
@@ -1333,7 +1353,7 @@ def _check_required_fields(self, fields=None, either_fields=None):
13331353
raise HSException("One of the following fields is required: %s" % ", ".join(field.keys()))
13341354

13351355
@api_resource(SignatureRequest)
1336-
def _send_signature_request(self, test_mode=False, client_id=None, files=None, file_urls=None, title=None, subject=None, message=None, signing_redirect_url=None, signers=None, cc_email_addresses=None, form_fields_per_document=None, use_text_tags=False, hide_text_tags=False, metadata=None, ux_version=None):
1356+
def _send_signature_request(self, test_mode=False, client_id=None, files=None, file_urls=None, title=None, subject=None, message=None, signing_redirect_url=None, signers=None, cc_email_addresses=None, form_fields_per_document=None, use_text_tags=False, hide_text_tags=False, metadata=None, ux_version=None, allow_decline=False):
13371357
''' To share the same logic between send_signature_request &
13381358
send_signature_request_embedded functions
13391359
@@ -1374,6 +1394,8 @@ def _send_signature_request(self, test_mode=False, client_id=None, files=None, f
13741394
13751395
ux_version (int): UX version, either 1 (default) or 2.
13761396
1397+
allow_decline (bool, optional); Allows signers to decline to sign a document if set to 1. Defaults to 0.
1398+
13771399
Returns:
13781400
A SignatureRequest object
13791401
@@ -1403,7 +1425,8 @@ def _send_signature_request(self, test_mode=False, client_id=None, files=None, f
14031425
"signing_redirect_url": signing_redirect_url,
14041426
"form_fields_per_document": form_fields_per_document,
14051427
"use_text_tags": self._boolean(use_text_tags),
1406-
"hide_text_tags": self._boolean(hide_text_tags)
1428+
"hide_text_tags": self._boolean(hide_text_tags),
1429+
"allow_decline": self._boolean(allow_decline)
14071430
}
14081431

14091432
if ux_version is not None:
@@ -1428,7 +1451,7 @@ def _send_signature_request(self, test_mode=False, client_id=None, files=None, f
14281451
return response
14291452

14301453
@api_resource(SignatureRequest)
1431-
def _send_signature_request_with_template(self, test_mode=False, client_id=None, template_id=None, template_ids=None, title=None, subject=None, message=None, signing_redirect_url=None, signers=None, ccs=None, custom_fields=None, metadata=None, ux_version=None):
1454+
def _send_signature_request_with_template(self, test_mode=False, client_id=None, template_id=None, template_ids=None, title=None, subject=None, message=None, signing_redirect_url=None, signers=None, ccs=None, custom_fields=None, metadata=None, ux_version=None, allow_decline=False):
14321455
''' To share the same logic between send_signature_request_with_template
14331456
and send_signature_request_embedded_with_template
14341457
@@ -1468,6 +1491,8 @@ def _send_signature_request_with_template(self, test_mode=False, client_id=None,
14681491
14691492
ux_version (int): UX version, either 1 (default) or 2.
14701493
1494+
allow_decline (bool, optional): Allows signers to decline to sign a document if set to 1. Defaults to 0.
1495+
14711496
Returns:
14721497
A SignatureRequest object
14731498
@@ -1498,7 +1523,8 @@ def _send_signature_request_with_template(self, test_mode=False, client_id=None,
14981523
"title": title,
14991524
"subject": subject,
15001525
"message": message,
1501-
"signing_redirect_url": signing_redirect_url
1526+
"signing_redirect_url": signing_redirect_url,
1527+
"allow_decline": self._boolean(allow_decline)
15021528
}
15031529

15041530
if ux_version is not None:
@@ -1524,7 +1550,7 @@ def _send_signature_request_with_template(self, test_mode=False, client_id=None,
15241550
return response
15251551

15261552
@api_resource(UnclaimedDraft)
1527-
def _create_unclaimed_draft(self, test_mode=False, client_id=None, is_for_embedded_signing=False, requester_email_address=None, files=None, file_urls=None, draft_type=None, subject=None, message=None, signers=None, cc_email_addresses=None, signing_redirect_url=None, requesting_redirect_url=None, form_fields_per_document=None, metadata=None, use_preexisting_fields=False):
1553+
def _create_unclaimed_draft(self, test_mode=False, client_id=None, is_for_embedded_signing=False, requester_email_address=None, files=None, file_urls=None, draft_type=None, subject=None, message=None, signers=None, cc_email_addresses=None, signing_redirect_url=None, requesting_redirect_url=None, form_fields_per_document=None, metadata=None, use_preexisting_fields=False, allow_decline=False):
15281554
''' Creates a new Draft that can be claimed using the claim URL
15291555
15301556
Args:
@@ -1565,6 +1591,8 @@ def _create_unclaimed_draft(self, test_mode=False, client_id=None, is_for_embedd
15651591
15661592
use_preexisting_fields (bool): Whether to use preexisting PDF fields
15671593
1594+
allow_decline (bool, optional): Allows signers to decline to sign a document if set to 1. Defaults to 0.
1595+
15681596
Returns:
15691597
An UnclaimedDraft object
15701598
@@ -1598,7 +1626,8 @@ def _create_unclaimed_draft(self, test_mode=False, client_id=None, is_for_embedd
15981626
"message": message,
15991627
"signing_redirect_url": signing_redirect_url,
16001628
"form_fields_per_document": form_fields_per_document,
1601-
"use_preexisting_fields": use_preexisting_fields
1629+
"use_preexisting_fields": use_preexisting_fields,
1630+
"allow_decline": self._boolean(allow_decline)
16021631
}
16031632

16041633
url = self.UNCLAIMED_DRAFT_CREATE_URL
@@ -1749,7 +1778,7 @@ def _create_embedded_template_draft(self, client_id, signer_roles, test_mode=Fal
17491778
return response
17501779

17511780
@api_resource(UnclaimedDraft)
1752-
def _create_embedded_unclaimed_draft_with_template(self, test_mode=False, client_id=None, is_for_embedded_signing=False, template_id=None, template_ids=None, requester_email_address=None, title=None, subject=None, message=None, signers=None, ccs=None, signing_redirect_url=None, requesting_redirect_url=None, metadata=None, custom_fields=None):
1781+
def _create_embedded_unclaimed_draft_with_template(self, test_mode=False, client_id=None, is_for_embedded_signing=False, template_id=None, template_ids=None, requester_email_address=None, title=None, subject=None, message=None, signers=None, ccs=None, signing_redirect_url=None, requesting_redirect_url=None, metadata=None, custom_fields=None, allow_decline=False):
17531782
''' Helper method for creating unclaimed drafts from templates
17541783
See public function for params.
17551784
'''
@@ -1765,7 +1794,8 @@ def _create_embedded_unclaimed_draft_with_template(self, test_mode=False, client
17651794
"subject": subject,
17661795
"message": message,
17671796
"signing_redirect_url": signing_redirect_url,
1768-
"requesting_redirect_url": requesting_redirect_url
1797+
"requesting_redirect_url": requesting_redirect_url,
1798+
"allow_decline": self._boolean(allow_decline)
17691799
}
17701800

17711801
#format multi params

0 commit comments

Comments
 (0)