36 lines
733 B
Swift
36 lines
733 B
Swift
//
|
|
// NetworkService.swift
|
|
//
|
|
//
|
|
// Created by Juraldinio on 04.08.2022.
|
|
//
|
|
|
|
import Foundation
|
|
import Alamofire
|
|
|
|
public protocol NetworkEnvironment {
|
|
|
|
typealias Headers = [String: String]
|
|
|
|
var url: URL { get }
|
|
var headers: Headers? { get }
|
|
}
|
|
|
|
public protocol NetworkService {
|
|
init(enmironment: NetworkEnvironment)
|
|
}
|
|
|
|
public enum NetworkServiceError: Error {
|
|
case gqlSystem([String])
|
|
case gqlApplication(String)
|
|
case gqlDecode(String)
|
|
case uncatched
|
|
}
|
|
|
|
extension NetworkEnvironment {
|
|
var httpHeaders: HTTPHeaders? {
|
|
guard let headers = self.headers else { return nil }
|
|
return HTTPHeaders(headers.compactMap { key, value in HTTPHeader(name: key, value: value) })
|
|
}
|
|
}
|