From c0cfb1abfe92d74f699b3d1a44e34749ec5c845c Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Sun, 7 Feb 2021 09:44:52 +0100 Subject: [PATCH] Remove separate part composers --- .../2020-11-09-153819_initial_schema/up.sql | 3 +-- src/database/schema.rs | 2 -- src/database/works.rs | 17 ----------------- 3 files changed, 1 insertion(+), 21 deletions(-) diff --git a/migrations/2020-11-09-153819_initial_schema/up.sql b/migrations/2020-11-09-153819_initial_schema/up.sql index 45fd2a9..ab1c25c 100644 --- a/migrations/2020-11-09-153819_initial_schema/up.sql +++ b/migrations/2020-11-09-153819_initial_schema/up.sql @@ -37,8 +37,7 @@ CREATE TABLE work_parts ( id BIGINT NOT NULL PRIMARY KEY, work TEXT NOT NULL REFERENCES works(id) ON DELETE CASCADE, part_index BIGINT NOT NULL, - title TEXT NOT NULL, - composer TEXT REFERENCES persons(id) + title TEXT NOT NULL ); CREATE TABLE work_sections ( diff --git a/src/database/schema.rs b/src/database/schema.rs index e1383df..7075560 100644 --- a/src/database/schema.rs +++ b/src/database/schema.rs @@ -94,7 +94,6 @@ table! { work -> Text, part_index -> Int8, title -> Text, - composer -> Nullable, } } @@ -131,7 +130,6 @@ joinable!(recordings -> works (work)); joinable!(track_sets -> mediums (medium)); joinable!(track_sets -> recordings (recording)); joinable!(tracks -> track_sets (track_set)); -joinable!(work_parts -> persons (composer)); joinable!(work_parts -> works (work)); joinable!(work_sections -> works (work)); joinable!(works -> persons (composer)); diff --git a/src/database/works.rs b/src/database/works.rs index 20975b8..3c0f905 100644 --- a/src/database/works.rs +++ b/src/database/works.rs @@ -24,7 +24,6 @@ pub struct Work { #[serde(rename_all = "camelCase")] pub struct WorkPart { pub title: String, - pub composer: Option, } /// A heading within the work structure. @@ -62,7 +61,6 @@ struct WorkPartRow { pub work: String, pub part_index: i64, pub title: String, - pub composer: Option, } /// Table data for a work section. @@ -106,14 +104,6 @@ pub fn update_work(conn: &DbConn, work: &Work, user: &User) -> Result<()> { } } - for part in &work.parts { - if let Some(person) = &part.composer { - if get_person(conn, &person.id)?.is_none() { - update_person(conn, person, &user)?; - } - } - } - // Add the actual work. let row = WorkRow { @@ -143,7 +133,6 @@ pub fn update_work(conn: &DbConn, work: &Work, user: &User) -> Result<()> { work: id.clone(), part_index: index.try_into()?, title: part.title.clone(), - composer: part.composer.as_ref().map(|person| person.id.clone()), }; diesel::insert_into(work_parts::table) @@ -242,12 +231,6 @@ fn get_description_for_work_row(conn: &DbConn, row: &WorkRow) -> Result { for part_row in part_rows { parts.push(WorkPart { title: part_row.title, - composer: match part_row.composer { - Some(id) => { - Some(get_person(conn, &id)?.ok_or(anyhow!("No person with ID: {}", id))?) - } - None => None, - }, }); }