Fix hashes not showing (#496)

* Fix hashes not showing

* Run prepare + fmt
This commit is contained in:
Geometrically
2022-12-08 15:42:59 -07:00
committed by GitHub
parent d8b9d8431e
commit a5f9331023
3 changed files with 12 additions and 23 deletions

View File

@@ -642,11 +642,11 @@ impl Version {
.map(|x| VersionStatus::from_str(&x)),
},
files: {
#[derive(Deserialize)]
#[derive(Deserialize, Debug)]
struct Hash {
pub file_id: FileId,
pub algorithm: String,
pub hash: Vec<u8>,
pub hash: String,
}
#[derive(Deserialize, Debug)]
@@ -795,7 +795,7 @@ impl Version {
struct Hash {
pub file_id: FileId,
pub algorithm: String,
pub hash: Vec<u8>,
pub hash: String,
}
#[derive(Deserialize)]
@@ -907,7 +907,7 @@ pub struct QueryFile {
pub id: FileId,
pub url: String,
pub filename: String,
pub hashes: HashMap<String, Vec<u8>>,
pub hashes: HashMap<String, String>,
pub primary: bool,
pub size: u32,
}

View File

@@ -452,21 +452,12 @@ impl From<QueryVersion> for Version {
files: data
.files
.into_iter()
.map(|f| {
VersionFile {
url: f.url,
filename: f.filename,
// FIXME: Hashes are currently stored as an ascii byte slice instead
// of as an actual byte array in the database
hashes: f
.hashes
.into_iter()
.map(|(k, v)| Some((k, String::from_utf8(v).ok()?)))
.collect::<Option<_>>()
.unwrap_or_default(),
primary: f.primary,
size: f.size,
}
.map(|f| VersionFile {
url: f.url,
filename: f.filename,
hashes: f.hashes,
primary: f.primary,
size: f.size,
})
.collect(),
dependencies: data

View File

@@ -321,8 +321,7 @@ pub async fn version_file_sha1(
Ok(find_file(&project_id, &project, &version, &file)
.and_then(|file| file.hashes.get("sha1"))
.and_then(|hash_bytes| std::str::from_utf8(hash_bytes).ok())
.map(|hash_str| HttpResponse::Ok().body(hash_str.to_string()))
.map(|hash_str| HttpResponse::Ok().body(hash_str.clone()))
.unwrap_or_else(|| HttpResponse::NotFound().body("")))
}
@@ -387,7 +386,6 @@ pub async fn version_file_sha512(
Ok(find_file(&project_id, &project, &version, &file)
.and_then(|file| file.hashes.get("sha512"))
.and_then(|hash_bytes| std::str::from_utf8(hash_bytes).ok())
.map(|hash_str| HttpResponse::Ok().body(hash_str.to_string()))
.map(|hash_str| HttpResponse::Ok().body(hash_str.clone()))
.unwrap_or_else(|| HttpResponse::NotFound().body("")))
}