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