Skip to content
Extraits de code Groupes Projets
Vérifiée Valider ba949f94 rédigé par Kubat's avatar Kubat
Parcourir les fichiers

DB: Add the is_virtual flag on karas

Note that virtual karas are not returned in search functions.
parent 5abb960d
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -19,6 +19,7 @@ CREATE TABLE repo_kara ...@@ -19,6 +19,7 @@ CREATE TABLE repo_kara
CREATE TABLE kara CREATE TABLE kara
( id BIGINT NOT NULL PRIMARY KEY REFERENCES repo(local_kara_id) ON DELETE CASCADE ( id BIGINT NOT NULL PRIMARY KEY REFERENCES repo(local_kara_id) ON DELETE CASCADE
, is_dl BOOLEAN NOT NULL DEFAULT false , is_dl BOOLEAN NOT NULL DEFAULT false
, is_virtual BOOLEAN NOT NULL DEFAULT false
, song_title TEXT NOT NULL , song_title TEXT NOT NULL
, song_type TEXT NOT NULL , song_type TEXT NOT NULL
, song_origin TEXT NOT NULL , song_origin TEXT NOT NULL
......
...@@ -281,6 +281,7 @@ impl LktDatabaseConnection { ...@@ -281,6 +281,7 @@ impl LktDatabaseConnection {
match uri_type { match uri_type {
LktUriField::Id => Ok(vec![with_dsl!(kara => kara LktUriField::Id => Ok(vec![with_dsl!(kara => kara
.filter(id.is(uri_as_int!("id" :/ uri))) .filter(id.is(uri_as_int!("id" :/ uri)))
.filter(is_virtual.is(false))
.select(id) .select(id)
.first::<i64>(&mut self.sqlite) .first::<i64>(&mut self.sqlite)
.map_err(|err| format!("{err}"))? .map_err(|err| format!("{err}"))?
...@@ -289,6 +290,7 @@ impl LktDatabaseConnection { ...@@ -289,6 +290,7 @@ impl LktDatabaseConnection {
LktUriField::KaraMaker => Ok(with_dsl!(kara_maker => kara_maker LktUriField::KaraMaker => Ok(with_dsl!(kara_maker => kara_maker
.filter(name.like(uri_str!("author" :/ uri))) .filter(name.like(uri_str!("author" :/ uri)))
.inner_join(schema::kara::table) .inner_join(schema::kara::table)
.filter(schema::kara::is_virtual.is(false))
.select(id) .select(id)
.load::<i64>(&mut self.sqlite) .load::<i64>(&mut self.sqlite)
.map_err(|err| format!("{err}"))? .map_err(|err| format!("{err}"))?
...@@ -296,12 +298,14 @@ impl LktDatabaseConnection { ...@@ -296,12 +298,14 @@ impl LktDatabaseConnection {
LktUriField::Origin => Ok(with_dsl!(kara => kara LktUriField::Origin => Ok(with_dsl!(kara => kara
.filter(song_origin.like(uri_str!("origin" :/ uri))) .filter(song_origin.like(uri_str!("origin" :/ uri)))
.filter(is_virtual.is(false))
.select(id).load::<i64>(&mut self.sqlite) .select(id).load::<i64>(&mut self.sqlite)
.map_err(|err| format!("{err}"))? .map_err(|err| format!("{err}"))?
)), )),
LktUriField::Type => Ok(with_dsl!(kara => kara LktUriField::Type => Ok(with_dsl!(kara => kara
.filter(song_type.is(uri_str!("type" :/ uri))) .filter(song_type.is(uri_str!("type" :/ uri)))
.filter(is_virtual.is(false))
.select(id).load::<i64>(&mut self.sqlite) .select(id).load::<i64>(&mut self.sqlite)
.map_err(|err| format!("{err}"))? .map_err(|err| format!("{err}"))?
)), )),
...@@ -309,6 +313,7 @@ impl LktDatabaseConnection { ...@@ -309,6 +313,7 @@ impl LktDatabaseConnection {
LktUriField::Language => Ok(with_dsl!(kara_lang => kara_lang LktUriField::Language => Ok(with_dsl!(kara_lang => kara_lang
.filter(code.like(uri_str!("language" :/ uri))) .filter(code.like(uri_str!("language" :/ uri)))
.inner_join(schema::kara::table) .inner_join(schema::kara::table)
.filter(schema::kara::is_virtual.is(false))
.select(id) .select(id)
.load::<i64>(&mut self.sqlite) .load::<i64>(&mut self.sqlite)
.map_err(|err| format!("{err}"))? .map_err(|err| format!("{err}"))?
......
...@@ -20,6 +20,7 @@ diesel::table! { ...@@ -20,6 +20,7 @@ diesel::table! {
kara (id) { kara (id) {
id -> BigInt, id -> BigInt,
is_dl -> Bool, is_dl -> Bool,
is_virtual -> Bool,
song_title -> Text, song_title -> Text,
song_type -> Text, song_type -> Text,
song_origin -> Text, song_origin -> Text,
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter