Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct WeatherResponse: Codable {
- var latitude: Double?
- var longitude: Double?
- var timezone: String?
- var currently: Weather?
- var minutely: WeatherContainer?
- var hourly: WeatherContainer?
- var daily: WeatherContainer?
- var alerts: [Alert]?
- var flags: Flags?
- var offset: Int?
- }
- struct Weather: Codable {
- var time: Int?
- var summary: String?
- var icon: WeatherType?
- var nearestStormDistance: Int?
- var precipIntensity: Double?
- var precipIntensityError: Double?
- var precipProbability: Double?
- var precipType: String?
- var temperature: Double?
- var apparentTemperature: Double?
- var dewPoint: Double?
- var humidity: Double?
- var pressure: Double?
- var windSpeed: Double?
- var windGust: Double?
- var windBearing: Double?
- var cloudCover: Double?
- var uvIndex: Int?
- var visibility: Double?
- var ozone: Double?
- }
- struct WeatherContainer: Codable {
- var summary: String?
- var icon: WeatherType?
- var data: [Weather]?
- }
- struct Alert: Codable {
- var title: String?
- var time: Int?
- var expires: Int?
- var description: String?
- }
- struct Flags: Codable {
- var sources: [String]?
- var nearestStation: Double?
- var units: String?
- enum CodingKeys: String, CodingKey {
- case sources
- case nearestStation = "nearest-station"
- case units
- }
- }
- enum WeatherType: String, Codable {
- case clearDay = "clear-day"
- case clearNight = "clear-night"
- case rain = "rain"
- case snow = "snow"
- case sleet = "sleet"
- case wind = "wind"
- case fog = "fog"
- case cloudy = "cloudy"
- case partlyCloudyDay = "partly-cloudy-day"
- case partlyCloudyNight = "partly-cloudy-night"
- case unknown
- init(from decoder: Decoder) throws {
- self = try WeatherType(rawValue: decoder.singleValueContainer().decode(RawValue.self)) ?? .unknown
- }
- var icon: String {
- switch self {
- case .clearDay:
- return "sunny"
- case .clearNight:
- return "clearnight"
- case .rain:
- return "moderaterain"
- case .snow:
- return "snowy"
- case .sleet:
- return "snowy"
- case .wind:
- return "windy"
- case .fog:
- return "fog"
- case .cloudy:
- return "overcast"
- case .partlyCloudyDay:
- return "partlycloudy"
- case .partlyCloudyNight:
- return "clearnight"
- case .unknown:
- return ""
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement