// // Endpoint.swift // APIService // // Created by Javier Cicchelli on 03/12/2022. // Copyright © 2022 Röck+Cöde. All rights reserved. // protocol Endpoint { var scheme: String { get } var host: String { get } var path: String { get } var method: RequestMethod { get } var credentials: BasicCredentials { get } var headers: [String: String] { get } var body: [String: String]? { get } } // MARK: - Defaults extension Endpoint { var scheme: String { .Schemes.http } var host: String { .Hosts.default } var authorizationHeader: [String: String] { let makeAuthHeader = MakeAuthorizationHeaderUseCase() do { return try makeAuthHeader( username: credentials.username, password: credentials.password ) } catch { return [:] } } } // MARK: - Structs struct BasicCredentials { let username: String let password: String }