PrivateFunctions/Get-ApiEntitiesToUpload.ps1

<#
 
  Prepare DQ Monitor Api entity objects to upload.
 
#>

Function Get-ApiEntitiesToUpload
{
  [OutputType([Array])]
  [CmdletBinding()]
  Param(
    [Parameter(Mandatory=$True)]
    [ValidateNotNullOrEmpty()]
    [String] $EntityJsonRaw
  )

  Write-Verbose "Voorbereiden requests naar de server..."
  $EntityJsonObject = $EntityJsonRaw | ConvertFrom-Json
  $EntitiesToUpload = @()

  If ($EntityJsonObject.entities.Count -eq 0)
  {
    Return $EntitiesToUpload;
  }

  ForEach($CustomEntity in $EntityJsonObject.entities)
  {       
    Try 
    {
      $EntitiesToUpload += [PSCustomObject]@{
        Entity = @{
          Name = $CustomEntity.Name;
          PluralName = $CustomEntity.pluralName;
          Description = $CustomEntity.description;
        }
      }
    }
    Catch
    {
      Write-Warning "Er is een fout opgetreden bij het voorbereiden van entiteit '$($CustomEntity.name)'. Controleer de syntax van het bestand."
      Write-Warning "Deze entiteit wordt genegeerd."
      Continue; 
    }
  }

  Return $EntitiesToUpload;
}