(&mut self)
| 476 | } |
| 477 | |
| 478 | async fn save_to_data_store(&mut self) { |
| 479 | // read newly created data before pushing |
| 480 | let latest_file_names_result = Self::get_latest_file_names( |
| 481 | &self.data_store, |
| 482 | Some(&self.remote_file_path), |
| 483 | self.latest_processed_file_name.clone(), |
| 484 | ) |
| 485 | .await; |
| 486 | |
| 487 | if latest_file_names_result.is_ok() { |
| 488 | let mut latest_file_names = latest_file_names_result.unwrap(); |
| 489 | latest_file_names.reverse(); |
| 490 | let latest_valid_file_name = Self::process_files(self, latest_file_names).await; |
| 491 | self.latest_processed_file_name = latest_valid_file_name; |
| 492 | } |
| 493 | |
| 494 | // push data |
| 495 | self.data.version += 1; |
| 496 | |
| 497 | let contents = serialize(&self.data); |
| 498 | let result = self |
| 499 | .data_store |
| 500 | .write_compressed_data(&contents.as_bytes().to_vec(), Some(&self.remote_file_path)) |
| 501 | .await; |
| 502 | match result { |
| 503 | Ok((file_name, size)) => { |
| 504 | println!( |
| 505 | "Pushed new file: {} (size: {}, compressed: {})", |
| 506 | file_name, |
| 507 | human_bytes(contents.len() as f64), |
| 508 | human_bytes(size as f64) |
| 509 | ); |
| 510 | save_local_public_file(&self.local_file_path, &file_name, &contents); |
| 511 | self.latest_processed_file_name = Some(file_name); |
| 512 | } |
| 513 | Err(err) => println!("Failed to push: {}", err), |
| 514 | } |
| 515 | } |
| 516 | |
| 517 | pub async fn validate_data_by_key( |
| 518 | &self, |
no test coverage detected