Skip to content

Commit cbb647f

Browse files
authored
Merge pull request #21 from docusign/click-controllers-update
Click controllers update
2 parents 370328c + f1ce4a4 commit cbb647f

10 files changed

+243
-147
lines changed
Lines changed: 5 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
1-

2-
using System;
3-
using System.Collections.Generic;
4-
using DocuSign.Click.Api;
5-
using DocuSign.Click.Client;
6-
using DocuSign.Click.Model;
1+
using DocuSign.Click.Client;
2+
using DocuSign.Click.Examples;
73
using DocuSign.CodeExamples.Common;
84
using DocuSign.CodeExamples.Controllers;
95
using DocuSign.CodeExamples.Models;
@@ -31,24 +27,15 @@ public Eg01CreateClickwrapController(
3127
[ValidateAntiForgeryToken]
3228
public ActionResult Create(string name)
3329
{
34-
// Step 1. Obtain your OAuth token
30+
// Obtain your OAuth token
3531
var accessToken = RequestItemsService.User.AccessToken;
3632
var basePath = $"{RequestItemsService.Session.BasePath}/clickapi"; // Base API path
37-
38-
// Step 2: Construct your API headers
39-
var apiClient = new ApiClient(basePath);
40-
apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken);
41-
var clickAccountApi = new AccountsApi(apiClient);
42-
4333
var accountId = RequestItemsService.Session.AccountId;
4434

4535
try
4636
{
47-
// Step 3: Construct the request body for your clickwrap
48-
ClickwrapRequest clickwrapRequest = BuildClickwraprequest(name);
49-
50-
// Step 4: Call the Click API to create a clickwrap
51-
var clickWrap = clickAccountApi.CreateClickwrap(accountId, clickwrapRequest);
37+
// Call the Click API to create a clickwrap
38+
var clickWrap = CreateClickwrap.Create(name, basePath, accessToken, accountId);
5239

5340
//Show results
5441
ViewBag.h1 = "The clickwrap was successfully created";
@@ -68,36 +55,5 @@ public ActionResult Create(string name)
6855
return View("Error");
6956
}
7057
}
71-
72-
private static ClickwrapRequest BuildClickwraprequest(string name)
73-
{
74-
var clickwrapRequest = new ClickwrapRequest
75-
{
76-
DisplaySettings = new DisplaySettings()
77-
{
78-
ConsentButtonText = "I Agree",
79-
DisplayName = "Terms of Service",
80-
Downloadable = true,
81-
Format = "modal",
82-
MustRead = true,
83-
MustView = true,
84-
RequireAccept = true,
85-
DocumentDisplay = "document"
86-
},
87-
Documents = new List<Document>(){
88-
new Document()
89-
{
90-
DocumentBase64=Convert.ToBase64String(System.IO.File.ReadAllBytes("Terms_of_service.pdf")),
91-
DocumentName="Terms of Service",
92-
FileExtension="pdf",
93-
Order= 0
94-
}
95-
},
96-
Name = name,
97-
RequireReacceptance = true
98-
};
99-
100-
return clickwrapRequest;
101-
}
10258
}
10359
}

launcher-csharp/Click/Controllers/Eg02ActivateClickwrapController.cs

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
using DocuSign.Click.Api;
2-
using DocuSign.Click.Client;
3-
using DocuSign.Click.Model;
1+
using DocuSign.Click.Client;
2+
using DocuSign.Click.Examples;
43
using DocuSign.CodeExamples.Common;
54
using DocuSign.CodeExamples.Controllers;
65
using DocuSign.CodeExamples.Models;
@@ -35,15 +34,9 @@ protected override void InitializeInternal()
3534
[ValidateAntiForgeryToken]
3635
public ActionResult Activate()
3736
{
38-
// Step 1. Obtain your OAuth token
37+
// Obtain your OAuth token
3938
var accessToken = RequestItemsService.User.AccessToken;
4039
var basePath = $"{RequestItemsService.Session.BasePath}/clickapi"; // Base API path
41-
42-
// Step 2: Construct your API headers
43-
var apiClient = new ApiClient(basePath);
44-
apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken);
45-
var clickAccountApi = new AccountsApi(apiClient);
46-
4740
var accountId = RequestItemsService.Session.AccountId;
4841

4942
try
@@ -56,16 +49,13 @@ public ActionResult Activate()
5649
return View("Error");
5750
}
5851

59-
// Step 3: Construct the request body for your clickwrap
60-
ClickwrapRequest clickwrapRequest = BuildUpdateClickwrapVersionRequest();
61-
6252
var clickwrapId = RequestItemsService.ClickwrapId;
63-
var clickwrapVersion = "1"; //A newly created clickwrap has default version 1
53+
var clickwrapVersion = "1"; // A newly created clickwrap has default version 1
6454

65-
// Step 4: Call the Click API to activate a clickwrap
66-
var clickWrap = clickAccountApi.UpdateClickwrapVersion(accountId, clickwrapId, clickwrapVersion, clickwrapRequest);
55+
// Call the Click API to activate a clickwrap
56+
var clickWrap = ActivateClickwrap.Update(clickwrapId, clickwrapVersion, basePath, accessToken, accountId);
6757

68-
//Show results
58+
// Show results
6959
ViewBag.h1 = "The clickwrap was successfully activated";
7060
ViewBag.message = $"The clickwrap was activated! Clickwrap ID: {clickWrap.ClickwrapId}, Name: {clickWrap.ClickwrapName}.";
7161
ViewBag.Locals.Json = JsonConvert.SerializeObject(clickWrap, Formatting.Indented);
@@ -80,15 +70,5 @@ public ActionResult Activate()
8070
return View("Error");
8171
}
8272
}
83-
84-
private static ClickwrapRequest BuildUpdateClickwrapVersionRequest()
85-
{
86-
var clickwrapRequest = new ClickwrapRequest
87-
{
88-
Status = "active"
89-
};
90-
91-
return clickwrapRequest;
92-
}
9373
}
9474
}
Lines changed: 6 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using DocuSign.Click.Api;
4-
using DocuSign.Click.Client;
5-
using DocuSign.Click.Model;
1+
using DocuSign.Click.Client;
2+
using DocuSign.Click.Examples;
63
using DocuSign.CodeExamples.Common;
74
using DocuSign.CodeExamples.Controllers;
85
using DocuSign.CodeExamples.Models;
@@ -36,15 +33,9 @@ protected override void InitializeInternal()
3633
[ValidateAntiForgeryToken]
3734
public ActionResult Create()
3835
{
39-
// Step 1. Obtain your OAuth token
36+
// Obtain your OAuth token
4037
var accessToken = RequestItemsService.User.AccessToken;
4138
var basePath = $"{RequestItemsService.Session.BasePath}/clickapi"; // Base API path
42-
43-
// Step 2: Construct your API headers
44-
var apiClient = new ApiClient(basePath);
45-
apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken);
46-
var clickAccountApi = new AccountsApi(apiClient);
47-
4839
var accountId = RequestItemsService.Session.AccountId;
4940

5041
try
@@ -57,14 +48,12 @@ public ActionResult Create()
5748
return View("Error");
5849
}
5950

60-
// Step 3: Construct the request body for your new clickwrap version
61-
ClickwrapRequest clickwrapRequest = BuildUpdateClickwrapVersionRequest();
6251
var clickwrapId = RequestItemsService.ClickwrapId;
6352

64-
// Step 4: Call the Click API to create the clickwrap version
65-
var clickWrap = clickAccountApi.CreateClickwrapVersion(accountId, clickwrapId, clickwrapRequest);
53+
// Call the Click API to create the clickwrap version
54+
var clickWrap = CreateNewClickwrapVersion.Create(clickwrapId, basePath, accessToken, accountId);
6655

67-
//Show results
56+
// Show results
6857
ViewBag.h1 = "A new clickwrap version was successfully created";
6958
ViewBag.message = $"The new clickwrap version was created! Clickwrap ID: {clickWrap.ClickwrapId}, Name: {clickWrap.ClickwrapName}.";
7059
ViewBag.Locals.Json = JsonConvert.SerializeObject(clickWrap, Formatting.Indented);
@@ -79,38 +68,5 @@ public ActionResult Create()
7968
return View("Error");
8069
}
8170
}
82-
83-
private static ClickwrapRequest BuildUpdateClickwrapVersionRequest()
84-
{
85-
var clickwrapRequest = new ClickwrapRequest
86-
{
87-
Name = "Terms of Service",
88-
DisplaySettings = new DisplaySettings()
89-
{
90-
DisplayName = "Terms of Service v2",
91-
MustRead = true,
92-
MustView = false,
93-
RequireAccept = false,
94-
Downloadable = false,
95-
SendToEmail = false,
96-
ConsentButtonText = "I Agree",
97-
Format = "modal",
98-
DocumentDisplay = "document",
99-
},
100-
Documents = new List<Document>(){
101-
new Document()
102-
{
103-
DocumentBase64=Convert.ToBase64String(System.IO.File.ReadAllBytes("Terms_of_service.pdf")),
104-
DocumentName="Terms of Service",
105-
FileExtension="pdf",
106-
Order= 0
107-
}
108-
},
109-
Status = "active",
110-
RequireReacceptance = true
111-
};
112-
113-
return clickwrapRequest;
114-
}
11571
}
11672
}

launcher-csharp/Click/Controllers/Eg04RetrieveClickwrapsController.cs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Text;
22
using DocuSign.Click.Api;
33
using DocuSign.Click.Client;
4+
using DocuSign.Click.Examples;
45
using DocuSign.CodeExamples.Common;
56
using DocuSign.CodeExamples.Controllers;
67
using DocuSign.CodeExamples.Models;
@@ -33,26 +34,20 @@ protected override void InitializeInternal()
3334
[ValidateAntiForgeryToken]
3435
public ActionResult Retrieve()
3536
{
36-
// Step 1. Obtain your OAuth token
37+
// Obtain your OAuth token
3738
var accessToken = RequestItemsService.User.AccessToken;
3839
var basePath = $"{RequestItemsService.Session.BasePath}/clickapi"; // Base API path
39-
40-
// Step 2: Construct your API headers
41-
var apiClient = new ApiClient(basePath);
42-
apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken);
43-
var clickAccountApi = new AccountsApi(apiClient);
44-
4540
var accountId = RequestItemsService.Session.AccountId;
4641

4742
try
4843
{
49-
// Step 3: Call the Click API to get the clickwraps
50-
var clickwraps = clickAccountApi.GetClickwraps(accountId);
44+
// Call the Click API to get the clickwraps
45+
var clickwraps = RetrieveClickwraps.GetClickwraps(basePath, accessToken, accountId);
5146

5247
var messageBuilder = new StringBuilder();
5348
clickwraps.Clickwraps.ForEach(cw => messageBuilder.AppendLine($"Clickwrap ID:{cw.ClickwrapId}, Clickwrap Version: {cw.VersionNumber}"));
5449

55-
//Show results
50+
// Show results
5651
ViewBag.h1 = "Clickwraps were successfully retreived";
5752
ViewBag.message = $"The clickwraps retrieved: {messageBuilder.ToString()}.";
5853
ViewBag.Locals.Json = JsonConvert.SerializeObject(clickwraps.Clickwraps, Formatting.Indented);

launcher-csharp/Click/Controllers/Eg05GetClickwrapResponsesController.cs

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
using DocuSign.Click.Api;
2-
using DocuSign.Click.Client;
1+
using DocuSign.Click.Client;
2+
using DocuSign.Click.Examples;
33
using DocuSign.CodeExamples.Common;
44
using DocuSign.CodeExamples.Controllers;
55
using DocuSign.CodeExamples.Models;
@@ -32,15 +32,10 @@ protected override void InitializeInternal()
3232
[ValidateAntiForgeryToken]
3333
public ActionResult Create()
3434
{
35-
// Step 1. Obtain your OAuth token
35+
// Obtain your OAuth token
3636
var accessToken = RequestItemsService.User.AccessToken;
3737
var basePath = $"{RequestItemsService.Session.BasePath}/clickapi"; // Base API path
3838

39-
// Step 2: Construct your API headers
40-
var apiClient = new ApiClient(basePath);
41-
apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken);
42-
var clickAccountApi = new AccountsApi(apiClient);
43-
4439
try
4540
{
4641
if (string.IsNullOrEmpty(RequestItemsService.ClickwrapId))
@@ -54,10 +49,10 @@ public ActionResult Create()
5449
var accountId = RequestItemsService.Session.AccountId;
5550
var clickwrapId = RequestItemsService.ClickwrapId;
5651

57-
// Step 3: Call the Click API to get a clickwrap agreements
58-
var clickWrapAgreements = clickAccountApi.GetClickwrapAgreements(accountId, clickwrapId);
52+
// Call the Click API to get a clickwrap agreements
53+
var clickWrapAgreements = GetClickwrapResponses.GetAgreements(clickwrapId, basePath, accessToken, accountId);
5954

60-
//Show results
55+
// Show results
6156
ViewBag.h1 = "The data was successfully fetched";
6257
ViewBag.message = $"The clickwrap contains {clickWrapAgreements.UserAgreements.Count} agreements.";
6358
ViewBag.Locals.Json = JsonConvert.SerializeObject(clickWrapAgreements, Formatting.Indented);
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
using DocuSign.Click.Api;
2+
using DocuSign.Click.Client;
3+
using DocuSign.Click.Model;
4+
5+
namespace DocuSign.Click.Examples
6+
{
7+
public class ActivateClickwrap
8+
{
9+
/// <summary>
10+
/// Activates a newly created clickwrap
11+
/// </summary>
12+
/// <param name="clickwrapId">The Id of clickwrap</param>
13+
/// <param name="clickwrapVersion">The version of clickwrap</param>
14+
/// <param name="basePath">BasePath for API calls (URI)</param>
15+
/// <param name="accessToken">Access Token for API call (OAuth)</param>
16+
/// <param name="accountId">The DocuSign Account ID (GUID or short version) for which the APIs call would be made</param>
17+
/// <returns>The summary response of the activated clickwrap</returns>
18+
public static ClickwrapVersionSummaryResponse Update(string clickwrapId, string clickwrapVersion, string basePath, string accessToken, string accountId)
19+
{
20+
var apiClient = new ApiClient(basePath);
21+
apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken);
22+
var clickAccountApi = new AccountsApi(apiClient);
23+
24+
var clickwrapRequest = BuildUpdateClickwrapVersionRequest();
25+
26+
return clickAccountApi.UpdateClickwrapVersion(accountId, clickwrapId, clickwrapVersion, clickwrapRequest);
27+
}
28+
29+
private static ClickwrapRequest BuildUpdateClickwrapVersionRequest()
30+
{
31+
var clickwrapRequest = new ClickwrapRequest
32+
{
33+
Status = "active"
34+
};
35+
36+
return clickwrapRequest;
37+
}
38+
}
39+
}

0 commit comments

Comments
 (0)