public async Task <string> DELETEHandler(RequestContext requestContext) { MMC mmc = new MMC(); User user = new User(); string ressource = requestContext.Ressource; string subressource = ressource.Substring(ressource.IndexOf('/', ressource.IndexOf('/') + 1) + 1); ressource = ressource.Substring(0, ressource.IndexOf('/', ressource.IndexOf('/') + 1)); switch (ressource) { case "/lib": { string authorization; try { authorization = requestContext.HeaderValues["Authorization"]; if (await user.verifyToken(authorization)) { await mmc.DeleteMMC(authorization, subressource); return($"{authorization}: Authorization successful. " + await mmc.DeleteMMC(authorization, subressource)); } else { return($"{authorization}: Authorization failed."); } } catch (Exception e) { Console.WriteLine(e.Message); } break; } } return(""); }
public async Task <string> PUTHandler(RequestContext requestContext) { User user = new User(); string ressource = requestContext.Ressource; string subressource = ""; if (ressource.Contains("users")) { subressource = ressource.Substring(ressource.IndexOf('/', ressource.IndexOf('/') + 1) + 1); ressource = ressource.Substring(0, ressource.IndexOf('/', ressource.IndexOf('/') + 1)); } switch (ressource) { case "/users": { dynamic payloadJson = JObject.Parse(requestContext.Payload); string name = (string)payloadJson.Name ?? ""; string bio = (string)payloadJson.Bio ?? ""; string image = (string)payloadJson.Image ?? ""; string authorization; try { authorization = requestContext.HeaderValues["Authorization"]; if (await user.verifyToken(authorization)) { return(await user.editUser(authorization, subressource, name, bio, image)); } else { return($"{authorization}: Authorization failed."); } } catch (Exception e) { Console.WriteLine(e.Message); } break; } case "/playlist": { MMC mmc = new MMC(); string authorization; dynamic payloadJson = JObject.Parse(requestContext.Payload); int fromPosition = (int)(payloadJson.FromPosition ?? -1); int toPosition = (int)(payloadJson.ToPosition ?? -1); try { authorization = requestContext.HeaderValues["Authorization"]; if (await user.verifyToken(authorization)) { if (await user.verifyAdmin(authorization) && fromPosition != -1 && toPosition != -1) { mmc.reorderPlaylist(fromPosition, toPosition); return("Reorder successful.\n"); } else { return($"{authorization}: Reorder failed. User is not admin.\n"); } } else { return($"{authorization}: Authorization failed.\n"); } } catch (Exception e) { Console.WriteLine(e.Message); } break; } case "/actions": { string authorization; dynamic payloadJson = JObject.Parse(requestContext.Payload); string actions = (string)payloadJson.actions ?? ""; try { authorization = requestContext.HeaderValues["Authorization"]; if (await user.verifyToken(authorization)) { return($"{authorization}: Authorization successful. " + await user.addAction(authorization, actions)); } else { return($"{authorization}: Authorization failed."); } } catch (Exception e) { Console.WriteLine(e.Message); } break; } } return(""); }
public async Task <string> POSTHandler(RequestContext requestContext) { User user = new User(); string ressource = requestContext.Ressource; switch (ressource) { case "/users": { dynamic payloadJson = JObject.Parse(requestContext.Payload); string username = (string)payloadJson.Username; string password = (string)payloadJson.Password; bool success = await user.Register(username, password); if (success) { return("User registered."); } else { return("User already registered."); } break; } case "/sessions": { dynamic payloadJson = JObject.Parse(requestContext.Payload); string username = (string)payloadJson.Username; string password = (string)payloadJson.Password; string token = await user.Login(username, password); if (token.Equals("")) { return("Login failed."); } else { return($"Token: {token}"); } break; } case "/lib": { dynamic payloadJson = JObject.Parse(requestContext.Payload); MMC mmc = new MMC((string)payloadJson.Name ?? "", (string)payloadJson.Url ?? "", (string)payloadJson.Filetype ?? "", (string)payloadJson.Title ?? "", (string)payloadJson.Artist ?? "", (string)payloadJson.Album ?? "", (string)payloadJson.Genre ?? "", (string)payloadJson.Path ?? "", (int)(payloadJson.Filesize ?? 0), (int)(payloadJson.Rating ?? 0), (string)payloadJson.Length ?? ""); string authorization; try { authorization = requestContext.HeaderValues["Authorization"]; if (await user.verifyToken(authorization)) { return($"{authorization}: Authorization successful. " + await mmc.AddMMC(authorization) + "\n"); } else { return($"{authorization}: Authorization failed.\n"); } } catch (Exception e) { Console.WriteLine(e.Message); } return("Could not get token."); break; } case "/battles": { string authorization; try { authorization = requestContext.HeaderValues["Authorization"]; if (await user.verifyToken(authorization)) { user.setOnline(authorization); return($"{authorization}: Authorization successful.\n"); } else { return($"{authorization}: Authorization failed.\n"); } } catch (Exception e) { Console.WriteLine(e.Message); } return("Could not get token."); break; } case "/playlist": { dynamic payloadJson = JObject.Parse(requestContext.Payload); string songname = (string)payloadJson.Name; MMC mmc = new MMC(); string authorization; try { authorization = requestContext.HeaderValues["Authorization"]; if (await user.verifyToken(authorization)) { return($"{authorization}: Authorization successful. " + await mmc.AddSongToPlaylist(authorization, songname)); } else { return($"{authorization}: Authorization failed.\n"); } } catch (Exception e) { Console.WriteLine(e.Message); } return("Could not get token."); break; } } return(""); }
public async Task <string> GETHandler(RequestContext requestContext) { User user = new User(); string ressource = requestContext.Ressource; string subressource = ""; if (ressource.Contains("users")) { subressource = ressource.Substring(ressource.IndexOf('/', ressource.IndexOf('/') + 1) + 1); ressource = ressource.Substring(0, ressource.IndexOf('/', ressource.IndexOf('/') + 1)); } switch (ressource) { case "/users": { string authorization; try { authorization = requestContext.HeaderValues["Authorization"]; if (await user.verifyToken(authorization)) { return(await user.getUserData(authorization, subressource)); } else { return($"{authorization}: Authorization failed."); } } catch (Exception e) { Console.WriteLine(e.Message); } break; } case "/stats": { //Console.WriteLine("stats"); string authorization; try { authorization = requestContext.HeaderValues["Authorization"]; if (await user.verifyToken(authorization)) { return(await user.getUserStats(authorization)); } else { return($"{authorization}: Authorization failed."); } } catch (Exception e) { Console.WriteLine(e.Message); } break; } case "/score": { string authorization; try { authorization = requestContext.HeaderValues["Authorization"]; if (await user.verifyToken(authorization)) { return(await user.getScoreboard(authorization)); } else { return($"{authorization}: Authorization failed."); } } catch (Exception e) { Console.WriteLine(e.Message); } break; } case "/playlist": { MMC mmc = new MMC(); try { return(await mmc.getPlaylist()); } catch (Exception e) { Console.WriteLine(e.Message); } break; } case "/actions": { string authorization; try { authorization = requestContext.HeaderValues["Authorization"]; if (await user.verifyToken(authorization)) { return(await user.getAction(authorization)); } else { return($"{authorization}: Authorization failed."); } } catch (Exception e) { Console.WriteLine(e.Message); } break; } case "/lib": { MMC mmc = new MMC(); string authorization; try { authorization = requestContext.HeaderValues["Authorization"]; if (await user.verifyToken(authorization)) { return(await mmc.getLibrary(authorization)); } else { return($"{authorization}: Authorization failed."); } } catch (Exception e) { Console.WriteLine(e.Message); } break; } } return(""); }