manageable-users/Sources/ManagableUsers/Utilities/Environment+Configuration.s...

39 lines
947 B
Swift

import Vapor
extension Environment {
enum Error: Swift.Error, LocalizedError {
case missing (String)
var errorDescription: String? {
switch self {
case .missing (let variable):
return "Missing environment variable: \(variable)"
}
}
}
static var baseURL: URL {
get throws {
guard let baseURL = Environment.get ("BASE_URL"), let url = URL (string: baseURL) else {
throw Error.missing ("BASE_URL")
}
return url
}
}
static func baseURL (_ path: String) throws -> URL {
return try baseURL.appendingPathComponent (path)
}
static var emailSender: String {
get throws {
guard let sender = Environment.get ("EMAIL_SENDER") else {
throw Error.missing ("EMAIL_SENDER")
}
return sender
}
}
}