annotate LazyBear/Views/Company/Networking/Company.swift @ 450:4b8031e696e8

Change Bazooka to Alamofire Alamofire is compatible with WatchOS and MacOS
author Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
date Sat, 26 Jun 2021 16:36:53 +0200
parents 01fa77358b82
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
438
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
1 //
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
2 // Company.swift
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
3 // LazyBear
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
4 //
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 20/6/21.
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
6 //
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
7
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
8 import SwiftUI
450
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
9 import Alamofire
438
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
10
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
11 class Company: ObservableObject {
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
12 @Published var showView = false
440
01fa77358b82 Fixes #47
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 438
diff changeset
13 @Published var showChart = true /// To show a ProgressView when the chart is refreshed (Date range selected)
438
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
14 @Published var data = CompanyResponse()
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
15
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
16 func request(_ url: String, _ requestType: RequestType) {
440
01fa77358b82 Fixes #47
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 438
diff changeset
17 if requestType == .refresh { self.showChart = false }
450
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
18 AF.request(url).responseDecodable(of: CompanyResponse.self) { response in
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
19 if let value = response.value {
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
20 switch requestType {
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
21 case .initial:
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
22 self.data = value
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
23 case .streaming:
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
24 self.data.quote = value.quote
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
25 case .refresh:
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
26 self.data.historicalPrices = value.historicalPrices
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
27 }
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
28
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
29 self.showView = true
4b8031e696e8 Change Bazooka to Alamofire
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 440
diff changeset
30 self.showChart = true
438
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
31 }
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
32 }
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
33 }
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
34 }