diff options
Diffstat (limited to 'rust/src/entity_crud.rs')
-rw-r--r-- | rust/src/entity_crud.rs | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/rust/src/entity_crud.rs b/rust/src/entity_crud.rs index 83dd26c9..0d72788d 100644 --- a/rust/src/entity_crud.rs +++ b/rust/src/entity_crud.rs @@ -334,7 +334,9 @@ macro_rules! generic_db_create { fn db_create(&self, conn: &DbConn, edit_context: &EditContext) -> Result<Self::EditRow> { if self.redirect.is_some() { return Err(FatcatError::BadRequest( - "can't create an entity that redirects from the start".to_string()).into()); + "can't create an entity that redirects from the start".to_string(), + ) + .into()); } let rev_id = self.db_insert_rev(conn)?; let ident: Uuid = insert_into($ident_table::table) @@ -351,7 +353,7 @@ macro_rules! generic_db_create { .get_result(conn)?; Ok(edit) } - } + }; } macro_rules! generic_db_create_batch { @@ -764,7 +766,7 @@ macro_rules! generic_db_insert_rev { fn db_insert_rev(&self, conn: &DbConn) -> Result<Uuid> { Self::db_insert_revs(conn, &[self]).map(|id_list| id_list[0]) } - } + }; } impl EntityCrud for ContainerEntity { @@ -1742,6 +1744,9 @@ impl EntityCrud for ReleaseEntity { jstor: None, ark: None, mag: None, + doaj: None, + dblp: None, + oai: None, }, refs: None, contribs: None, @@ -2018,6 +2023,9 @@ impl EntityCrud for ReleaseEntity { jstor: None, ark: None, mag: None, + doaj: None, + dblp: None, + oai: None, }; let extid_rows: Vec<ReleaseExtidRow> = release_rev_extid::table @@ -2030,6 +2038,9 @@ impl EntityCrud for ReleaseEntity { "jstor" => ext_ids.jstor = Some(extid_row.value), "ark" => ext_ids.ark = Some(extid_row.value), "mag" => ext_ids.mag = Some(extid_row.value), + "doaj" => ext_ids.doaj = Some(extid_row.value), + "dblp" => ext_ids.dblp = Some(extid_row.value), + "oai" => ext_ids.oai = Some(extid_row.value), _ => (), } } @@ -2290,6 +2301,27 @@ impl EntityCrud for ReleaseEntity { value: extid.clone(), }); }; + if let Some(extid) = &model.ext_ids.doaj { + release_extid_rows.push(ReleaseExtidRow { + release_rev: *rev_id, + extid_type: "doaj".to_string(), + value: extid.clone(), + }); + }; + if let Some(extid) = &model.ext_ids.dblp { + release_extid_rows.push(ReleaseExtidRow { + release_rev: *rev_id, + extid_type: "dblp".to_string(), + value: extid.clone(), + }); + }; + if let Some(extid) = &model.ext_ids.oai { + release_extid_rows.push(ReleaseExtidRow { + release_rev: *rev_id, + extid_type: "oai".to_string(), + value: extid.clone(), + }); + }; } for (model, rev_id) in models.iter().zip(rev_ids.iter()) { |