Functions/Public/Get-RCOrganismeExtraParlementaire.ps1
Function Get-RCOrganismeExtraParlementaire { <# .SYNOPSIS Retoure les organisme extra parlementaires .DESCRIPTION Permet de lister tous les organisme extra parlementaires. En utilisant le paramètre "-slug" il est possible recuperer un organisme extra parlementaire. .PARAMETER slug Permet de recuper un organisme extra parlementaire précis. Recupere .PARAMETER Full Permet de recuper un organisme précis, Ainsi que tous les députes qui sont membre de l'organisme (Disponible dans la propriété "Membres"). Attention ! Ce paramètre est gourmande en ressource réseau, et peux être source lenteur. Il est préferable de l'utiliser accompagné du paramètre 'slug' afin de limiter l'impacte sur les performances réseau. .EXAMPLE Get-RCOrganismeExtraParlementaire Id Nom Type Membres -- --- ---- ------- 297 Observatoire des espaces naturels, agricoles et forestiers extra 440 Observatoire national de la sécurité et de l'accessibilité des établissements d'enseignement extra 446 Observatoire national du service public de l'électricité et du gaz extra 333 Office franco-québécois pour la jeunesse extra 36 Section française de l'assemblée parlementaire de la francophonie a.p.f extra (...) List les Organismes Extra palementaire .NOTES -Version: 1.0 -Author: Stéphane van Gulick -CreationDate: 01/02/2018 -LastModifiedDate: 01/02/2018 -History: 01/02/2018: Creation : Stéphane van Gulick Blog: www.powershelldistrict.com Site Source: www.nosdeputes.fr #> [cmdletBinding(DefaultParameterSetName="all")] Param( [Parameter(Mandatory=$False,ParameterSetName="slug")] [ValidateNotNullOrEmpty()] [String[]]$slug, [Switch]$Full ) $Url = $rc_data.urls.extra switch ($PsCmdlet.ParameterSetName) { "slug"{ #Aujourd'hui (2/18/2018) les donnees dispo via l'api manque les document produits. #https://www.nosdeputes.fr/organisme/bureau-de-l-assemblee-nationale/json Retourne finalement QUE la liste des dep membres. #issue ouvert ici --> https://github.com/regardscitoyens/nosdeputes.fr/issues/98 foreach ($sl in $slug){ try{ $AllOrganismes = (Invoke-restmethod -uri $url).Organismes.organisme }Catch [System.Net.WebException]{ write-warning "Server indisponible: Merci de vérifier vôtre connection internet." break }Catch{ $_.exception.message } $ret = $AllOrganismes | ? {$_.slug -eq $slug} $obj = [Organisme]::new($ret.id,$ret.nom,$ret.type,$ret.slug,$ret.url_nosdeputes_api) if ($Full){ $obj._LoadMembres() } $obj $obj = $null Continue; } } "all"{ try{ $all = invoke-restMethod $Url }Catch [System.Net.WebException]{ write-warning "Server indisponible: Merci de vérifier vôtre connection internet." break }Catch{ $_.exception.message } foreach ($ret in $all.organismes.organisme){ $obj = [Organisme]::new($ret.id,$ret.nom,$ret.type,$ret.slug,$ret.url_nosdeputes_api) if ($Full){ $obj._LoadMembres() } $obj $obj = $null } } Default { throw "Parameter set -> $($PsCmdlet.ParameterSetName) is undefined" } } } |