Skip to content

Commit accce8c

Browse files
committed
2 parents dce098e + 05b4170 commit accce8c

File tree

7 files changed

+353
-154
lines changed

7 files changed

+353
-154
lines changed

app/__init__.py

Lines changed: 132 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -1,131 +1,132 @@
1-
import os
2-
3-
from flask import Flask, session, current_app
4-
from flask_wtf.csrf import CSRFProtect
5-
6-
from .ds_config import DS_CONFIG
7-
from .eSignature import views as esignature_views
8-
from .docusign.views import ds
9-
from .api_type import EXAMPLES_API_TYPE
10-
from .rooms import views as rooms_views
11-
from .click import views as click_views
12-
from .monitor import views as monitor_views
13-
from .admin import views as admin_views
14-
from .connect import views as connect_views
15-
from .maestro import views as maestro_views
16-
from .webforms import views as webforms_views
17-
from .views import core
18-
19-
session_path = "/tmp/python_recipe_sessions"
20-
app = Flask(__name__)
21-
22-
app.config.from_pyfile("config.py")
23-
24-
# See https://flask-wtf.readthedocs.io/en/stable/csrf.html
25-
csrf = CSRFProtect(app)
26-
27-
# Set whether this is a quickstart in config
28-
#app.config["quickstart"] = DS_CONFIG["quickstart"]
29-
30-
# Set whether user has logged in
31-
#app.config["isLoggedIn"] = False
32-
33-
# Register home page
34-
app.register_blueprint(core)
35-
36-
# Register OAuth
37-
app.register_blueprint(ds)
38-
# Register examples
39-
40-
app.register_blueprint(rooms_views.reg001)
41-
app.register_blueprint(rooms_views.reg002)
42-
app.register_blueprint(rooms_views.reg003)
43-
app.register_blueprint(rooms_views.reg004)
44-
app.register_blueprint(rooms_views.reg005)
45-
app.register_blueprint(rooms_views.reg006)
46-
app.register_blueprint(rooms_views.reg007)
47-
app.register_blueprint(rooms_views.reg008)
48-
app.register_blueprint(rooms_views.reg009)
49-
50-
app.register_blueprint(monitor_views.meg001)
51-
52-
app.register_blueprint(admin_views.aeg001)
53-
app.register_blueprint(admin_views.aeg002)
54-
app.register_blueprint(admin_views.aeg003)
55-
app.register_blueprint(admin_views.aeg004)
56-
app.register_blueprint(admin_views.aeg005)
57-
app.register_blueprint(admin_views.aeg006)
58-
app.register_blueprint(admin_views.aeg007)
59-
app.register_blueprint(admin_views.aeg008)
60-
app.register_blueprint(admin_views.aeg009)
61-
app.register_blueprint(admin_views.aeg010)
62-
app.register_blueprint(admin_views.aeg011)
63-
app.register_blueprint(admin_views.aeg012)
64-
65-
app.register_blueprint(click_views.ceg001)
66-
app.register_blueprint(click_views.ceg002)
67-
app.register_blueprint(click_views.ceg003)
68-
app.register_blueprint(click_views.ceg004)
69-
app.register_blueprint(click_views.ceg005)
70-
app.register_blueprint(click_views.ceg006)
71-
72-
app.register_blueprint(esignature_views.eg001)
73-
app.register_blueprint(esignature_views.eg002)
74-
app.register_blueprint(esignature_views.eg003)
75-
app.register_blueprint(esignature_views.eg004)
76-
app.register_blueprint(esignature_views.eg005)
77-
app.register_blueprint(esignature_views.eg006)
78-
app.register_blueprint(esignature_views.eg007)
79-
app.register_blueprint(esignature_views.eg008)
80-
app.register_blueprint(esignature_views.eg009)
81-
app.register_blueprint(esignature_views.eg010)
82-
app.register_blueprint(esignature_views.eg011)
83-
app.register_blueprint(esignature_views.eg012)
84-
app.register_blueprint(esignature_views.eg013)
85-
app.register_blueprint(esignature_views.eg014)
86-
app.register_blueprint(esignature_views.eg015)
87-
app.register_blueprint(esignature_views.eg016)
88-
app.register_blueprint(esignature_views.eg017)
89-
app.register_blueprint(esignature_views.eg018)
90-
app.register_blueprint(esignature_views.eg019)
91-
app.register_blueprint(esignature_views.eg020)
92-
app.register_blueprint(esignature_views.eg022)
93-
app.register_blueprint(esignature_views.eg023)
94-
app.register_blueprint(esignature_views.eg024)
95-
app.register_blueprint(esignature_views.eg025)
96-
app.register_blueprint(esignature_views.eg026)
97-
app.register_blueprint(esignature_views.eg027)
98-
app.register_blueprint(esignature_views.eg028)
99-
app.register_blueprint(esignature_views.eg029)
100-
app.register_blueprint(esignature_views.eg030)
101-
app.register_blueprint(esignature_views.eg031)
102-
app.register_blueprint(esignature_views.eg032)
103-
app.register_blueprint(esignature_views.eg033)
104-
app.register_blueprint(esignature_views.eg034)
105-
app.register_blueprint(esignature_views.eg035)
106-
app.register_blueprint(esignature_views.eg036)
107-
app.register_blueprint(esignature_views.eg037)
108-
app.register_blueprint(esignature_views.eg038)
109-
app.register_blueprint(esignature_views.eg039)
110-
app.register_blueprint(esignature_views.eg040)
111-
app.register_blueprint(esignature_views.eg041)
112-
app.register_blueprint(esignature_views.eg042)
113-
app.register_blueprint(esignature_views.eg043)
114-
app.register_blueprint(esignature_views.eg044)
115-
116-
app.register_blueprint(connect_views.cneg001)
117-
118-
app.register_blueprint(maestro_views.mseg001)
119-
app.register_blueprint(maestro_views.mseg002)
120-
app.register_blueprint(maestro_views.mseg003)
121-
122-
app.register_blueprint(webforms_views.weg001)
123-
124-
if "DYNO" in os.environ: # On Heroku?
125-
import logging
126-
127-
stream_handler = logging.StreamHandler()
128-
app.logger.addHandler(stream_handler)
129-
app.logger.setLevel(logging.INFO)
130-
app.logger.info("Recipe example startup")
131-
app.config.update(dict(PREFERRED_URL_SCHEME="https"))
1+
import os
2+
3+
from flask import Flask, session, current_app
4+
from flask_wtf.csrf import CSRFProtect
5+
6+
from .ds_config import DS_CONFIG
7+
from .eSignature import views as esignature_views
8+
from .docusign.views import ds
9+
from .api_type import EXAMPLES_API_TYPE
10+
from .rooms import views as rooms_views
11+
from .click import views as click_views
12+
from .monitor import views as monitor_views
13+
from .admin import views as admin_views
14+
from .connect import views as connect_views
15+
from .maestro import views as maestro_views
16+
from .webforms import views as webforms_views
17+
from .views import core
18+
19+
session_path = "/tmp/python_recipe_sessions"
20+
app = Flask(__name__)
21+
22+
app.config.from_pyfile("config.py")
23+
24+
# See https://flask-wtf.readthedocs.io/en/stable/csrf.html
25+
csrf = CSRFProtect(app)
26+
27+
# Set whether this is a quickstart in config
28+
#app.config["quickstart"] = DS_CONFIG["quickstart"]
29+
30+
# Set whether user has logged in
31+
#app.config["isLoggedIn"] = False
32+
33+
# Register home page
34+
app.register_blueprint(core)
35+
36+
# Register OAuth
37+
app.register_blueprint(ds)
38+
# Register examples
39+
40+
app.register_blueprint(rooms_views.reg001)
41+
app.register_blueprint(rooms_views.reg002)
42+
app.register_blueprint(rooms_views.reg003)
43+
app.register_blueprint(rooms_views.reg004)
44+
app.register_blueprint(rooms_views.reg005)
45+
app.register_blueprint(rooms_views.reg006)
46+
app.register_blueprint(rooms_views.reg007)
47+
app.register_blueprint(rooms_views.reg008)
48+
app.register_blueprint(rooms_views.reg009)
49+
50+
app.register_blueprint(monitor_views.meg001)
51+
52+
app.register_blueprint(admin_views.aeg001)
53+
app.register_blueprint(admin_views.aeg002)
54+
app.register_blueprint(admin_views.aeg003)
55+
app.register_blueprint(admin_views.aeg004)
56+
app.register_blueprint(admin_views.aeg005)
57+
app.register_blueprint(admin_views.aeg006)
58+
app.register_blueprint(admin_views.aeg007)
59+
app.register_blueprint(admin_views.aeg008)
60+
app.register_blueprint(admin_views.aeg009)
61+
app.register_blueprint(admin_views.aeg010)
62+
app.register_blueprint(admin_views.aeg011)
63+
app.register_blueprint(admin_views.aeg012)
64+
app.register_blueprint(admin_views.aeg013)
65+
66+
app.register_blueprint(click_views.ceg001)
67+
app.register_blueprint(click_views.ceg002)
68+
app.register_blueprint(click_views.ceg003)
69+
app.register_blueprint(click_views.ceg004)
70+
app.register_blueprint(click_views.ceg005)
71+
app.register_blueprint(click_views.ceg006)
72+
73+
app.register_blueprint(esignature_views.eg001)
74+
app.register_blueprint(esignature_views.eg002)
75+
app.register_blueprint(esignature_views.eg003)
76+
app.register_blueprint(esignature_views.eg004)
77+
app.register_blueprint(esignature_views.eg005)
78+
app.register_blueprint(esignature_views.eg006)
79+
app.register_blueprint(esignature_views.eg007)
80+
app.register_blueprint(esignature_views.eg008)
81+
app.register_blueprint(esignature_views.eg009)
82+
app.register_blueprint(esignature_views.eg010)
83+
app.register_blueprint(esignature_views.eg011)
84+
app.register_blueprint(esignature_views.eg012)
85+
app.register_blueprint(esignature_views.eg013)
86+
app.register_blueprint(esignature_views.eg014)
87+
app.register_blueprint(esignature_views.eg015)
88+
app.register_blueprint(esignature_views.eg016)
89+
app.register_blueprint(esignature_views.eg017)
90+
app.register_blueprint(esignature_views.eg018)
91+
app.register_blueprint(esignature_views.eg019)
92+
app.register_blueprint(esignature_views.eg020)
93+
app.register_blueprint(esignature_views.eg022)
94+
app.register_blueprint(esignature_views.eg023)
95+
app.register_blueprint(esignature_views.eg024)
96+
app.register_blueprint(esignature_views.eg025)
97+
app.register_blueprint(esignature_views.eg026)
98+
app.register_blueprint(esignature_views.eg027)
99+
app.register_blueprint(esignature_views.eg028)
100+
app.register_blueprint(esignature_views.eg029)
101+
app.register_blueprint(esignature_views.eg030)
102+
app.register_blueprint(esignature_views.eg031)
103+
app.register_blueprint(esignature_views.eg032)
104+
app.register_blueprint(esignature_views.eg033)
105+
app.register_blueprint(esignature_views.eg034)
106+
app.register_blueprint(esignature_views.eg035)
107+
app.register_blueprint(esignature_views.eg036)
108+
app.register_blueprint(esignature_views.eg037)
109+
app.register_blueprint(esignature_views.eg038)
110+
app.register_blueprint(esignature_views.eg039)
111+
app.register_blueprint(esignature_views.eg040)
112+
app.register_blueprint(esignature_views.eg041)
113+
app.register_blueprint(esignature_views.eg042)
114+
app.register_blueprint(esignature_views.eg043)
115+
app.register_blueprint(esignature_views.eg044)
116+
117+
app.register_blueprint(connect_views.cneg001)
118+
119+
app.register_blueprint(maestro_views.mseg001)
120+
app.register_blueprint(maestro_views.mseg002)
121+
app.register_blueprint(maestro_views.mseg003)
122+
123+
app.register_blueprint(webforms_views.weg001)
124+
125+
if "DYNO" in os.environ: # On Heroku?
126+
import logging
127+
128+
stream_handler = logging.StreamHandler()
129+
app.logger.addHandler(stream_handler)
130+
app.logger.setLevel(logging.INFO)
131+
app.logger.info("Recipe example startup")
132+
app.config.update(dict(PREFERRED_URL_SCHEME="https"))
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
from docusign_admin import ApiClient, ProvisionAssetGroupApi, SubAccountCreateRequest, \
2+
SubAccountCreateRequestSubAccountCreationSubscription, \
3+
SubAccountCreateRequestSubAccountCreationTargetAccountDetails, \
4+
SubAccountCreateRequestSubAccountCreationTargetAccountAdmin
5+
from flask import session, request
6+
7+
from ..utils import get_organization_id
8+
from ...ds_config import DS_CONFIG
9+
10+
11+
class Eg013CreateAccountController:
12+
@staticmethod
13+
def get_args():
14+
"""Get required session and request arguments"""
15+
organization_id = get_organization_id()
16+
17+
return {
18+
"access_token": session["ds_access_token"], # Represents your {ACCESS_TOKEN}
19+
"organization_id": organization_id,
20+
"base_path": DS_CONFIG["admin_api_client_host"],
21+
"email": request.form.get("email"),
22+
"first_name": request.form.get("first_name"),
23+
"last_name": request.form.get("last_name"),
24+
"subscription_id": session.get("subscription_id"),
25+
"plan_id": session.get("plan_id"),
26+
}
27+
28+
@staticmethod
29+
def worker(args):
30+
"""
31+
1. Create an API client with headers
32+
2. Get the list of eligible accounts
33+
3. Construct the request body
34+
4. Create the account
35+
"""
36+
37+
access_token = args["access_token"]
38+
39+
# Create an API client with headers
40+
#ds-snippet-start:Admin13Step2
41+
api_client = ApiClient(host=args["base_path"])
42+
api_client.set_default_header(
43+
header_name="Authorization",
44+
header_value=f"Bearer {access_token}"
45+
)
46+
#ds-snippet-end:Admin13Step2
47+
48+
#ds-snippet-start:Admin13Step4
49+
account_data = SubAccountCreateRequest(
50+
subscription_details=SubAccountCreateRequestSubAccountCreationSubscription(
51+
id=args["subscription_id"],
52+
plan_id=args["plan_id"],
53+
modules=[]
54+
),
55+
target_account=SubAccountCreateRequestSubAccountCreationTargetAccountDetails(
56+
name="CreatedThroughAPI",
57+
country_code="US",
58+
admin=SubAccountCreateRequestSubAccountCreationTargetAccountAdmin(
59+
email=args["email"],
60+
first_name=args["first_name"],
61+
last_name=args["last_name"],
62+
locale="en"
63+
)
64+
)
65+
)
66+
#ds-snippet-end:Admin13Step4
67+
68+
#ds-snippet-start:Admin13Step5
69+
asset_group_api = ProvisionAssetGroupApi(api_client=api_client)
70+
results = asset_group_api.create_asset_group_account(args["organization_id"], account_data)
71+
#ds-snippet-end:Admin13Step5
72+
73+
return results
74+
75+
@staticmethod
76+
def get_organization_plan_items(args):
77+
access_token = args["access_token"]
78+
api_client = ApiClient(host=args["base_path"])
79+
api_client.set_default_header(
80+
header_name="Authorization",
81+
header_value=f"Bearer {access_token}"
82+
)
83+
84+
#ds-snippet-start:Admin13Step3
85+
asset_group_api = ProvisionAssetGroupApi(api_client=api_client)
86+
plan_items = asset_group_api.get_organization_plan_items(args["organization_id"])
87+
#ds-snippet-end:Admin13Step3
88+
89+
return plan_items

app/admin/views/__init__.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
from .eg001_create_a_new_user import aeg001
2-
from .eg002_create_active_clm_esign_user import aeg002
3-
from .eg003_bulk_export_user_data import aeg003
4-
from .eg004_add_users_via_bulk_import import aeg004
5-
from .eg005_audit_users import aeg005
6-
from .eg006_get_user_profile_by_email import aeg006
7-
from .eg007_get_user_profile_by_user_id import aeg007
8-
from .eg008_update_user_product_permission_profile import aeg008
9-
from .eg009_delete_user_product_permission_profile import aeg009
10-
from .eg010_delete_user_data_from_organization import aeg010
11-
from .eg011_delete_user_data_from_account import aeg011
12-
from .eg012_clone_account import aeg012
1+
from .eg001_create_a_new_user import aeg001
2+
from .eg002_create_active_clm_esign_user import aeg002
3+
from .eg003_bulk_export_user_data import aeg003
4+
from .eg004_add_users_via_bulk_import import aeg004
5+
from .eg005_audit_users import aeg005
6+
from .eg006_get_user_profile_by_email import aeg006
7+
from .eg007_get_user_profile_by_user_id import aeg007
8+
from .eg008_update_user_product_permission_profile import aeg008
9+
from .eg009_delete_user_product_permission_profile import aeg009
10+
from .eg010_delete_user_data_from_organization import aeg010
11+
from .eg011_delete_user_data_from_account import aeg011
12+
from .eg012_clone_account import aeg012
13+
from .eg013_create_account import aeg013

0 commit comments

Comments
 (0)