Added API endpoint to delete a playlist
This commit is contained in:
parent
66e772feb3
commit
eab2fe7f7f
1 changed files with 24 additions and 0 deletions
24
src/api.rs
24
src/api.rs
|
@ -156,6 +156,7 @@ fn get_endpoints(db: Arc<DB>, index_channel: Arc<Mutex<Sender<index::Command>>>)
|
|||
let put_db = db.clone();
|
||||
let list_db = db.clone();
|
||||
let read_db = db.clone();
|
||||
let delete_db = db.clone();
|
||||
playlist_router.put("/",
|
||||
move |request: &mut Request| {
|
||||
self::save_playlist(request, put_db.deref())
|
||||
|
@ -174,6 +175,12 @@ fn get_endpoints(db: Arc<DB>, index_channel: Arc<Mutex<Sender<index::Command>>>)
|
|||
},
|
||||
"read_playlist");
|
||||
|
||||
playlist_router.delete("/:playlist_name",
|
||||
move |request: &mut Request| {
|
||||
self::delete_playlist(request, delete_db.deref())
|
||||
},
|
||||
"delete_playlist");
|
||||
|
||||
auth_api_mount.mount("/playlist/", playlist_router);
|
||||
}
|
||||
|
||||
|
@ -575,3 +582,20 @@ fn read_playlist(request: &mut Request, db: &DB) -> IronResult<Response> {
|
|||
|
||||
Ok(Response::with((status::Ok, result_json)))
|
||||
}
|
||||
|
||||
fn delete_playlist(request: &mut Request, db: &DB) -> IronResult<Response> {
|
||||
let username = match request.extensions.get::<SessionKey>() {
|
||||
Some(s) => s.username.clone(),
|
||||
None => return Err(Error::from(ErrorKind::AuthenticationRequired).into()),
|
||||
};
|
||||
|
||||
let params = request.extensions.get::<Router>().unwrap();
|
||||
let ref playlist_name = match params.find("playlist_name") {
|
||||
Some(s) => s,
|
||||
_ => return Err(Error::from(ErrorKind::MissingPlaylistName).into()),
|
||||
};
|
||||
|
||||
playlist::delete_playlist(&playlist_name, &username, db)?;
|
||||
|
||||
Ok(Response::with(status::Ok))
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue