using Hotline.Application.CallCenter;
using Hotline.CallCenter.BlackLists;
using Hotline.CallCenter.Calls;
using Hotline.CallCenter.Tels;
using Hotline.Share.Dtos.CallCenter;
using Hotline.Share.Dtos.TrCallCenter;
using Hotline.Share.Enums.CallCenter;
using Microsoft.AspNetCore.Mvc;
using XF.Utility.EnumExtensions;
namespace Hotline.Api.Controllers
{
public class CallController : BaseController
{
private readonly ICallApplication _callApplication;
public CallController(ICallApplication callApplication)
{
_callApplication = callApplication;
}
///
/// 查询分机
///
[HttpGet("tels")]
public Task> QueryTels()
=> _callApplication.QueryTelsAsync(HttpContext.RequestAborted);
///
/// 查询分机组
///
[HttpGet("groups")]
public Task> QueryTelGroups()
=> _callApplication.QueryTelGroupsAsync(HttpContext.RequestAborted);
#region 黑名单
//Task AddBlackListAsync(AddBlacklistDto dto, CancellationToken cancellationToken);
//Task RemoveBlackListAsync(string id, CancellationToken cancellationToken);
//Task> QueryBlackListsAsync(CancellationToken cancellationToken);
#endregion
///
/// 签入
///
[HttpPost("signin")]
public Task SignIn([FromBody] SignInDto dto)
=> _callApplication.SignInAsync(dto, HttpContext.RequestAborted);
///
/// 签出
///
[HttpPost("signout")]
public Task SignOut()
=> _callApplication.SingOutAsync(HttpContext.RequestAborted);
///
/// 签出
///
[HttpPost("signout/{telNo}")]
public Task SignOut(string telNo)
=> _callApplication.SingOutAsync(telNo, HttpContext.RequestAborted);
///
/// 查询当前用户的分机状态
///
///
[HttpGet("tel-state")]
public Task GetTelState()
=> _callApplication.GetTelStateAsync(HttpContext.RequestAborted);
///
/// 查询通话记录(固定数据量)
///
///
///
[HttpGet("calls-fixed")]
public Task> QueryCallsFixed([FromQuery] QueryCallsFixedDto dto)
=> _callApplication.QueryCallsFixedAsync(dto, HttpContext.RequestAborted);
///
/// 通话记录基础数据
///
///
[HttpGet("base-data")]
public async Task