11package com .docusign .controller .examples ;
2-
2+ import java . util . Objects ;
33import java .io .IOException ;
44
55import javax .servlet .http .HttpServletResponse ;
88import org .springframework .stereotype .Controller ;
99import org .springframework .ui .ModelMap ;
1010import org .springframework .web .bind .annotation .RequestMapping ;
11-
11+ import com . docusign . model . AccountRoleSettingsPatch ;
1212import com .docusign .DSConfiguration ;
1313import com .docusign .esign .api .AccountsApi ;
1414import com .docusign .esign .client .ApiException ;
15+ import com .docusign .esign .model .AccountRoleSettings ;
1516import com .docusign .esign .model .PermissionProfile ;
1617import com .docusign .model .DoneExample ;
1718import com .docusign .model .Session ;
1819import com .docusign .model .User ;
19-
20+ import com . google . gson . Gson ;
2021/**
2122 * Permission profiles are collections of account settings that determine the
2223 * behavior and actions available to the user groups to which they're applied.
@@ -42,11 +43,15 @@ protected Object doWork(WorkArguments args, ModelMap model, HttpServletResponse
4243 throws ApiException , IOException {
4344 // Step 2. Construct your API headers
4445 AccountsApi accountsApi = createAccountsApi (session .getBasePath (), user .getAccessToken ());
45-
46+ AccountRoleSettings settings = DsModelUtils . createDefaultRoleSettings ();
4647 // Step 3. Construct your request body
48+ Gson gson = new Gson ();
49+ AccountRoleSettings newSettings = gson .fromJson (gson .toJson (settings ), AccountRoleSettingsPatch .class );
50+ // we're casting as the overload class type and filling in the defualt setting for sending version to fix a gap in the swagger spec.
51+ ((AccountRoleSettingsPatch ) newSettings ).signingUiVersion ("1" );
4752 PermissionProfile profile = new PermissionProfile ()
4853 .permissionProfileName (args .getPermissionProfileName ())
49- .settings (DsModelUtils . createDefaultRoleSettings () );
54+ .settings (newSettings );
5055
5156 // Step 4. Call the eSignature REST API
5257 PermissionProfile newProfile = accountsApi .createPermissionProfile (session .getAccountId (), profile );
0 commit comments