annotate LazyBear/Views/Company/Networking/Company.swift @ 438:7f2a24a774eb

Implement CompanyView networking
author Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
date Sun, 20 Jun 2021 13:20:19 +0200
parents
children 01fa77358b82
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
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
13 @Published var data = CompanyResponse()
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
14
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
15 func request(_ url: String, _ requestType: RequestType) {
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
16 let bazooka = Bazooka()
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
17 bazooka.request(url: url, model: CompanyResponse.self) { response in
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
18 switch requestType {
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
19 case .initial:
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
20 self.data = response
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
21 case .streaming:
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
22 self.data.quote = response.quote
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
23 case .refresh:
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
24 self.data.historicalPrices = response.historicalPrices
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
25 }
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
26
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
27 self.showView = true
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 }
7f2a24a774eb Implement CompanyView networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
30 }