refactor: ♻️ return result instead of option part 1

This commit is contained in:
Ahmet Kaan GÜMÜŞ 2024-11-21 11:26:11 +03:00
parent a968a2db4a
commit 9e440cbafe
2 changed files with 13 additions and 16 deletions

View file

@ -58,11 +58,9 @@ impl Package {
self.location.to_string()
}
pub async fn serve(&self) -> Option<ReaderStream<File>> {
match File::open(self.get_location()).await {
Ok(package_file) => Some(ReaderStream::new(package_file)),
Err(_) => None,
}
pub async fn serve(&self) -> Result<ReaderStream<File>, std::io::Error> {
let package_file = File::open(self.get_location()).await?;
Ok(ReaderStream::new(package_file))
}
pub fn set_location(&mut self, location: &String) {
@ -77,15 +75,14 @@ impl Package {
self.last_update_date_time = Utc::now();
}
pub async fn set_hash(&mut self) {
if let Ok(mut package_file) = File::open(self.get_location()).await {
let mut hasher = Sha3_512::new();
let mut data_buffer = vec![];
if let Ok(_) = package_file.read_to_end(&mut data_buffer).await {
hasher.update(data_buffer);
self.hash = hasher.finalize().to_vec();
}
}
pub async fn set_hash(&mut self) -> Result<(), std::io::Error> {
let mut package_file = File::open(self.get_location()).await?;
let mut hasher = Sha3_512::new();
let mut data_buffer = vec![];
package_file.read_to_end(&mut data_buffer).await?;
hasher.update(data_buffer);
self.hash = hasher.finalize().to_vec();
Ok(())
}
}

View file

@ -36,7 +36,7 @@ pub async fn delete_package(package_name: String) -> Option<Package> {
pub async fn download_package(package_name: String) -> Option<ReaderStream<File>> {
let package = crate::package::utils::read_package(package_name).await?;
let package_file_stream = package.serve().await?;
let package_file_stream = package.serve().await.ok()?;
Some(package_file_stream)
}
@ -53,7 +53,7 @@ pub async fn upload_package(mut package_file: Multipart) -> Option<Package> {
file_descriptor.write_all(&package_file_data).await.ok()?;
package.set_location(&file_location.to_string());
package.set_hash().await;
package.set_hash().await.ok()?;
let package = crate::package::utils::update_package(package.get_name(), package).await?;
Some(package)