using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Extensions {
  public static class HttpRequestExtensions {
    /// 
    /// 
    /// 
    /// 
    /// 
    /// 
    public static List GetHeader(this HttpRequest request, string name) {
      var headers = request.Headers[name].ToList();
      return headers != null ? headers : new List();
    }
    /// 
    /// Return clean JWT Bearer token from Authorisation Header
    /// 
    public static string? GeBearerToken(this HttpRequest request) {
      var header = request.GetHeader("Authorization").FirstOrDefault();
      return header !=null
        ? header.Replace("Bearer ", "")
        : default;
    }
    /// 
    /// Returns JWT Bearer token Vault path from custom AuthorizationPath Header
    /// 
    /// 
    /// 
    public static string? GetBearerPath(this HttpRequest request) {
      var header = request.GetHeader("AuthorizationPath").FirstOrDefault();
      return header;
    }
  }
}