avancements
This commit is contained in:
parent
6119b798a9
commit
96d645ca75
|
@ -6,6 +6,7 @@ edition = "2021"
|
|||
[dependencies]
|
||||
anyhow = "1.0.76"
|
||||
bytes = "1.5.0"
|
||||
paste = "1.0.14"
|
||||
quick-xml = { version = "0.31.0", features = ["serde", "serialize"] }
|
||||
reqwest = "0.11.23"
|
||||
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
|
||||
|
||||
use paste::paste;
|
||||
use serde::{Deserialize, Deserializer};
|
||||
use std::{
|
||||
io::{BufReader, Cursor},
|
||||
|
@ -7,14 +8,16 @@ use std::{
|
|||
};
|
||||
|
||||
macro_rules! unwrap_vec {
|
||||
($fname:ident, $name:ident, $t:ty) => {
|
||||
fn $fname<'de, D: Deserializer<'de>>(deserializer: D) -> Result<Vec<$t>, D::Error> {
|
||||
#[derive(Deserialize)]
|
||||
struct List {
|
||||
#[serde(default)]
|
||||
$name: Vec<$t>,
|
||||
($name:ident, $t:ty) => {
|
||||
paste! {
|
||||
fn [<unwrap_ $name s>]<'de, D: Deserializer<'de>>(deserializer: D) -> Result<Vec<$t>, D::Error> {
|
||||
#[derive(Deserialize)]
|
||||
struct List {
|
||||
#[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>,
|
||||
}
|
||||
|
||||
unwrap_vec!(unwrap_synonymes, synonyme, String);
|
||||
unwrap_vec!(synonyme, String);
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
pub struct Metier {
|
||||
|
@ -33,6 +36,7 @@ pub struct Metier {
|
|||
libelle_masculin: String,
|
||||
#[serde(deserialize_with = "unwrap_synonymes")]
|
||||
synonymes: Vec<String>,
|
||||
acces_metier: String,
|
||||
}
|
||||
|
||||
pub async fn download_metier() -> anyhow::Result<Metiers> {
|
||||
|
|
Loading…
Reference in a new issue