avancements
This commit is contained in:
parent
6119b798a9
commit
96d645ca75
|
@ -6,6 +6,7 @@ edition = "2021"
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0.76"
|
anyhow = "1.0.76"
|
||||||
bytes = "1.5.0"
|
bytes = "1.5.0"
|
||||||
|
paste = "1.0.14"
|
||||||
quick-xml = { version = "0.31.0", features = ["serde", "serialize"] }
|
quick-xml = { version = "0.31.0", features = ["serde", "serialize"] }
|
||||||
reqwest = "0.11.23"
|
reqwest = "0.11.23"
|
||||||
serde = { version = "1.0.193", features = ["derive"] }
|
serde = { version = "1.0.193", features = ["derive"] }
|
||||||
|
|
135131
backend/Onisep_Ideo_Fiches_metiers_20112023.xml
Normal file
135131
backend/Onisep_Ideo_Fiches_metiers_20112023.xml
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,6 @@
|
||||||
// https://api.opendata.onisep.fr/downloads/5fe0808a2da6f/5fe0808a2da6f.zip
|
// https://api.opendata.onisep.fr/downloads/5fe0808a2da6f/5fe0808a2da6f.zip
|
||||||
|
|
||||||
|
use paste::paste;
|
||||||
use serde::{Deserialize, Deserializer};
|
use serde::{Deserialize, Deserializer};
|
||||||
use std::{
|
use std::{
|
||||||
io::{BufReader, Cursor},
|
io::{BufReader, Cursor},
|
||||||
|
@ -7,14 +8,16 @@ use std::{
|
||||||
};
|
};
|
||||||
|
|
||||||
macro_rules! unwrap_vec {
|
macro_rules! unwrap_vec {
|
||||||
($fname:ident, $name:ident, $t:ty) => {
|
($name:ident, $t:ty) => {
|
||||||
fn $fname<'de, D: Deserializer<'de>>(deserializer: D) -> Result<Vec<$t>, D::Error> {
|
paste! {
|
||||||
#[derive(Deserialize)]
|
fn [<unwrap_ $name s>]<'de, D: Deserializer<'de>>(deserializer: D) -> Result<Vec<$t>, D::Error> {
|
||||||
struct List {
|
#[derive(Deserialize)]
|
||||||
#[serde(default)]
|
struct List {
|
||||||
$name: Vec<$t>,
|
#[serde(default)]
|
||||||
|
$name: Vec<$t>,
|
||||||
|
}
|
||||||
|
Ok(List::deserialize(deserializer)?.$name)
|
||||||
}
|
}
|
||||||
Ok(List::deserialize(deserializer)?.$name)
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -25,7 +28,7 @@ pub struct Metiers {
|
||||||
metiers: Vec<Metier>,
|
metiers: Vec<Metier>,
|
||||||
}
|
}
|
||||||
|
|
||||||
unwrap_vec!(unwrap_synonymes, synonyme, String);
|
unwrap_vec!(synonyme, String);
|
||||||
|
|
||||||
#[derive(Deserialize, Debug)]
|
#[derive(Deserialize, Debug)]
|
||||||
pub struct Metier {
|
pub struct Metier {
|
||||||
|
@ -33,6 +36,7 @@ pub struct Metier {
|
||||||
libelle_masculin: String,
|
libelle_masculin: String,
|
||||||
#[serde(deserialize_with = "unwrap_synonymes")]
|
#[serde(deserialize_with = "unwrap_synonymes")]
|
||||||
synonymes: Vec<String>,
|
synonymes: Vec<String>,
|
||||||
|
acces_metier: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn download_metier() -> anyhow::Result<Metiers> {
|
pub async fn download_metier() -> anyhow::Result<Metiers> {
|
||||||
|
|
Loading…
Reference in a new issue