Then modify the sections in Begin to include the new ClientID variable, so that that section appears Thus:
Begin
{
[CWApiRestSession] $cwSession = $null;
Then in the Private\PSCWApiClasses.ps1 file Near line 154 I added a line to define the $clientID variable. So the lines immediately following the CWApiRestSession declaration on line 162 now look *thus.
CWApiRestSession ([string] $domain, [string] $companyName, [string] $publicKey, [string] $privateKey, [string] $clientID)
{
$this.Domain = $domain;
$this.CompanyName = $companyName;
$this.PublicKey = $publicKey;
$this.PrivateKey = $privateKey;
$this.clientID = $clientID;
Then in the overload for including the overrideSSL function beginning around line 178 it it also included there.
CWApiRestSession ([string] $domain, [string] $companyName, [string] $publicKey, [string] $privateKey, [string] $clientID, [bool] $overrideSSL)
{
$this.Domain = $domain;
$this.CompanyName = $companyName;
$this.PublicKey = $publicKey;
$this.PrivateKey = $privateKey;
$this.OverrideSSL = $overrideSSL;
$this.ClientID = $clientID;
Then in the definition of the _buildHTTPHeader function, I added the header for clientId. So around line 211-213 it now looks like this:
That's the end of the changes that I've made to date. It appears to be passing things correctly now, but I won't know for certain how well it works until they start requiring that clientId header.
They will start requiring a generated GUID in the clientId header sometime in Mid-March. This will completely break this module.
I have modified my copy to add the extra parameter. To accomplish this you must modify the following files. Public\CWSession.ps1
In the param section add a new parameter for ClientID. I added this between PrivateKey and OverrideSSL which ended in my lines 32-35 appearing thus:
Then modify the sections in Begin to include the new ClientID variable, so that that section appears Thus: Begin { [CWApiRestSession] $cwSession = $null;
Then in the Private\PSCWApiClasses.ps1 file Near line 154 I added a line to define the $clientID variable. So the lines immediately following the CWApiRestSession declaration on line 162 now look *thus. CWApiRestSession ([string] $domain, [string] $companyName, [string] $publicKey, [string] $privateKey, [string] $clientID) { $this.Domain = $domain; $this.CompanyName = $companyName; $this.PublicKey = $publicKey; $this.PrivateKey = $privateKey; $this.clientID = $clientID;
Then in the overload for including the overrideSSL function beginning around line 178 it it also included there. CWApiRestSession ([string] $domain, [string] $companyName, [string] $publicKey, [string] $privateKey, [string] $clientID, [bool] $overrideSSL) { $this.Domain = $domain; $this.CompanyName = $companyName; $this.PublicKey = $publicKey; $this.PrivateKey = $privateKey; $this.OverrideSSL = $overrideSSL; $this.ClientID = $clientID;
Then in the definition of the _buildHTTPHeader function, I added the header for clientId. So around line 211-213 it now looks like this:
That's the end of the changes that I've made to date. It appears to be passing things correctly now, but I won't know for certain how well it works until they start requiring that clientId header.