39 lines
947 B
Swift
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
|
|
}
|
|
}
|
|
}
|