Compare commits
2 commits
eb3181242b
...
595d28b69b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
595d28b69b | ||
|
|
08c6cfeb1f |
3 changed files with 12 additions and 18 deletions
|
|
@ -1,13 +1,7 @@
|
|||
use std::sync::{Arc, LazyLock};
|
||||
use std::sync::Arc;
|
||||
|
||||
use argon2::PasswordHash;
|
||||
use axum::{
|
||||
extract::{FromRequestParts, Request, State}, http::{request::Parts, HeaderMap, StatusCode}, middleware::Next, response::{IntoResponse, Response}, routing::{get, post}, Json, RequestPartsExt, Router
|
||||
};
|
||||
use axum_extra::{
|
||||
headers::{authorization::Bearer, Authorization},
|
||||
TypedHeader,
|
||||
};
|
||||
use axum::{extract::{FromRequestParts, Request, State}, http::{request::Parts, StatusCode}, middleware::Next, response::{IntoResponse, Response}, Json, RequestPartsExt};
|
||||
use axum_extra::{headers::{authorization::Bearer, Authorization}, TypedHeader};
|
||||
use jsonwebtoken::{decode, encode, DecodingKey, EncodingKey, Header, Validation};
|
||||
use sea_orm::{ColumnTrait, EntityTrait, QueryFilter};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ pub struct Response {
|
|||
#[serde(rename = "numberOfRecords")]
|
||||
records_number: u32,
|
||||
#[serde(rename = "records")]
|
||||
records: RecordListElement
|
||||
record_list: RecordList
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct RecordListElement {
|
||||
pub struct RecordList {
|
||||
#[serde(default, rename = "record")]
|
||||
record: Vec<Record>
|
||||
records: Vec<Record>
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
|
|
@ -27,11 +27,11 @@ pub struct Record {
|
|||
#[derive(Deserialize)]
|
||||
pub struct RecordData {
|
||||
#[serde(rename = "record")]
|
||||
record: RecordDataFields
|
||||
datafield_list: DataFieldList
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct RecordDataFields {
|
||||
pub struct DataFieldList {
|
||||
#[serde(default, rename = "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");
|
||||
return None;
|
||||
}
|
||||
let record = &v.records.record.first().unwrap();
|
||||
let data_dubfield = record.record_data.record.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 record = &v.record_list.records.first().unwrap();
|
||||
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.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())),
|
||||
None => None
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::{fmt::Display, sync::Arc};
|
||||
|
||||
use argon2::{password_hash::{SaltString}, Argon2, PasswordHasher};
|
||||
use inquire::{min_length, prompt_text, Confirm, Password, Select, Text};
|
||||
use inquire::{min_length, Confirm, Password, Select, Text};
|
||||
use password_hash::rand_core::OsRng;
|
||||
use sea_orm::{ActiveModelTrait, ActiveValue::{NotSet, Set}, ColumnTrait, DatabaseConnection, EntityTrait, ModelTrait, QueryFilter};
|
||||
|
||||
|
|
|
|||
Reference in a new issue