Files
omnivore/apple/OmnivoreKit/Sources/Models/AppEnvironment.swift
2022-03-21 13:15:03 -07:00

80 lines
1.9 KiB
Swift

import Foundation
import Utils
public enum AppEnvironment: String {
case local
case dev
case prod
case demo
case test
public static let initialAppEnvironment: AppEnvironment = {
#if DEBUG
#if targetEnvironment(simulator)
return .demo // could also return .local here
#else
return .demo
#endif
#else
return .prod
#endif
}()
}
private let devBaseURL = "https://api-dev.omnivore.app"
private let demoBaseURL = "https://api-demo.omnivore.app"
private let prodBaseURL = "https://api-prod.omnivore.app"
private let devWebURL = "https://web-dev.omnivore.app"
private let demoWebURL = "https://demo.omnivore.app"
private let prodWebURL = "https://omnivore.app"
private let devHighlightsServerURL = "https://highlights-dev.omnivore.app"
private let demoHighlightsServerURL = "https://highlights-demo.omnivore.app"
private let prodHighlightsServerURL = "https://highlights.omnivore.app"
public extension AppEnvironment {
var graphqlPath: String {
"\(serverBaseURL.absoluteString)/api/graphql"
}
var serverBaseURL: URL {
switch self {
case .dev:
return URL(string: devBaseURL)!
case .demo:
return URL(string: demoBaseURL)!
case .prod:
return URL(string: prodBaseURL)!
case .test, .local:
return URL(string: "http://localhost:4000")!
}
}
var webAppBaseURL: URL {
switch self {
case .dev:
return URL(string: devWebURL)!
case .demo:
return URL(string: demoWebURL)!
case .prod:
return URL(string: prodWebURL)!
case .test, .local:
return URL(string: "http://localhost:3000")!
}
}
var highlightsServerBaseURL: URL {
switch self {
case .dev:
return URL(string: devHighlightsServerURL)!
case .demo:
return URL(string: demoHighlightsServerURL)!
case .prod:
return URL(string: prodHighlightsServerURL)!
case .test, .local:
return URL(string: "http://localhost:8080")!
}
}
}