Defined the Endpoint protocol.

This commit is contained in:
Javier Cicchelli 2022-12-04 01:15:02 +01:00
parent c6c5447500
commit 8a6940ee8d
2 changed files with 58 additions and 0 deletions

View File

@ -0,0 +1,15 @@
//
// RequestMethod.swift
// APIService
//
// Created by Javier Cicchelli on 03/12/2022.
// Copyright © 2022 Röck+Cöde. All rights reserved.
//
enum RequestMethod: String {
case delete = "DELETE"
case get = "GET"
case patch = "PATCH"
case post = "POST"
case put = "PUT"
}

View File

@ -0,0 +1,43 @@
//
// 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
}