diff options
Diffstat (limited to 'src/serve.rs')
-rw-r--r-- | src/serve.rs | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/serve.rs b/src/serve.rs index 53a3cac..ee0e5ff 100644 --- a/src/serve.rs +++ b/src/serve.rs @@ -3,11 +3,11 @@ use crate::errors::Error; use crate::spotify; use rocket::response::Redirect; -#[get("/callback/<name>/<url>")] -pub fn get_tracks(name: String, url: String) -> Result<(), Error> { - let (spotify_uid, spotify_client) = spotify::auth_user(name.as_ref(), url)?; - let uid = database::insert_user(spotify_uid.as_ref())?; - spotify::load_profile(uid, spotify_uid.as_ref(), spotify_client) +#[get("/callback/<name>/<lobby>/<url>")] +pub async fn get_tracks(name: String, lobby: String, url: String) -> Result<(), Error> { + let (spotify_uid, spotify_client) = spotify::auth_user(name.as_ref(), url).await?; + let uid = database::insert_user(spotify_uid.as_ref(), lobby.as_ref())?; + spotify::load_profile(uid, spotify_uid.as_ref(), spotify_client).await } #[get("/token/<name>")] @@ -15,12 +15,21 @@ pub fn token(name: String) -> Result<Redirect, Error> { Ok(Redirect::to(spotify::token(name)?)) } -#[get("/match/<name1>/<name2>")] -pub fn match_users(name1: String, name2: String) -> Result<String, Error> { - database::match_users(name1, name2) +#[get("/match/<lobby>/<names>")] +pub fn match_users(lobby: String, names: String) -> Result<String, Error> { + //let bytes = base64::decode_config(names, base64::URL_SAFE).unwrap(); + //let names = String::from_utf8(bytes).unwrap(); + let names: Vec<&str> = names.split(',').collect(); + database::match_users(lobby, names.as_slice()) } -#[get("/user")] -pub fn get_users() -> Result<String, Error> { - database::get_users() +#[get("/users/<lobby>")] +pub fn get_users(lobby: String) -> Result<String, Error> { + database::get_users(lobby.as_str()) +} + +//#[post("/lobby", format = "application/json", data = "<name>")] +#[post("/lobby/<name>")] +pub fn create_lobby(name: String) -> Result<String, Error> { + database::create_lobby(name.as_str()) } |