Functions/Public/Get-RCOrganismeParlementaire.ps1



Function Get-RCOrganismeParlementaire {
    <#
    .SYNOPSIS
    Retoure les organisme parlementaires
     
    .DESCRIPTION
    Permet de liste les organisme parlementaires.
     
    .PARAMETER slug
   Permet de recuper un organisme précis.
    
    .PARAMETER Full
   Permet de recuper un organisme précis, avec les memebres y compris (Disponible dans la propriété "Membres".
    
     
    .EXAMPLE
    Get-RCOrganismeParlementaire
 
     Id Nom
    -- ---
    2 Bureau de l'assemblée nationale
    22 Comité d'évaluation et de contrôle des politiques publiques
    24 Commission chargée de l'application de l'article 26 de la constitution
    374 Commission d'enquête chargée d'examiner les décisions de l'État en matière de politique industrielle, au regard ...
    574 Commission d'enquête sur la sûreté et la sécurité des installations nucléaires
    560 Commission d'enquête sur les maladies et pathologies professionnelles dans l'industrie risques chimiques...
    16 Commission de la défense nationale et des forces armées
    11 Commission des affaires culturelles et de l'éducation
    13 Commission des affaires économiques
    18 Commission des affaires étrangères
    (...)
     
    .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
     
    )


    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){
                    $url = ""
                    $url = $RC_data.Urls.OrganismeParlementaire.Replace("s/parlementaire/json",("/" + $sl + "/json"))
                    $Organisme = Invoke-restmethod -uri $url
                     
                    Foreach ($ret in $Organisme.Organisme){
                         
                        #[Organisme]::new($ret.id,$ret.nom,$ret.type,$ret.slug,$ret.url_nosdeputes_api)
                         
                         
                    }
                    #[ProjetDeLoi]::New($ret.id,$ret.Titre,$ret.nb_interventions,$ret.min_date,$ret.max_date,$ret.intervenants,$ret.documents,$ret.seances,$ret.soussections)
                    Continue;
                }
        }
        #>

        "all"{
            
            
            try{
                $all = invoke-restMethod $RC_data.Urls.OrganismeParlementaire
            }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.GetMembres()
                }

                $obj
                $obj = $null
            }
        }
        Default {
            throw "Parameter set -> $($PsCmdlet.ParameterSetName) is undefined"
        }
    }

}