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 put_db = db.clone();
|
||||||
let list_db = db.clone();
|
let list_db = db.clone();
|
||||||
let read_db = db.clone();
|
let read_db = db.clone();
|
||||||
|
let delete_db = db.clone();
|
||||||
playlist_router.put("/",
|
playlist_router.put("/",
|
||||||
move |request: &mut Request| {
|
move |request: &mut Request| {
|
||||||
self::save_playlist(request, put_db.deref())
|
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");
|
"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);
|
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)))
|
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