annotate LazyBear/Views/Company/Networking/Company.swift @ 440:01fa77358b82

Fixes #47
author Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
date Sun, 20 Jun 2021 16:58:36 +0200
parents 7f2a24a774eb
children 4b8031e696e8
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
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
9 import Bazooka
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 }
438
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
18 let bazooka = Bazooka()
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
19 bazooka.request(url: url, model: CompanyResponse.self) { response in
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
20 switch requestType {
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
21 case .initial:
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
22 self.data = response
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
23 case .streaming:
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
24 self.data.quote = response.quote
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
25 case .refresh:
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
26 self.data.historicalPrices = response.historicalPrices
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
27 }
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
28
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
29 self.showView = true
440
01fa77358b82 Fixes #47
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 438
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 }