diff options
-rw-r--r-- | CHANGELOG.md | 3 | ||||
-rw-r--r-- | python/tests/api_files.py | 2 | ||||
-rw-r--r-- | python/tests/api_filesets.py | 2 | ||||
-rw-r--r-- | python/tests/api_webcaptures.py | 2 | ||||
-rw-r--r-- | rust/src/entity_crud.rs | 15 |
5 files changed, 21 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 466d5502..5e9d2814 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,6 +62,9 @@ This version includes some backward-incompatible changes. `number` - `ark_id` (for ARK identifiers) and `mag_id` (for Microsoft Academic Graph identifiers) added to releases (under `ext_id`) +- allow expanding `releases` for file, fileset, and webcapture entities. + Expanded release entities have their abstracts and refs hidden by default + (for performance) ## [0.2.2] - 2019-05-08 diff --git a/python/tests/api_files.py b/python/tests/api_files.py index 32d4a6ee..dd10058b 100644 --- a/python/tests/api_files.py +++ b/python/tests/api_files.py @@ -66,6 +66,8 @@ def test_file_examples(api): f1 = api.get_file('aaaaaaaaaaaaamztaaaaaaaaam', expand="releases") assert f1.sha256 == "ffc1005680cb620eec4c913437dfabbf311b535cfe16cbaeb2faec1f92afc362" assert f1.releases[0].ident + assert f1.releases[0].abstracts is None + assert f1.releases[0].refs is None # expansion (back from release) r1 = api.get_release(f1.releases[0].ident, expand="files") diff --git a/python/tests/api_filesets.py b/python/tests/api_filesets.py index 94aa575d..48f58cc8 100644 --- a/python/tests/api_filesets.py +++ b/python/tests/api_filesets.py @@ -82,6 +82,8 @@ def test_fileset_examples(api): assert fs3.manifest[1].md5 == 'f4de91152c7ab9fdc2a128f962faebff' assert fs3.manifest[1].extra['mimetype'] == 'application/gzip' assert fs3.releases[0].ident + assert fs3.releases[0].abstracts is None + assert fs3.releases[0].refs is None def test_bad_fileset(api): diff --git a/python/tests/api_webcaptures.py b/python/tests/api_webcaptures.py index 78549b0f..7734398b 100644 --- a/python/tests/api_webcaptures.py +++ b/python/tests/api_webcaptures.py @@ -101,6 +101,8 @@ def test_webcapture_examples(api): assert wc3.cdx[1].sha1 == 'a637f1d27d9bcb237310ed29f19c07e1c8cf0aa5' assert wc3.archive_urls[1].rel == 'warc' assert wc3.releases[0].ident + assert wc3.releases[0].abstracts is None + assert wc3.releases[0].refs is None def test_bad_webcapture(api): diff --git a/rust/src/entity_crud.rs b/rust/src/entity_crud.rs index f348e8dc..240a7d92 100644 --- a/rust/src/entity_crud.rs +++ b/rust/src/entity_crud.rs @@ -1045,6 +1045,9 @@ impl EntityCrud for FileEntity { } // Could potentially hit this code path when expanding a redirected entity or bare // revision. In either case, `self.release_ids` should already be set. + let mut hide_flags = HideFlags::none(); + hide_flags.abstracts = true; + hide_flags.refs = true; if expand.releases && self.release_ids.is_some() { if let Some(release_ids) = &self.release_ids { self.releases = Some( @@ -1054,7 +1057,7 @@ impl EntityCrud for FileEntity { Ok(ReleaseEntity::db_get( conn, FatcatId::from_str(release_id)?, - HideFlags::none(), + hide_flags, )?) }) .collect::<Result<Vec<ReleaseEntity>>>()?, @@ -1245,6 +1248,9 @@ impl EntityCrud for FilesetEntity { } // Could potentially hit this code path when expanding a redirected entity or bare // revision. In either case, `self.release_ids` should already be set. + let mut hide_flags = HideFlags::none(); + hide_flags.abstracts = true; + hide_flags.refs = true; if expand.releases && self.release_ids.is_some() { if let Some(release_ids) = &self.release_ids { self.releases = Some( @@ -1254,7 +1260,7 @@ impl EntityCrud for FilesetEntity { Ok(ReleaseEntity::db_get( conn, FatcatId::from_str(release_id)?, - HideFlags::none(), + hide_flags, )?) }) .collect::<Result<Vec<ReleaseEntity>>>()?, @@ -1482,6 +1488,9 @@ impl EntityCrud for WebcaptureEntity { } // Could potentially hit this code path when expanding a redirected entity or bare // revision. In either case, `self.release_ids` should already be set. + let mut hide_flags = HideFlags::none(); + hide_flags.abstracts = true; + hide_flags.refs = true; if expand.releases && self.release_ids.is_some() { if let Some(release_ids) = &self.release_ids { self.releases = Some( @@ -1491,7 +1500,7 @@ impl EntityCrud for WebcaptureEntity { Ok(ReleaseEntity::db_get( conn, FatcatId::from_str(release_id)?, - HideFlags::none(), + hide_flags, )?) }) .collect::<Result<Vec<ReleaseEntity>>>()?, |