tracks are now relative to an authenticated user
This commit is contained in:
parent
46a9374571
commit
f44f15d2b6
7 changed files with 189 additions and 47 deletions
|
|
@ -14,6 +14,8 @@ use crate::{
|
|||
error::{self, Error},
|
||||
};
|
||||
|
||||
use super::tracks;
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
|
||||
#[sea_orm(table_name = "user")]
|
||||
pub struct Model {
|
||||
|
|
@ -71,4 +73,27 @@ impl Model {
|
|||
Err(err) => Err(Right(Error::from(err).into())),
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn authorized_track(
|
||||
&self,
|
||||
track_id: i32,
|
||||
db: &DatabaseConnection,
|
||||
) -> Option<tracks::Model> {
|
||||
self.find_related(super::prelude::Tracks)
|
||||
.filter(tracks::Column::Id.eq(track_id))
|
||||
.one(db)
|
||||
.await
|
||||
.ok()
|
||||
.flatten()
|
||||
}
|
||||
pub async fn is_authorized_for(&self, track_id: i32, db: &DatabaseConnection) -> bool {
|
||||
self.authorized_track(track_id, db).await.is_some()
|
||||
}
|
||||
|
||||
pub async fn authorized_tracks(&self, db: &DatabaseConnection) -> Vec<tracks::Model> {
|
||||
self.find_related(super::prelude::Tracks)
|
||||
.all(db)
|
||||
.await
|
||||
.unwrap_or_default()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue