live-forum/server/webapi/LiveForum/LiveForum.WebApi/Controllers/MessagesController.cs
2026-03-24 11:27:37 +08:00

109 lines
3.9 KiB
C#

using LiveForum.Code.Base;
using LiveForum.IService.Messages;
using LiveForum.Model.Dto.Messages;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace LiveForum.WebApi.Controllers
{
/// <summary>
/// 消息相关接口
/// </summary>
/// <param name="messages"></param>
[Route("api/[controller]/[action]")]
[ApiController]
public class MessagesController(IMessagesService messages) : ControllerBase
{
/// <summary>
/// 获取消息列表
/// </summary>
/// <param name="request">请求参数</param>
/// <returns></returns>
[HttpGet]
[Authorize]
public Task<BaseResponse<GetMessagesRespDto>> GetMessages([FromQuery] GetMessagesReq request) => messages.GetMessages(request);
/// <summary>
/// 获取系统通知列表
/// </summary>
/// <param name="request">请求参数</param>
/// <returns></returns>
[HttpGet]
[Authorize]
public Task<BaseResponse<GetSystemNotificationsRespDto>> GetSystemNotifications([FromQuery] GetSystemNotificationsReq request) => messages.GetSystemNotifications(request);
/// <summary>
/// 标记消息为已读
/// </summary>
/// <param name="request">请求参数</param>
/// <returns></returns>
[HttpPost]
[Authorize]
public Task<BaseResponse<ReadMessageRespDto>> ReadMessage([FromBody] ReadMessageReq request) => messages.ReadMessage(request);
/// <summary>
/// 批量标记消息为已读
/// </summary>
/// <param name="request">请求参数</param>
/// <returns></returns>
[HttpPost]
[Authorize]
public Task<BaseResponse<ReadBatchMessagesRespDto>> ReadBatchMessages([FromBody] ReadBatchMessagesReq request) => messages.ReadBatchMessages(request);
/// <summary>
/// 全部标记为已读
/// </summary>
/// <param name="request">请求参数</param>
/// <returns></returns>
[HttpPost]
[Authorize]
public Task<BaseResponse<ReadAllMessagesRespDto>> ReadAllMessages([FromBody] ReadAllMessagesReq request) => messages.ReadAllMessages(request);
/// <summary>
/// 删除消息
/// </summary>
/// <param name="request">请求参数</param>
/// <returns></returns>
[HttpPost]
[Authorize]
public Task<BaseResponseBool> DeleteMessage([FromBody] DeleteMessageReq request) => messages.DeleteMessage(request);
/// <summary>
/// 获取未读消息数量
/// </summary>
/// <returns></returns>
[HttpGet]
[Authorize]
public Task<BaseResponse<UnreadCountRespDto>> GetUnreadCount() => messages.GetUnreadCount();
/// <summary>
/// 获取评论回复消息列表
/// </summary>
/// <param name="request">请求参数</param>
/// <returns></returns>
[HttpGet]
[Authorize]
public Task<BaseResponse<GetCommentRepliesMessagesRespDto>> GetCommentRepliesMessages([FromQuery] GetCommentRepliesMessagesReq request) => messages.GetCommentRepliesMessages(request);
/// <summary>
/// 获取点赞消息列表
/// </summary>
/// <param name="request">请求参数</param>
/// <returns></returns>
[HttpGet]
[Authorize]
public Task<BaseResponse<GetLikesMessagesRespDto>> GetLikesMessages([FromQuery] GetLikesMessagesReq request) => messages.GetLikesMessages(request);
/// <summary>
/// 参与活动
/// </summary>
/// <param name="request">请求参数</param>
/// <returns></returns>
[HttpPost]
[Authorize]
public Task<BaseResponse<ParticipateActivityResp>> ParticipateActivity([FromBody] ParticipateActivityReq request) => messages.ParticipateActivity(request);
}
}