public async Task <IActionResult> SendGroupMessage([Required][ValidateGuid][FromRoute] string chatId, [Required][FromBody] MessageDataModel messageData) { var chat = await _chatsService.GetByIdAsync(chatId); var authResult = await _authorizationService.AuthorizeAsync(User, chat, "ChatParticipant"); if (!authResult.Succeeded) { return(BadRequest(new ApiError("Chat not found", HttpStatusCode.BadRequest))); } try { var message = await _messagesService.SendGroupMessageAsync(chatId, messageData); return(CreatedAtAction(nameof(GetMessageById), new { messageId = message.Id, chatId }, message)); } catch (ItemNotFoundException e) { return(BadRequest(new ApiError(e.Message, HttpStatusCode.BadRequest))); } catch (InvalidOperationException e) { return(BadRequest(new ApiError(e.Message, HttpStatusCode.BadRequest))); } }
public async Task <IActionResult> GetChatById([FromRoute][ValidateGuid] string chatId) { var chat = await _chatsService.GetByIdAsync(chatId); if (chat == null) { return(NotFound(new ApiError("Chat with such Id was not found", HttpStatusCode.NotFound))); } return(Ok(chat)); }