public async Task <IActionResult> CreateUserChat([FromRoute] int userId) { try { //TODO: Add validation to make sure chat is not created twice var chat = new Chat(); var rootUserId = HttpContext.GetUserId(); await _chatsRepository.CreateUserChat(chat, rootUserId, userId); var baseUrl = HttpContext.GetBaseURL(); var locationUri = baseUrl + ApiRoutes.Chats.GetChat.Replace("{chatId}", chat.Id.ToString()); return(Created(locationUri, new { Created = true, Message = "Chat successfully created.", ChatId = chat.Id })); } catch (ArgumentNullException) { return(Unauthorized()); } }