Mercurial > public > lazybear
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 |
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 } |