Private/Get-ApiUrl.ps1

<############################################
    Module : VsoReleaseManagerClient
    Company : ItsZap Inc.
    Author : Riwut Libinuko
    Blog : http://blog.libinuko.com
    Licence : GNU GENERAL PUBLIC LICENSE
    Copyright © 2016, ItsZap Inc, Riwut Libinuko (cakriwut@gmail.com). All Rights Reserved
#############################################>


function Get-ApiUrl {
    
    param(
        # Account
        [Parameter(Mandatory=$true)]
        [string]
        $account,
        # Project
        [Parameter(Mandatory=$false)]
        [string]
        $project,
        # Method
        [Parameter(Mandatory=$true)]
        [string]
        $method,
        # Query
        [Parameter(Mandatory=$true)]
        [HashTable]
        $query
    )

   $vsoApiUrl = @()
   $vsoApiUrl += "https://{0}.visualstudio.com/DefaultCollection" -f $account
   if(-not [string]::IsNullOrEmpty($project)){
       $vsoApiUrl += $project
   }
   $vsoApiUrl += "_apis/{0}" -f $method

   $queryStr = @()
   $query.GetEnumerator() |ForEach-Object {
      $queryStr += "$($_.Name)=$($_.Value)"
   }

   return $($vsoApiUrl -join "/")+ "?" + $($queryStr -join "&")
}