public async Task <IActionResult> GetMessagesForSession(AuthorizedIntViewModel viewModel) { if (ModelState.IsValid) { var fromEmail = await Services.AuthorizationServices.VerifyToken(clientFactory, viewModel.JwtFrom); if (fromEmail != null) { try { return(Ok( JsonConvert.SerializeObject(await sessionRepository.GetMessagesForSessionAsync( viewModel.Value, fromEmail )) )); } catch (EmailNotAssociatedWithMessageSessionException) { return(BadRequest("User must be associated with message session to see messages.")); } } } return(BadRequest(ModelState)); }
public async Task <IActionResult> Confirm(AuthorizedIntViewModel viewModel) { if (ModelState.IsValid) { // In the case of confirmation, the JWT email is the user confirming the friendship // rather than the requester (see method Create()) var fromEmail = await Services.AuthorizationServices.VerifyToken(_clientFactory, viewModel.JwtFrom); if (fromEmail != null) { try { var friendship = await friendshipRepo.ConfirmFriendshipAsync(viewModel.Value, fromEmail); return(Ok()); } catch (FriendshipDoesNotExistException) { return(BadRequest("Friendship does not exist")); } catch (UnauthorizedFriendConfirmException) { return(BadRequest("Friendship cannot be authorized with token")); } } } return(BadRequest(ModelState)); }
public async Task <IActionResult> DeleteSession(AuthorizedIntViewModel viewModel) { if (ModelState.IsValid) { var fromEmail = await Services.AuthorizationServices.VerifyToken(clientFactory, viewModel.JwtFrom); if (fromEmail != null) { try { var session = await sessionRepository.DeleteMessageSessionAsync(viewModel.Value, fromEmail); if (session == null) { return(BadRequest("Session does not exist.")); } return(Ok()); } catch (EmailDoesNotMatchMessageSessionOwnerException) { return(BadRequest("Attempted to delete session not owned by requester.")); } } } return(BadRequest()); }
public static async Task <ResponseResult> RemoveFriendship(string jwt, int id) { using (var request = new HttpRequestMessage(HttpMethod.Post, $"{URI}/Remove")) { var viewModel = new AuthorizedIntViewModel { JwtFrom = jwt, Value = id }; request.Content = new StringContent(JsonConvert.SerializeObject(viewModel), Encoding.UTF8, "application/json"); var response = await _client.SendAsync(request); if (response.IsSuccessStatusCode) { return(new ResponseResult(true)); } return(new ResponseResult(false)); } }
public static async Task <ResponseResult <Message[]> > GetMessages(string jwt, int sessionId) { using (var request = new HttpRequestMessage(HttpMethod.Get, $"{URI}/GetMessages")) { var viewModel = new AuthorizedIntViewModel { JwtFrom = jwt, Value = sessionId }; request.Content = new StringContent(JsonConvert.SerializeObject(viewModel), Encoding.UTF8, "application/json"); var response = await _client.SendAsync(request); if (response.IsSuccessStatusCode) { return(new ResponseResult <Message[]>( true, JsonConvert.DeserializeObject <Message[]>(await response.Content.ReadAsStringAsync()) )); } return(new ResponseResult <Message[]>(false, null)); } }