Public/AssetLayouts.psm1

function Get-HuduAssetLayouts {
    Param (
        [String]$name ='',
        [String]$layoutid=''
    )
    
    if ($layoutid) {
        $AssetLayout = hudu_request -Method get -Resource "/api/v1/asset_layouts/$($layoutid)"
        return $AssetLayout.asset_layout
    } else {
        
        $i = 1;
        $AllAssetLayouts = do {
        $AssetLayouts = hudu_request -Method get -Resource "/api/v1/asset_layouts?page=$i&page_size=1000"
        $i++
        $AssetLayouts.Asset_Layouts
        } while ($AssetLayouts.asset_layouts.count % 1000 -eq 0 -and $AssetLayouts.asset_layouts.count -ne 0)
        
        
        if ($name) {
        $AllAssetLayouts = $AllAssetLayouts | where-object {$_.name -eq $name}
        }
        
        return $AllAssetLayouts
    }
}
        

function New-HuduAssetLayout {
    Param (
        [Parameter(Mandatory=$true)]
        [String]$name ='',
        [Parameter(Mandatory=$true)]
        [String]$icon='',
        [Parameter(Mandatory=$true)]
        [String]$color='',
        [Parameter(Mandatory=$true)]
        [String]$icon_color='',
        [bool]$include_passwords='',
        [bool]$include_photos='',
        [bool]$include_comments='',
        [bool]$include_files='',
        [String]$password_types='',
        [Parameter(Mandatory=$true)]
        [array]$fields='',
        [bool]$active=$true
    )
    

    $asset_layout = @{asset_layout = @{}}
    
    $asset_layout.asset_layout.add('name',$name)
    $asset_layout.asset_layout.add('icon',$icon)
    $asset_layout.asset_layout.add('color',$color)
    $asset_layout.asset_layout.add('icon_color',$icon_color)
    $asset_layout.asset_layout.add('fields',$fields)
    $asset_layout.asset_layout.add('active',$active)
        
    if ($include_passwords) {
        $asset_layout.asset_layout.add('include_passwords',$include_passwords)
    }
    
    if ($include_photos) {
        $asset_layout.asset_layout.add('include_photos',$include_photos)
    }
    
    if ($include_comments) {
        $asset_layout.asset_layout.add('include_comments',$include_comments)
    }
    
    if ($include_files) {
        $asset_layout.asset_layout.add('include_files',$include_files)
    }
    
    if ($password_types) {
        $asset_layout.asset_layout.add('password_types',$password_types)
    }
    
    
    $json = $asset_layout | convertto-json -Depth 10
    
    $response = hudu_request -Method post -Resource "/api/v1/asset_layouts" -body $json
    
    $response
    
    
    
    
}

function Get-HuduAssetLayoutFieldID {
    Param (
        [Parameter(Mandatory=$true)]
        [String]$name ='',
        [Parameter(Mandatory=$true)]
        [Int]$asset_layout_id=''
    )
    
    $layout = Get-HuduAssetLayouts -layoutid $asset_layout_id
    
    $fields = [Collections.Generic.List[Object]]($layout.fields)
    $index = $fields.FindIndex( {$args[0].label -eq $name} )
    $fields[$index].id
    
    
}