using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;

namespace BBWYB.Server.API.Controllers
{
    [Produces("application/json")]
    [Route("Api/[Controller]/[Action]")]
    [ApiController]
    [EnableCors("cors")]
    public class BaseApiController : ControllerBase
    {
        protected IHttpContextAccessor httpContextAccessor;
        public BaseApiController(IHttpContextAccessor httpContextAccessor)
        {
            this.httpContextAccessor = httpContextAccessor;
        }

        protected string GetUserId()
        {
            return httpContextAccessor?.HttpContext?.User.Claims.Where(x => x.Type == "userId")?.FirstOrDefault()?.Value;
        }

        protected string GetToken()
        {
            httpContextAccessor.HttpContext.Request.Headers.TryGetValue("Authorization", out StringValues token);
            return token;
        }

        protected string GetClientCode()
        {
            httpContextAccessor.HttpContext.Request.Headers.TryGetValue("ClientCode", out StringValues clientCode);
            return clientCode;
        }
    }
}