using IM_API.Dtos; using IM_API.Interface.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.Security.Claims; namespace IM_API.Controllers { [Authorize] [Route("api/[controller]/[action]")] [ApiController] public class MessageController : ControllerBase { private readonly IMessageSevice _messageService; private readonly ILogger _logger; public MessageController(IMessageSevice messageService, ILogger logger) { _messageService = messageService; _logger = logger; } [HttpPost] public async Task SendPrivateMessage(MessageBaseDto dto) { var userIdstr = User.FindFirstValue(ClaimTypes.NameIdentifier); await _messageService.SendPrivateMessageAsync(int.Parse(userIdstr), dto.ReceiverId, dto); return Ok(new BaseResponse()); } [HttpPost] public async Task SendGroupMessage(MessageBaseDto dto) { var userIdstr = User.FindFirstValue(ClaimTypes.NameIdentifier); await _messageService.SendGroupMessageAsync(int.Parse(userIdstr), dto.ReceiverId, dto); return Ok(new BaseResponse()); } } }