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
|
|
}
|