fix amf fetching since json schema change

pull/40/head
Miroito 1 year ago
parent 913a7cbd02
commit 67c2e83a25

2002
server/Cargo.lock generated

File diff suppressed because it is too large Load Diff

@ -1,7 +1,7 @@
use crate::{
amf::{
types::{
amf_response::{Document, Hit},
amf_response::{Document, Source},
AMFResponse, TransactionData,
},
TransactionDataTrait,
@ -12,16 +12,16 @@ use crate::{
use super::pdf::AMFPdf;
impl AMFResponse {
pub fn get_hits(&self) -> &Vec<Hit> {
&self.hits.hits
pub fn get_hits(&self) -> &Vec<Source> {
&self.hits
}
}
#[async_trait::async_trait]
impl TransactionDataTrait for Hit {
impl TransactionDataTrait for Source {
type Err = GetAMFTransactionsError;
async fn get_transaction_data(&self) -> Result<TransactionData, Self::Err> {
let foreign_id = self.source.numero.to_owned();
let foreign_id = self.numero.to_owned();
let docs = self.get_documents();
if docs.len() > 1 {
warn!("Transaction number {} contains more than one document, only the first document will be parsed for information", foreign_id);
@ -54,12 +54,12 @@ impl TransactionDataTrait for Hit {
}
}
impl Hit {
impl Source {
pub fn get_documents(&self) -> &Vec<Document> {
&self.source.documents
&self.documents
}
pub fn get_foreign_id(&self) -> String {
self.source.numero.to_owned()
self.numero.to_owned()
}
}

@ -4,32 +4,8 @@ use serde_json::Value;
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AMFResponse {
pub hits: Hits,
pub aggregations: Aggregations,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Hits {
pub total: Total,
pub hits: Vec<Hit>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Total {
pub value: i64,
pub relation: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Hit {
#[serde(rename = "_ignored")]
pub ignored: Option<Vec<String>>,
#[serde(rename = "_source")]
pub source: Source,
pub sort: Vec<i64>,
#[serde(rename = "result")]
pub hits: Vec<Source>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
@ -60,128 +36,12 @@ pub struct Source {
pub version: i64,
pub regulateur: String,
pub relations: Vec<Value>,
pub societes: Vec<Societe>,
pub annee_comptable: Value,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Document {
pub accessible: bool,
pub issuer_id: Option<String>,
pub path: String,
pub numero: Value,
pub signature: Option<String>,
pub format: Value,
pub details: Details,
pub doc_regulateur: bool,
pub nom_fichier: String,
pub date_reception: Value,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Details {
pub date: String,
#[serde(rename = "content_type")]
pub content_type: String,
pub language: String,
pub title: String,
#[serde(rename = "content_length")]
pub content_length: i64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Societe {
pub role: String,
pub raison_sociale: String,
pub jeton: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Aggregations {
pub types_information: TypesInformation,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TypesInformation {
#[serde(rename = "doc_count_error_upper_bound")]
pub doc_count_error_upper_bound: i64,
#[serde(rename = "sum_other_doc_count")]
pub sum_other_doc_count: i64,
pub buckets: Vec<Bucket>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Bucket {
pub key: String,
#[serde(rename = "doc_count")]
pub doc_count: i64,
pub types_operation: TypesOperation,
pub types_document: TypesDocument,
pub instrument_financier: InstrumentFinancier,
pub marche: Marche,
pub annee_comptable: AnneeComptable,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TypesOperation {
#[serde(rename = "doc_count_error_upper_bound")]
pub doc_count_error_upper_bound: i64,
#[serde(rename = "sum_other_doc_count")]
pub sum_other_doc_count: i64,
pub buckets: Vec<Value>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TypesDocument {
#[serde(rename = "doc_count_error_upper_bound")]
pub doc_count_error_upper_bound: i64,
#[serde(rename = "sum_other_doc_count")]
pub sum_other_doc_count: i64,
pub buckets: Vec<Bucket2>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Bucket2 {
pub key: String,
#[serde(rename = "doc_count")]
pub doc_count: i64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct InstrumentFinancier {
#[serde(rename = "doc_count_error_upper_bound")]
pub doc_count_error_upper_bound: i64,
#[serde(rename = "sum_other_doc_count")]
pub sum_other_doc_count: i64,
pub buckets: Vec<Value>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Marche {
#[serde(rename = "doc_count_error_upper_bound")]
pub doc_count_error_upper_bound: i64,
#[serde(rename = "sum_other_doc_count")]
pub sum_other_doc_count: i64,
pub buckets: Vec<Value>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AnneeComptable {
#[serde(rename = "doc_count_error_upper_bound")]
pub doc_count_error_upper_bound: i64,
#[serde(rename = "sum_other_doc_count")]
pub sum_other_doc_count: i64,
pub buckets: Vec<Value>,
}

@ -64,7 +64,7 @@ impl GetAMFTransactions {
let list = resp.get_hits();
for hit in list.iter() {
let number = &hit.source.numero;
let number = &hit.numero;
if transaction::Entity::find()
.filter(transaction::Column::ForeignId.eq(number.to_owned()))

Loading…
Cancel
Save