diff --git a/src/components/global/selector/selector.riot b/src/components/global/selector/selector.riot index 262d42b..96595ed 100644 --- a/src/components/global/selector/selector.riot +++ b/src/components/global/selector/selector.riot @@ -106,9 +106,19 @@ * data: Contenant des facets etc... * */ state: { - api: "", + api: { + link: "https://data.enseignementsup-recherche.gouv.fr/api/records/1.0/search/?dataset=fr-esr-parcoursup&q=&lang=fr&rows=0&sort=tri", + facet: { + filiaire: "fili", + formation: "form_lib_voe_acc", + spec: "fil_lib_voe_acc" + }, + rafine: { + + } + }, page: { - curIndex: 0, // section n.0 -> n.2 + curIndex: 0, // section n.0 -> n.2. cat: null, name: [ "formation", @@ -116,11 +126,11 @@ "filière de formation détaillée" ], }, - data: null /* JSON a traiter en fonction de la section choisit */ + data: null /* JSON a traiter en fonction de la section choisit. */ }, /** - * Retourner a la section n-1 + * Retourner a la section n-1. * */ previousPage(event){ try { @@ -132,7 +142,7 @@ this.getDataSection1(this.state.page.cat) } - if(this.state.page.curIndex !== 0) { // Sinon ca va aller trop loin a la section 2 + if(this.state.page.curIndex !== 0) { // Sinon ca va aller trop loin a la section 0. this.update({ curIndex: this.state.page.curIndex-- }); } } @@ -142,9 +152,9 @@ }, /** - * Aller a la section n+1 - * @param event Choix fait par l'utilisateur a la section n - * todo: Faire en sorte de refaire des calls api en fonction de la section choisit (this.getSpecFor(nom_formation:String) et this.getSpecPlusFor(nom_formation:String) + * Aller a la section n+1. + * @param event Choix fait par l'utilisateur a la section n. + * todo: Faire en sorte de refaire des calls api en fonction de la section choisit (this.getSpecFor(nom_formation:String) et this.getSpecPlusFor(nom_formation:String). * */ nextPage(event) { try { @@ -157,7 +167,7 @@ } else if(this.state.page.curIndex === 2) { } - if(this.state.page.curIndex !== 2) { // Sinon ca va aller trop loin a la section 2 + if(this.state.page.curIndex !== 2) { // Sinon ca va aller trop loin a la section 2. this.update({ curIndex: this.state.page.curIndex++ }); } } @@ -167,14 +177,15 @@ }, /** - * Pour recuperer les données directement depuis l'API avec la facet: "fili" + * Pour recuperer les données directement depuis l'API. + * Chaque getDataSectionN() sert a charge les donnees en fonction de la section choisit. * */ async getDataSection0() { try { - const api = `https://data.enseignementsup-recherche.gouv.fr/api/records/1.0/search/?dataset=fr-esr-parcoursup&q=&lang=fr&rows=0&sort=tri` + - `&facet=fili&timezone=Europe%2FBerlin`; + const link = `${ this.state.api.link }` + + `&facet=${this.state.api.facet.filiaire}`; - const response = await fetch(api); + const response = await fetch(link); const data = await response.json(); this.update({ data: data.facet_groups[0].facets }); } catch (e) { @@ -183,25 +194,35 @@ }, async getDataSection1() { - const api = `https://data.enseignementsup-recherche.gouv.fr/api/records/1.0/search/?dataset=fr-esr-parcoursup&q=&lang=fr&rows=0&sort=tri` + - `&facet=fili&facet=form_lib_voe_acc&facet=fil_lib_voe_acc` + - `&refine.fili=${ this.state.page.cat }` + - `&timezone=Europe%2FBerlin` + try { + const link = `${ this.state.api.link }` + + `&facet=${ this.state.api.facet.filiaire }` + + `&facet=${ this.state.api.facet.formation }` + + `&facet=${ this.state.api.facet.spec }` + + `&refine.fili=${ this.state.page.cat }` - const response = await fetch(api); - const data = await response.json(); - this.update({ data: data.facet_groups[1].facets }); + const response = await fetch(link); + const data = await response.json(); + this.update({ data: data.facet_groups[1].facets }); + } catch (e) { + console.error(e); + } }, - async getDataSection2() { - const api = `https://data.enseignementsup-recherche.gouv.fr/api/records/1.0/search/?dataset=fr-esr-parcoursup&q=&lang=fr&rows=0&sort=tri` + - `&facet=fili&facet=form_lib_voe_acc` + - `&facet=fil_lib_voe_acc` + - `&refine.fili=${ this.state.page.cat }` + - `&timezone=Europe%2FBerlin` - const response = await fetch(api); - const data = await response.json(); - this.update({ data: data.facet_groups[2].facets }); + async getDataSection2() { + try { + const api = `${ this.state.api.link }` + + `&facet=${ this.state.api.facet.filiaire }` + + `&facet=${ this.state.api.facet.formation }` + + `&facet=${ this.state.api.facet.spec }` + + `&refine.fili=${ this.state.page.cat }` + + const response = await fetch(api); + const data = await response.json(); + this.update({ data: data.facet_groups[2].facets }); + } catch (e) { + console.error(e); + } }, onBeforeMount() {