Skip to content

Commit 85a2f0b

Browse files
authored
Merge pull request #105 from filecoin-project/parsing-cases
Parsing the size numbers only numbers, logging if error
2 parents 60c6ca4 + 5b69ecc commit 85a2f0b

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

fplus-lib/src/parsers.rs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
use std::str::FromStr;
22

3+
use log::info;
34
use markdown::{mdast::Node, to_mdast, ParseOptions};
45
use serde::{Deserialize, Serialize};
56

6-
use crate::core::application::file::{Client, DataType, Datacap, DatacapGroup, Project};
7+
use crate::{core::application::file::{Client, DataType, Datacap, DatacapGroup, Project}, error};
78

89
#[derive(Serialize, Deserialize, Debug)]
910
pub enum ParsedApplicationDataFields {
@@ -289,24 +290,23 @@ impl From<IssueValidData> for Datacap {
289290
datacap.total_requested_amount =
290291
format!("{}{}", datacap.total_requested_amount, value.0);
291292
}
292-
ParsedApplicationDataFields::TotalRequestedAmount => {
293-
if datacap.total_requested_amount.is_empty() {
294-
datacap.total_requested_amount = value.0.clone();
293+
// Modified TotalRequestedAmount case
294+
ParsedApplicationDataFields::TotalRequestedAmount => {
295+
if let Ok(num) = value.0.parse::<f64>() {
296+
datacap.total_requested_amount = format!("{}{}", num, datacap.total_requested_amount);
295297
} else {
296-
datacap.total_requested_amount =
297-
format!("{}{}", value.0, datacap.total_requested_amount);
298+
log::error!("Failed to parse TotalRequestedAmount: {}", value.0)
298299
}
299300
}
300301
ParsedApplicationDataFields::UnitSingleSizeDataset => {
301302
datacap.single_size_dataset =
302303
format!("{}{}", datacap.single_size_dataset, value.0);
303304
}
304305
ParsedApplicationDataFields::SingleSizeDataset => {
305-
if datacap.single_size_dataset.is_empty() {
306-
datacap.single_size_dataset = value.0.clone();
306+
if let Ok(num) = value.0.parse::<f64>() {
307+
datacap.single_size_dataset = num.to_string();
307308
} else {
308-
datacap.single_size_dataset =
309-
format!("{}{}", value.0, datacap.single_size_dataset);
309+
log::error!("Failed to parse SingleSizeDataset: {}", value.0)
310310
}
311311
}
312312
ParsedApplicationDataFields::Replicas => {
@@ -316,11 +316,10 @@ impl From<IssueValidData> for Datacap {
316316
datacap.weekly_allocation = format!("{}{}", datacap.weekly_allocation, value.0);
317317
}
318318
ParsedApplicationDataFields::WeeklyAllocation => {
319-
if datacap.weekly_allocation.is_empty() {
320-
datacap.weekly_allocation = value.0.clone();
319+
if let Ok(num) = value.0.parse::<f64>() {
320+
datacap.weekly_allocation = num.to_string();
321321
} else {
322-
datacap.weekly_allocation =
323-
format!("{}{}", value.0, datacap.weekly_allocation);
322+
log::error!("Failed to parse WeeklyAllocation: {}", value.0)
324323
}
325324
}
326325
ParsedApplicationDataFields::CustomMultisig => {
@@ -332,6 +331,8 @@ impl From<IssueValidData> for Datacap {
332331
_ => {}
333332
}
334333
}
334+
log::info!("Datacap: {:?}", datacap);
335+
335336
datacap
336337
}
337338
}

0 commit comments

Comments
 (0)