Functions/BloxOne/Private/CubeJS.ps1

function Get-B1CubeJSCubes {
    param(
        [String]$Cube
    )
    $Context = (Get-B1Context).CurrentContext
    if (-not $Script:B1CubeCache) {
        $Script:B1CubeCache = @{}
    }
    if (-not $Script:B1CubeCache."$($Context)") {
        $Script:B1CubeCache."$($Context)" = Invoke-CSP -Method "GET" -Uri "$(Get-B1CSPUrl)/api/cubejs/v1/meta" | Select-Object -ExpandProperty result | Select-Object -ExpandProperty cubes
    }
    if ($Cube) {
        $Result = $Script:B1CubeCache."$($Context)" | Where-Object {$_.name -eq $Cube}
        if ($Result) {
            return $Result
        } else {
            Write-Error "Unable to find Cube with name: $($Cube)"
            return $null
        }
    } else {
        return $Script:B1CubeCache."$($Context)"
    }
}

function Get-B1CubeJSMeasures {
    param(
        [Parameter(Mandatory=$true)]
        [String]$Cube
    )
    $CubeResult = Get-B1CubeJSCubes -Cube $Cube
    return $CubeResult.measures
}

function Get-B1CubeJSSegments {
    param(
        [Parameter(Mandatory=$true)]
        [String]$Cube
    )
    $CubeResult = Get-B1CubeJSCubes -Cube $Cube
    return $CubeResult.segments
}

function Get-B1CubeJSDimensions {
    param(
        [Parameter(Mandatory=$true)]
        [String]$Cube
    )
    $CubeResult = Get-B1CubeJSCubes -Cube $Cube
    return $CubeResult.dimensions
}