root.psm1
function Get-AvailableLists { [CmdletBinding(SupportsShouldProcess=$false)] Param( [Parameter(Mandatory=$true,HelpMessage="URL to the WSDL, defaults to Staging")] [String]$WSDL = "http://staging-api.call-em-all.com/webservices/ceaapi_v3-2-13.asmx?wsdl", [Parameter(Mandatory=$true,HelpMessage="Username to connect with")] [String]$Username, [Parameter(Mandatory=$true,HelpMessage="Pin to connect with")] [String]$Pin ) Begin { $CallEmAllProxy = New-WebServiceProxy -Uri $WSDL -Namespace "com.callemall.powershell" -Class "psCallEmAll" Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "pin" -Value $Pin -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "username" -Value $Username -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "WSDL" -Value $WSDL -Force Add-Member -InputObject $CallEmAllProxy -MemberType ScriptMethod -Name "createRequestObject" -Force -Value { Param ([String] $shortType) $request = New-Object -Type "com.callemall.powershell.$shortType" if ($request.GetType().GetProperties().Name -contains "username") {$request.username = $this.username} if ($request.GetType().GetProperties().Name -contains "pin") {$request.pin = $this.pin} return $request } } Process { $request = $CallEmAllProxy.createRequestObject("GetAvailableListsRequestType") $response = $CallEmAllProxy.GetAvailableLists($request) If ($response.errorCode -ne 0) { return $response.errorMessage } Else { [com.callemall.powershell.ListDetail[]] $lists = $response.lists return $lists } } } function Get-ListContents { [CmdletBinding(SupportsShouldProcess=$false)] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,HelpMessage="The listID to retrieve members of")] [String] $ListID = "0", [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true)] $PageSize=300, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true)] $Page=1, [Parameter(Mandatory=$true,HelpMessage="URL to the WSDL, defaults to Staging")] [String]$WSDL = "http://staging-api.call-em-all.com/webservices/ceaapi_v3-2-13.asmx?wsdl", [Parameter(Mandatory=$true,HelpMessage="Username to connect with")] [String]$Username, [Parameter(Mandatory=$true,HelpMessage="Pin to connect with")] [String]$Pin ) Begin { $CallEmAllProxy = New-WebServiceProxy -Uri $WSDL -Namespace "com.callemall.powershell" -Class "psCallEmAll" Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "pin" -Value $Pin -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "username" -Value $Username -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "WSDL" -Value $WSDL -Force Add-Member -InputObject $CallEmAllProxy -MemberType ScriptMethod -Name "createRequestObject" -Force -Value { Param ([String] $shortType) $request = New-Object -Type "com.callemall.powershell.$shortType" if ($request.GetType().GetProperties().Name -contains "username") {$request.username = $this.username} if ($request.GetType().GetProperties().Name -contains "pin") {$request.pin = $this.pin} return $request } } Process { [com.callemall.powershell.GetListContentsRequestType] $request = $CallEmAllProxy.createRequestObject("GetListcontentsRequestType") $request.listID = $ListID $request.pageSize = $PageSize $request.whatPage = $Page [com.callemall.powershell.GetListContentsResponseType] $response = $CallEmAllProxy.GetListContents($request) if ($response.errorCode -ne 0) { return $response.errorMessage } else { return $response.ListContents } } } function Delete-Person { [CmdletBinding(SupportsShouldProcess=$true)] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)] [String] $PersonID, [Parameter(Mandatory=$true,HelpMessage="URL to the WSDL, defaults to Staging")] [String]$WSDL = "http://staging-api.call-em-all.com/webservices/ceaapi_v3-2-13.asmx?wsdl", [Parameter(Mandatory=$true,HelpMessage="Username to connect with")] [String]$Username, [Parameter(Mandatory=$true,HelpMessage="Pin to connect with")] [String]$Pin ) Begin { $CallEmAllProxy = New-WebServiceProxy -Uri $WSDL -Namespace "com.callemall.powershell" -Class "psCallEmAll" Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "pin" -Value $Pin -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "username" -Value $Username -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "WSDL" -Value $WSDL -Force Add-Member -InputObject $CallEmAllProxy -MemberType ScriptMethod -Name "createRequestObject" -Force -Value { Param ([String] $shortType) $request = New-Object -Type "com.callemall.powershell.$shortType" if ($request.GetType().GetProperties().Name -contains "username") {$request.username = $this.username} if ($request.GetType().GetProperties().Name -contains "pin") {$request.pin = $this.pin} return $request } } Process { [com.callemall.powershell.DeletePersonRequestType] $request = $CallEmAllProxy.createRequestObject("DeletePersonRequestType") $request.personID = $PersonID [com.callemall.powershell.DeletePersonResponseType] $response = $CallEmAllProxy.DeletePerson($request) if ($response.errorCode -ne 0) { return $response.errorMessage } } } function Create-PersonID { [CmdletBinding(SupportsShouldProcess=$true)] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)] [String] $FirstName, [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)] [String] $LastName, [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)] [String] $PrimaryPhone, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true)] [String] $SecondaryPhone, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true)] [String] $TertiaryPhone, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true)] [String] $Notes, [Parameter(Mandatory=$true,HelpMessage="URL to the WSDL, defaults to Staging")] [String]$WSDL = "http://staging-api.call-em-all.com/webservices/ceaapi_v3-2-13.asmx?wsdl", [Parameter(Mandatory=$true,HelpMessage="Username to connect with")] [String]$Username, [Parameter(Mandatory=$true,HelpMessage="Pin to connect with")] [String]$Pin ) Begin { $CallEmAllProxy = New-WebServiceProxy -Uri $WSDL -Namespace "com.callemall.powershell" -Class "psCallEmAll" Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "pin" -Value $Pin -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "username" -Value $Username -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "WSDL" -Value $WSDL -Force Add-Member -InputObject $CallEmAllProxy -MemberType ScriptMethod -Name "createRequestObject" -Force -Value { Param ([String] $shortType) $request = New-Object -Type "com.callemall.powershell.$shortType" if ($request.GetType().GetProperties().Name -contains "username") {$request.username = $this.username} if ($request.GetType().GetProperties().Name -contains "pin") {$request.pin = $this.pin} return $request } [com.callemall.powershell.CreatePersonIDRequestType] $request = $CallEmAllProxy.createRequestObject("CreatePersonIDRequestType") } Process { [com.callemall.powershell.CreatePersonIDDetailData] $person = $CallEmAllProxy.createRequestObject("CreatePersonIDDetailData") $person.FirstName = $FirstName $person.LastName = $LastName $person.PrimaryPhone = $PrimaryPhone $person.SecondaryPhone = $SecondaryPhone $person.TertiaryPhone = $TertiaryPhone $person.Notes = $Notes $request.personsToAdd = $request.personsToAdd + $person } End { [com.callemall.powershell.CreatePersonIDResponseType] $response = $CallEmAllProxy.CreatePersonID($request) if ($response.errorCode -ne 0) { return $response.errorMessage } Else { return $response.InsertResults } } } function Update-PersonID { [CmdletBinding(SupportsShouldProcess=$true)] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)] [String] $PersonID, [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)] [String] $FirstName, [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)] [String] $LastName, [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)] [String] $PrimaryPhone, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true)] [String] $SecondaryPhone, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true)] [String] $TertiaryPhone, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true)] [String] $Notes, [Parameter(Mandatory=$true,HelpMessage="URL to the WSDL, defaults to Staging")] [String]$WSDL = "http://staging-api.call-em-all.com/webservices/ceaapi_v3-2-13.asmx?wsdl", [Parameter(Mandatory=$true,HelpMessage="Username to connect with")] [String]$Username, [Parameter(Mandatory=$true,HelpMessage="Pin to connect with")] [String]$Pin ) Begin { $CallEmAllProxy = New-WebServiceProxy -Uri $WSDL -Namespace "com.callemall.powershell" -Class "psCallEmAll" Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "pin" -Value $Pin -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "username" -Value $Username -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "WSDL" -Value $WSDL -Force Add-Member -InputObject $CallEmAllProxy -MemberType ScriptMethod -Name "createRequestObject" -Force -Value { Param ([String] $shortType) $request = New-Object -Type "com.callemall.powershell.$shortType" if ($request.GetType().GetProperties().Name -contains "username") {$request.username = $this.username} if ($request.GetType().GetProperties().Name -contains "pin") {$request.pin = $this.pin} return $request } } Process { [com.callemall.powershell.UpdatePersonIDRequestType] $request = $CallEmAllProxy.createRequestObject("UpdatePersonIDRequestType") [com.callemall.powershell.PersonDetailData] $person = $CallEmAllProxy.createRequestObject("PersonDetailData") $person.PersonID = $PersonID $person.FirstName = $FirstName $person.LastName = $LastName $person.PrimaryPhone = $PrimaryPhone $person.SecondaryPhone = $SecondaryPhone $person.TertiaryPhone = $TertiaryPhone $person.Notes = $Notes $request.PersonRecords += $person [com.callemall.powershell.UpdatePersonIDResponseType] $response = $CallEmAllProxy.UpdatePersonID($request) if ($response.errorCode -ne 0) { return $response.errorMessage } Else { return $response.updateFailures } } End { } } function Add-PersonsToList { [CmdletBinding(SupportsShouldProcess=$true,DefaultParameterSetName="SingleID")] Param( [Parameter(Mandatory=$true)] [String]$ListID, [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,ParameterSetName="SingleID")] [String] $PersonID, [Parameter(Mandatory=$true,ParameterSetName="ArrayID")] [String[]] $PersonIDs, [Parameter(Mandatory=$true,HelpMessage="URL to the WSDL, defaults to Staging")] [String]$WSDL = "http://staging-api.call-em-all.com/webservices/ceaapi_v3-2-13.asmx?wsdl", [Parameter(Mandatory=$true,HelpMessage="Username to connect with")] [String]$Username, [Parameter(Mandatory=$true,HelpMessage="Pin to connect with")] [String]$Pin ) Begin { $CallEmAllProxy = New-WebServiceProxy -Uri $WSDL -Namespace "com.callemall.powershell" -Class "psCallEmAll" Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "pin" -Value $Pin -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "username" -Value $Username -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "WSDL" -Value $WSDL -Force Add-Member -InputObject $CallEmAllProxy -MemberType ScriptMethod -Name "createRequestObject" -Force -Value { Param ([String] $shortType) $request = New-Object -Type "com.callemall.powershell.$shortType" if ($request.GetType().GetProperties().Name -contains "username") {$request.username = $this.username} if ($request.GetType().GetProperties().Name -contains "pin") {$request.pin = $this.pin} return $request } [com.callemall.powershell.AddPersonsToListRequestType] $request = $CallEmAllProxy.createRequestObject("AddPersonsToListRequestType") [com.callemall.powershell.AddPersonsToListDetailData[]] $Data = @() } Process { if ($PersonIDs) { $PersonIDs | %{[com.callemall.powershell.AddPersonsToListDetailData] $DetailData = New-Object -TypeName com.callemall.powershell.AddPersonsToListDetailData, $DetailData.PersonID = $_; $Data += $DetailData} } else { [com.callemall.powershell.AddPersonsToListDetailData] $DetailData = New-Object -TypeName com.callemall.powershell.AddPersonsToListDetailData $DetailData.PersonID = $PersonID $Data += $DetailData } } End { $request.PersonIDsToAdd = $Data $request.listID = $ListID [com.callemall.powershell.AddPersonsToListResponseType] $response = $CallEmAllProxy.AddPersonsToList($request) If ($response.errorCode -ne 0) { return $response.errorMessage } Else { return $response.ListContents } } } function Get-ListIDByName { [CmdletBinding(SupportsShouldProcess=$false)] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)] [String]$ListName, [Parameter(Mandatory=$true,HelpMessage="URL to the WSDL, defaults to Staging")] [String]$WSDL = "http://staging-api.call-em-all.com/webservices/ceaapi_v3-2-13.asmx?wsdl", [Parameter(Mandatory=$true,HelpMessage="Username to connect with")] [String]$Username, [Parameter(Mandatory=$true,HelpMessage="Pin to connect with")] [String]$Pin ) Begin { $CallEmAllProxy = New-WebServiceProxy -Uri $WSDL -Namespace "com.callemall.powershell" -Class "psCallEmAll" Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "pin" -Value $Pin -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "username" -Value $Username -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "WSDL" -Value $WSDL -Force Add-Member -InputObject $CallEmAllProxy -MemberType ScriptMethod -Name "createRequestObject" -Force -Value { Param ([String] $shortType) $request = New-Object -Type "com.callemall.powershell.$shortType" if ($request.GetType().GetProperties().Name -contains "username") {$request.username = $this.username} if ($request.GetType().GetProperties().Name -contains "pin") {$request.pin = $this.pin} return $request } } Process { [com.callemall.powershell.GetListIDByNameRequestType] $request = $CallEmAllProxy.createRequestObject("GetListIDByNameRequestType") $request.listName = $ListName [com.callemall.powershell.GetListIDByNameResponseType] $response = $CallEmAllProxy.GetListIDByName($request) If ($response.errorCode -ne 0) { return $response.errorMessage } Else { return $response.listID } } } function Create-NewList { [CmdletBinding(SupportsShouldProcess=$true)] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)] [String] $ListName, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true)] [Switch] $IsAutoReplyOn, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true)] [String] $AutoReplyMessage, [Parameter(Mandatory=$true,HelpMessage="URL to the WSDL, defaults to Staging")] [String]$WSDL = "http://staging-api.call-em-all.com/webservices/ceaapi_v3-2-13.asmx?wsdl", [Parameter(Mandatory=$true,HelpMessage="Username to connect with")] [String]$Username, [Parameter(Mandatory=$true,HelpMessage="Pin to connect with")] [String]$Pin ) Begin { $CallEmAllProxy = New-WebServiceProxy -Uri $WSDL -Namespace "com.callemall.powershell" -Class "psCallEmAll" Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "pin" -Value $Pin -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "username" -Value $Username -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "WSDL" -Value $WSDL -Force Add-Member -InputObject $CallEmAllProxy -MemberType ScriptMethod -Name "createRequestObject" -Force -Value { Param ([String] $shortType) $request = New-Object -Type "com.callemall.powershell.$shortType" if ($request.GetType().GetProperties().Name -contains "username") {$request.username = $this.username} if ($request.GetType().GetProperties().Name -contains "pin") {$request.pin = $this.pin} return $request } } Process { [com.callemall.powershell.CreateNewListRequestType] $request = $CallEmAllProxy.createRequestObject("CreateNewListRequestType") $request.listName = $ListName if ($IsAutoReplyOn) { $request.IsAutoReplyOn = "1" } else { $request.IsAutoReplyOn = "0" } $request.AutoReplyMessage = $AutoReplyMessage [com.callemall.powershell.CreateNewListResponseType] $response = $CallEmAllProxy.CreateNewList($request) if ($response.errorCode -ne 0) { return $response.errorMessage } Else { return $response.listID } } } function Get-PersonIDDetails‏ { [CmdletBinding(SupportsShouldProcess=$false)] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)] [String]$PersonID, [Parameter(Mandatory=$true,HelpMessage="URL to the WSDL, defaults to Staging")] [String]$WSDL = "http://staging-api.call-em-all.com/webservices/ceaapi_v3-2-13.asmx?wsdl", [Parameter(Mandatory=$true,HelpMessage="Username to connect with")] [String]$Username, [Parameter(Mandatory=$true,HelpMessage="Pin to connect with")] [String]$Pin ) Begin { $CallEmAllProxy = New-WebServiceProxy -Uri $WSDL -Namespace "com.callemall.powershell" -Class "psCallEmAll" Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "pin" -Value $Pin -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "username" -Value $Username -Force Add-Member -InputObject $CallEmAllProxy -MemberType NoteProperty -Name "WSDL" -Value $WSDL -Force Add-Member -InputObject $CallEmAllProxy -MemberType ScriptMethod -Name "createRequestObject" -Force -Value { Param ([String] $shortType) $request = New-Object -Type "com.callemall.powershell.$shortType" if ($request.GetType().GetProperties().Name -contains "username") {$request.username = $this.username} if ($request.GetType().GetProperties().Name -contains "pin") {$request.pin = $this.pin} return $request } } Process { [com.callemall.powershell.GetPersonIDDetailsRequestType] $request = $CallEmAllProxy.createRequestObject("GetPersonIDDetailsRequestType") $request.personID = $PersonID [com.callemall.powershell.GetPersonIDDetailsResponseType] $response = $CallEmAllProxy.GetPersonIDDetails($request) If ($response.errorCode -ne 0) { return $response.errorMessage } Else { return $response.ListContents } } } Export-ModuleMember -Function * |