mirror of
https://github.com/johrpan/musicus.git
synced 2025-10-27 12:17:24 +01:00
database: Add methods to query mediums
This commit is contained in:
parent
93c55d8892
commit
2ded5a659a
2 changed files with 67 additions and 1 deletions
|
|
@ -29,6 +29,8 @@ pub enum Action {
|
|||
RecordingExists(String, Sender<Result<bool>>),
|
||||
UpdateMedium(Medium, Sender<Result<()>>),
|
||||
GetMedium(String, Sender<Result<Option<Medium>>>),
|
||||
GetMediumsForPerson(String, Sender<Result<Vec<Medium>>>),
|
||||
GetMediumsForEnsemble(String, Sender<Result<Vec<Medium>>>),
|
||||
DeleteMedium(String, Sender<Result<()>>),
|
||||
GetTrackSets(String, Sender<Result<Vec<TrackSet>>>),
|
||||
Stop(Sender<()>),
|
||||
|
|
@ -130,6 +132,12 @@ impl DbThread {
|
|||
GetMedium(id, sender) => {
|
||||
sender.send(db.get_medium(&id)).unwrap();
|
||||
}
|
||||
GetMediumsForPerson(id, sender) => {
|
||||
sender.send(db.get_mediums_for_person(&id)).unwrap();
|
||||
}
|
||||
GetMediumsForEnsemble(id, sender) => {
|
||||
sender.send(db.get_mediums_for_ensemble(&id)).unwrap();
|
||||
}
|
||||
DeleteMedium(id, sender) => {
|
||||
sender.send(db.delete_medium(&id)).unwrap();
|
||||
}
|
||||
|
|
@ -338,6 +346,20 @@ impl DbThread {
|
|||
receiver.await?
|
||||
}
|
||||
|
||||
/// Get all mediums on which a person performs.
|
||||
pub async fn get_mediums_for_person(&self, id: &str) -> Result<Vec<Medium>> {
|
||||
let (sender, receiver) = oneshot::channel();
|
||||
self.action_sender.send(GetMediumsForPerson(id.to_owned(), sender))?;
|
||||
receiver.await?
|
||||
}
|
||||
|
||||
/// Get all mediums on which an ensemble performs.
|
||||
pub async fn get_mediums_for_ensemble(&self, id: &str) -> Result<Vec<Medium>> {
|
||||
let (sender, receiver) = oneshot::channel();
|
||||
self.action_sender.send(GetMediumsForEnsemble(id.to_owned(), sender))?;
|
||||
receiver.await?
|
||||
}
|
||||
|
||||
/// Get all track sets for a recording.
|
||||
pub async fn get_track_sets(&self, recording_id: &str) -> Result<Vec<TrackSet>> {
|
||||
let (sender, receiver) = oneshot::channel();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue