fix(helloasso): handle external answer
Sometimes, users import additional users in their helloasso org, for now I ignore them.
This commit is contained in:
parent
54bd32d57d
commit
64f115d0d5
2 changed files with 24 additions and 2 deletions
|
@ -174,11 +174,16 @@ struct CustomFieldAnswer {
|
||||||
// missing type, it's probably always TextInput, if not, serde will fail to parse
|
// missing type, it's probably always TextInput, if not, serde will fail to parse
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn default_country() -> String {
|
||||||
|
"FRA".to_string()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
#[fully_pub]
|
#[fully_pub]
|
||||||
struct PayerUserDetails {
|
struct PayerUserDetails {
|
||||||
|
#[serde(default = "default_country")]
|
||||||
country: String,
|
country: String,
|
||||||
email: String,
|
email: String,
|
||||||
first_name: String,
|
first_name: String,
|
||||||
|
@ -298,6 +303,16 @@ struct OrderDetails {
|
||||||
inception_time: DateTime<Utc>
|
inception_time: DateTime<Utc>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
#[fully_pub]
|
||||||
|
struct Payment {
|
||||||
|
id: u64,
|
||||||
|
|
||||||
|
#[serde(rename = "type")]
|
||||||
|
extra: Option<String>
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
#[fully_pub]
|
#[fully_pub]
|
||||||
|
@ -310,6 +325,8 @@ struct FormAnswer {
|
||||||
#[serde(rename = "payer")]
|
#[serde(rename = "payer")]
|
||||||
payer_user: PayerUserDetails,
|
payer_user: PayerUserDetails,
|
||||||
|
|
||||||
|
payments: Vec<Payment>,
|
||||||
|
|
||||||
order: OrderDetails,
|
order: OrderDetails,
|
||||||
|
|
||||||
#[serde(rename = "user")]
|
#[serde(rename = "user")]
|
||||||
|
|
|
@ -86,9 +86,14 @@ pub async fn sync_helloasso(paheko_client: &paheko::AuthentifiedClient, config:
|
||||||
|
|
||||||
let mut generalized_answers: Vec<GeneralizedAnswer> = vec![];
|
let mut generalized_answers: Vec<GeneralizedAnswer> = vec![];
|
||||||
for answer in answers {
|
for answer in answers {
|
||||||
// eprintln!("Processing answer:");
|
|
||||||
let email = choose_email(&answer);
|
let email = choose_email(&answer);
|
||||||
// eprintln!(" email: {:?}", email);
|
|
||||||
|
// skip answers that were imported later and are stranger from helloasso
|
||||||
|
if let Some(payment) = answer.payments.iter().nth(0) {
|
||||||
|
if payment.extra == Some("Offline".to_string()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let mut generalized_answer = GeneralizedAnswer {
|
let mut generalized_answer = GeneralizedAnswer {
|
||||||
first_name: Some(normalize_str(answer.user.first_name.clone())),
|
first_name: Some(normalize_str(answer.user.first_name.clone())),
|
||||||
|
|
Loading…
Reference in a new issue