diff options
-rw-r--r-- | rust/src/api_server.rs | 8 | ||||
-rw-r--r-- | rust/tests/test_api_server.rs (renamed from rust/tests/api_server.rs) | 24 |
2 files changed, 28 insertions, 4 deletions
diff --git a/rust/src/api_server.rs b/rust/src/api_server.rs index 18a3ff32..29d9a555 100644 --- a/rust/src/api_server.rs +++ b/rust/src/api_server.rs @@ -113,7 +113,7 @@ impl Server { .inner_join(container_rev::table) .filter(container_rev::issn.eq(&issn)) .filter(container_ident::is_live.eq(true)) - .filter(container_ident::redirect_id.is_not_null()) + .filter(container_ident::redirect_id.is_null()) .first(&conn); let (ident, rev) = match res { @@ -169,7 +169,7 @@ impl Server { .inner_join(creator_rev::table) .filter(creator_rev::orcid.eq(&orcid)) .filter(creator_ident::is_live.eq(true)) - .filter(creator_ident::redirect_id.is_not_null()) + .filter(creator_ident::redirect_id.is_null()) .first(&conn); let (ident, rev) = match res { @@ -225,7 +225,7 @@ impl Server { .inner_join(file_rev::table) .filter(file_rev::sha1.eq(&sha1)) .filter(file_ident::is_live.eq(true)) - .filter(file_ident::redirect_id.is_not_null()) + .filter(file_ident::redirect_id.is_null()) .first(&conn); let (ident, rev) = match res { @@ -314,7 +314,7 @@ impl Server { .inner_join(release_rev::table) .filter(release_rev::doi.eq(&doi)) .filter(release_ident::is_live.eq(true)) - .filter(release_ident::redirect_id.is_not_null()) + .filter(release_ident::redirect_id.is_null()) .first(&conn); let (ident, rev) = match res { diff --git a/rust/tests/api_server.rs b/rust/tests/test_api_server.rs index 84cd4aaf..fdabdea2 100644 --- a/rust/tests/api_server.rs +++ b/rust/tests/test_api_server.rs @@ -27,3 +27,27 @@ fn test_basics() { ).unwrap(); assert_eq!(response.status, Some(status::NotFound)); } + +#[test] +fn test_lookups() { + let server = fatcat::server().unwrap(); + let router = fatcat_api::router(server); + + let response = request::get( + "http://localhost:9411/v0/container/lookup?issn=1234-5678", + Headers::new(), + &router, + ).unwrap(); + assert_eq!(response.status, Some(status::Ok)); + let body = response::extract_body_to_string(response); + assert!(body.contains("Journal of Trivial Results")); + + let response = request::get( + "http://localhost:9411/v0/creator/lookup?orcid=0000-0003-2088-7465", + Headers::new(), + &router, + ).unwrap(); + assert_eq!(response.status, Some(status::Ok)); + let body = response::extract_body_to_string(response); + assert!(body.contains("Christine Moran")); +} |