refactor: rename bnf deserializer structs to be more accurate
This commit is contained in:
parent
eb3181242b
commit
08c6cfeb1f
1 changed files with 8 additions and 8 deletions
|
|
@ -9,13 +9,13 @@ pub struct Response {
|
||||||
#[serde(rename = "numberOfRecords")]
|
#[serde(rename = "numberOfRecords")]
|
||||||
records_number: u32,
|
records_number: u32,
|
||||||
#[serde(rename = "records")]
|
#[serde(rename = "records")]
|
||||||
records: RecordListElement
|
record_list: RecordList
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
pub struct RecordListElement {
|
pub struct RecordList {
|
||||||
#[serde(default, rename = "record")]
|
#[serde(default, rename = "record")]
|
||||||
record: Vec<Record>
|
records: Vec<Record>
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
|
|
@ -27,11 +27,11 @@ pub struct Record {
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
pub struct RecordData {
|
pub struct RecordData {
|
||||||
#[serde(rename = "record")]
|
#[serde(rename = "record")]
|
||||||
record: RecordDataFields
|
datafield_list: DataFieldList
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
pub struct RecordDataFields {
|
pub struct DataFieldList {
|
||||||
#[serde(default, rename = "datafield")]
|
#[serde(default, rename = "datafield")]
|
||||||
datafields: Vec<DataField>
|
datafields: Vec<DataField>
|
||||||
}
|
}
|
||||||
|
|
@ -89,9 +89,9 @@ pub async fn fetch_book_by_ean(web_client: &reqwest::Client, ean: &String) -> Op
|
||||||
log::debug!(target: "api", "BNF returned 0 records for fetch");
|
log::debug!(target: "api", "BNF returned 0 records for fetch");
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
let record = &v.records.record.first().unwrap();
|
let record = &v.record_list.records.first().unwrap();
|
||||||
let data_dubfield = record.record_data.record.datafields.iter().find(|d| d.tag == "200").unwrap().subfields.clone();
|
let data_dubfield = record.record_data.datafield_list.datafields.iter().find(|d| d.tag == "200").unwrap().subfields.clone();
|
||||||
let price_new = match record.record_data.record.datafields.iter().find(|d| d.tag == "010") {
|
let price_new = match record.record_data.datafield_list.datafields.iter().find(|d| d.tag == "010") {
|
||||||
Some(f) => f.subfields.iter().find(|p| p.code=="d").map_or(None, |v| Some(v.value.clone())),
|
Some(f) => f.subfields.iter().find(|p| p.code=="d").map_or(None, |v| Some(v.value.clone())),
|
||||||
None => None
|
None => None
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Reference in a new issue