44 lines
987 B
Swift
44 lines
987 B
Swift
|
//
|
||
|
// 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 { "http" }
|
||
|
var host: String { "163.172.147.216:8080" }
|
||
|
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
|
||
|
}
|