public async Task <ActionResult> SignUp([FromBody] User newUser) { await _stupidLoader.LoadTime(2); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { await _userMgr.AddUser(newUser); } catch (UserException e) { return(BadRequest(e.Message)); } return(Ok()); }
public async Task <IActionResult> Authenticate([FromBody] TokenRequest request) { await _stupidLoader.LoadTime(2, 3); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } bool isAuthenticated = await _authService.IsAuthenticated(request); if (isAuthenticated) { return(Ok()); } return(BadRequest("Incorrect username or password!")); }
public async Task <ActionResult> GiveFriends([FromQuery(Name = "currentUserId")] int currentUserId) { // TODO: Can reduce # of DB queries // TODO: Make less hacky 😅 List <string> friendEmails = new List <string>(); List <UserFriendship> friends = await _friendshipRepo.RetrieveFriends(currentUserId); friends.ForEach(friend => friendEmails.Add(friend.Email)); Dictionary <string, List <FriendRequest> > pendingRequests = await _friendshipMgr.GetPendingRequests(currentUserId); pendingRequests["received"].ForEach(request => friendEmails.Add(request.Email)); pendingRequests["sent"].ForEach(request => friendEmails.Add(request.Email)); var generatedFriends = StupidStuff.friends.Where( userEmail => !friendEmails.Any(friendEmail => friendEmail == userEmail)).ToList <string>(); var generatedMessages = StupidStuff.messages.GetRange(0, StupidStuff.messages.Count); var rand = new Random(); foreach (string email in generatedFriends) { var user = await _userRepo.Retrieve(email); var messageIndex = rand.Next(generatedMessages.Count); FriendRequest newRequest = new FriendRequest { UserId = user.Id, FriendId = currentUserId, Email = User.FindFirstValue(ClaimTypes.Email), Text = generatedMessages[messageIndex] }; generatedMessages.RemoveAt(messageIndex); await AddFriendRequest(newRequest); await _stupidloader.LoadTime(3); } return(Ok()); }