Есть ли ограничение для Enums, я не могу установить свойство протокола, реализованного Enum.
Я хочу сделать поле заголовков настраиваемым, разрешить установку заголовков.Я знаю, что у Enums есть только вычисленные свойства, это даже возможно.
protocol APIConfiguration : URLRequestConvertible {
var method : HTTPMethod { get }
var path : String { get }
var parameters : Parameters? { get }
var baseURL : String { get }
var headers : [String : String]? { get set }
}
enum LoginEndpoint: APIConfiguration
{
case login
case user
// MARK: - Base URL
var baseURL : String
{
switch self
{
case .login, .user:
return K.Graph.baseURI
}
}
// MARK: - HTTPMethod
var method : HTTPMethod
{
switch self
{
case .login:
return .get
case .user:
return .get
}
}
// MARK: - Path
var path : String
{
switch self
{
case .login:
return "/v1.0/me/"
case .user:
return "/user.read"
}
}
// MARK: - Parameters
var parameters : Parameters?
{
switch self
{
case .login:
return nil
case .user:
return nil
}
}
var headers : [String : String]?
{
get {
if let sessionToken = SessionStore.shared.sessionToken
{
return [HTTPHeaderField.authentication.rawValue:sessionToken]
}
return nil
}
set {}
}
}