1- """ Example 045: Delete and Restore an Envelope """
1+ """ Example 045: Delete and undelete an Envelope """
22
33from os import path
44
55from docusign_esign .client .api_exception import ApiException
66from flask import render_template , session , Blueprint , request , redirect
77
88from ..examples .eg045_delete_restore_envelope import Eg045DeleteRestoreEnvelopeController
9+ from ..utils import get_folder_id_by_name
910from ...docusign import authenticate , ensure_manifest , get_example_by_number
1011from ...ds_config import DS_CONFIG
1112from ...error_handlers import process_error
@@ -54,7 +55,7 @@ def delete_envelope():
5455 return render_template (
5556 "example_done.html" ,
5657 title = example ["ExampleName" ],
57- message = additional_page_data ["ResultsPageText" ],
58+ message = additional_page_data ["ResultsPageText" ]. format ( args [ "envelope_id" ]) ,
5859 redirect_url = restore_endpoint
5960 )
6061
@@ -69,26 +70,43 @@ def restore_envelope():
6970 """
7071
7172 # 1. Get required arguments
73+ folder_name = pattern .sub ("" , request .form .get ("folder_name" ))
7274 args = {
7375 "account_id" : session ["ds_account_id" ],
7476 "base_path" : session ["ds_base_path" ],
7577 "access_token" : session ["ds_access_token" ],
7678 "envelope_id" : pattern .sub ("" , session .get ("envelope_id" )),
77- "folder_id" : restore_folder_id ,
7879 "from_folder_id" : delete_folder_id
7980 }
81+
82+ example = get_example_by_number (session ["manifest" ], example_number , api )
8083 try :
8184 # 2. Call the worker method
85+ folders = Eg045DeleteRestoreEnvelopeController .get_folders (args )
86+ args ["folder_id" ] = get_folder_id_by_name (folders .folders , folder_name )
87+
88+ if args ["folder_id" ] is None :
89+ additional_page_data = next (
90+ (p for p in example ["AdditionalPage" ] if p ["Name" ] == "folder_does_not_exist" ),
91+ None
92+ )
93+
94+ return render_template (
95+ "example_done.html" ,
96+ title = example ["ExampleName" ],
97+ message = additional_page_data ["ResultsPageText" ].format (folder_name ),
98+ redirect_url = restore_endpoint
99+ )
100+
82101 Eg045DeleteRestoreEnvelopeController .move_envelope (args )
83102 except ApiException as err :
84103 return process_error (err )
85104
86105 # 3. Render success response with envelopeId
87- example = get_example_by_number (session ["manifest" ], example_number , api )
88106 return render_template (
89107 "example_done.html" ,
90108 title = example ["ExampleName" ],
91- message = example ["ResultsPageText" ]
109+ message = example ["ResultsPageText" ]. format ( session . get ( "envelope_id" , "" ), args [ "folder_id" ], folder_name )
92110 )
93111
94112@eg045 .route (f"/{ eg } " , methods = ["GET" ])
0 commit comments