public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordViewModel changePasswordModel) { if (ModelState.IsValid) { var isTokenValid = await _tokenValidator.IsTokenValid(Request.Headers, HttpContext); if (isTokenValid) { var user = await _userManager.GetUserAsync(HttpContext.User); var result = await _userManager.ChangePasswordAsync(user, changePasswordModel.OldPassword, changePasswordModel.NewPassword); if (result.Succeeded) { return(Ok()); } } } return(BadRequest()); }
public async Task <bool> IsLiked(int id) { if (ModelState.IsValid) { var isTokenValid = await _tokenValidator.IsTokenValid(Request.Headers, HttpContext); if (isTokenValid) { var user = await GetCurrentUser(); var like = await _likesRepository.GetLikeByTopicAndUser(id, user.Id); if (like != null) { return(like.IsLiked); } } } return(false); }
public async Task <IActionResult> Post([FromBody] TopicViewModel topic) { if (ModelState.IsValid) { var isTokenValid = await _tokenValidator.IsTokenValid(Request.Headers, HttpContext); if (isTokenValid) { var topicToAdd = new Topic() { Body = topic.Body, Name = topic.Name }; var user = await GetCurrentUserAsync(); topicToAdd.CreatorId = user.Id; await _topicRepository.AddTopic(topicToAdd); return(Ok(topicToAdd)); } } return(BadRequest(ModelState)); }
public async Task AddComment([FromBody] CommentViewModel comment) { if (ModelState.IsValid) { var isTokenValid = await _tokenValidator.IsTokenValid(Request.Headers, HttpContext); if (isTokenValid) { var commentToAdd = new Comment() { TopicId = comment.TopicId, Text = comment.Text }; commentToAdd.Time = DateTime.UtcNow; var currentUser = await _userManager.GetUserAsync(HttpContext.User); commentToAdd.UserId = currentUser.Id; commentToAdd.UserName = currentUser.UserName; await _commentRepository.AddComment(commentToAdd); } } }