diff options
| author | Bryan Newbold <bnewbold@robocracy.org> | 2018-07-25 19:18:07 -0700 | 
|---|---|---|
| committer | Bryan Newbold <bnewbold@robocracy.org> | 2018-07-25 19:18:07 -0700 | 
| commit | 3bfc43df5810196c3aeafa5e0fc32308c55d76b2 (patch) | |
| tree | efb6feeba3711a119c8fa6e274bb434d4d5d6762 /rust | |
| parent | 51c519a0800ce23a69adced4530b12184b4172ce (diff) | |
| download | fatcat-3bfc43df5810196c3aeafa5e0fc32308c55d76b2.tar.gz fatcat-3bfc43df5810196c3aeafa5e0fc32308c55d76b2.zip | |
actually ON CONFLICT abstract creation (and test)
Diffstat (limited to 'rust')
| -rw-r--r-- | rust/src/api_server.rs | 6 | ||||
| -rw-r--r-- | rust/tests/test_api_server.rs | 21 | 
2 files changed, 24 insertions, 3 deletions
| diff --git a/rust/src/api_server.rs b/rust/src/api_server.rs index d172cb16..00d5cdde 100644 --- a/rust/src/api_server.rs +++ b/rust/src/api_server.rs @@ -807,9 +807,9 @@ impl Server {              if !new_abstracts.is_empty() {                  // Sort of an "upsert"; only inserts new abstract rows if they don't already exist                  insert_into(abstracts::table) -                    .values(new_abstracts) -                    //.on_conflict(abstracts::sha1) -                    //.do_nothing() +                    .values(&new_abstracts) +                    .on_conflict(abstracts::sha1) +                    .do_nothing()                      .execute(conn)?;              }              let release_abstract_rows: Vec<ReleaseRevAbstractNewRow> = abstract_list diff --git a/rust/tests/test_api_server.rs b/rust/tests/test_api_server.rs index f43101c0..ca2d8df2 100644 --- a/rust/tests/test_api_server.rs +++ b/rust/tests/test_api_server.rs @@ -797,6 +797,27 @@ fn test_abstracts() {          None,      ); +    // Same abstracts; checking that re-inserting works +    check_response( +        request::post( +            "http://localhost:9411/v0/release", +            headers.clone(), +            r#"{"title": "some paper again", +                "abstracts": [ +                  {"lang": "zh", +                   "mimetype": "text/plain", +                   "content": "some rando abstract 24iu3i25u2" }, +                  {"lang": "en", +                   "mimetype": "application/xml+jats", +                   "content": "some other abstract 99139405" } +                ] +                }"#, +            &router, +        ), +        status::Created, +        None, +    ); +      let editor_id = Uuid::parse_str("00000000-0000-0000-AAAA-000000000001").unwrap();      let editgroup_id = get_or_create_editgroup(editor_id, &conn).unwrap();      check_response( | 
