Esempio n. 1
0
        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!"));
        }
Esempio n. 3
0
        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());
        }