annotate LazyBear/Views/Profile/Networking/Profile.swift @ 378:6802c2393203

Implementing ProfileView (Watchlists)
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Wed, 21 Apr 2021 23:12:56 +0200
parents d01859776fe6
children 6303385b3629
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
374
d402bfa367c2 Implementing ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
1 //
d402bfa367c2 Implementing ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
2 // Profile.swift
d402bfa367c2 Implementing ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
3 // LazyBear
d402bfa367c2 Implementing ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
4 //
d402bfa367c2 Implementing ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 16/4/21.
d402bfa367c2 Implementing ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
6 //
d402bfa367c2 Implementing ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
7
d402bfa367c2 Implementing ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
8 import SwiftUI
d402bfa367c2 Implementing ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
9
377
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
10 class Profile: ObservableObject {
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
11 @Published var showView = false
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
12 @Published var data = ProfileResponse()
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
13
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
14 var streamingRequests = 0 // Count streaming requests
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
15
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
16 func request(_ url: String) {
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
17 genericRequest(url: url, model: ProfileResponse.self) { response in
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
18 self.streamingRequests += 1
378
6802c2393203 Implementing ProfileView (Watchlists)
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 377
diff changeset
19
377
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
20 // If is the first request -> init()
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
21 if self.streamingRequests == 1 {
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
22 self.data = response
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
23 } else {
378
6802c2393203 Implementing ProfileView (Watchlists)
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 377
diff changeset
24 // If not, request streaming data (without intradayPrices)
377
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
25 self.data.quotes = response.quotes
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
26 }
378
6802c2393203 Implementing ProfileView (Watchlists)
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 377
diff changeset
27
6802c2393203 Implementing ProfileView (Watchlists)
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 377
diff changeset
28 self.showView = true
377
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
29 }
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
30 }
d01859776fe6 ProfileView updated
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
31 }