refactor: ♻️ return result instead of option part 1
This commit is contained in:
parent
a968a2db4a
commit
9e440cbafe
2 changed files with 13 additions and 16 deletions
|
@ -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(())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue