using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Ropin.Inspection.Api.Common;
using Ropin.Inspection.Api.Common.Token;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Ropin.Inspection.Api.Controllers
{
    [Route("Token")]
    public class TokenController : BaseController
    {
        private readonly ITokenHelper tokenHelper;
        public TokenController(ITokenHelper _tokenHelper)
        {
            tokenHelper = _tokenHelper;
        }

        [HttpGet]
        [AllowAnonymous]
        public ApiResult Get()
        {
            return new ApiResult<Token>(tokenHelper.RefreshToken(Request.HttpContext.User), ReturnCode.Success);
        }

        [HttpPost]
        [AllowAnonymous]
        public ApiResult GetByRefreshToken(string refreshToken)
        {
            if (string.IsNullOrEmpty(refreshToken))
            {
                return new ApiResult(ReturnCode.TokenError, "RefreshToken无效");

            }
            return new ApiResult<ComplexToken>(tokenHelper.RefreshToken(refreshToken), ReturnCode.Success);
        }
    }
}