aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rust/src/api_server.rs8
-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"));
+}