git.iko.soy/dashared/hookah-tau
on develop help sign in
Добавила хранение куков в UserDefaults
commit65f3f63828878c89a00a5e7199c9ab41046284cd authorDarya Rednikina <rednikina.com@yandex.ru> dateFri 29 Nov 2019, 11:04 (7 years ago) parent345f0f0
4 files changed+43−4
Hookah Tau/API/Authorization api/AuthorizationService.swift+2−1 Hookah Tau/Components/TableButtonStyle.swift+1−1 Hookah Tau/Controllers/Client/Reservations/Steps/1/FirstStepView.swift+1−1 Hookah Tau/DB/DataStorage.swift+39−1
Hookah Tau/API/Authorization api/AuthorizationService.swift+2−1
@@ -104,6 +104,7 @@ class AuthorizationService {
104104 return
105105 }
106106 let cookies = HTTPCookie.cookies(withResponseHeaderFields: fieldss, for: url)
107− HTTPCookieStorage.shared.setCookie(cookies[0])
107+ HTTPCookieStorage.shared.setCookies(cookies, for: url, mainDocumentURL: nil)
108+ DataStorage.standard.setCookies(cookies, forURL: url)
108109 }
109110}
Hookah Tau/Components/TableButtonStyle.swift+1−1
@@ -61,7 +61,7 @@ class TableButtonStyle {
6161 }
6262
6363 func setBooked(button: TableButton) {
64− TableStyle.setStripes(for: button)
64+ button.backgroundColor = Booked.fillColor
6565 }
6666
6767 func setAvaliable(button: TableButton) {
Hookah Tau/Controllers/Client/Reservations/Steps/1/FirstStepView.swift+1−1
@@ -126,7 +126,7 @@ class FirstStepView: UIView {
126126
127127 for reservation in reservations {
128128 let uiview = UIView(frame: CGRect(x: 0, y: 0, width: Constants.widthTimePoint * reservation.duration, height: 71))
129− uiview.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.5)
129+ uiview.backgroundColor = #colorLiteral(red: 0.2549019754, green: 0.2745098174, blue: 0.3019607961, alpha: 1)
130130
131131 uiview.translatesAutoresizingMaskIntoConstraints = false
132132 scrollViewIntervals.addSubview(uiview)
Hookah Tau/DB/DataStorage.swift+39−1
@@ -17,6 +17,7 @@ class DataStorage {
1717 case phone
1818 case isAdmin
1919 case loggedIn
20+ case cookies
2021 }
2122
2223 private init() {}
@@ -41,6 +42,43 @@ class DataStorage {
4142 UserDefaults.standard.setValue(isAdmin, forKey: Keys.isAdmin.rawValue)
4243 }
4344
45+
46+ /// Метод для установки куков в хранилище
47+ /// - Parameter cookies: куки
48+ /// - Parameter url: url для куков
49+ func setCookies(_ cookies: [HTTPCookie], forURL url: URL) {
50+ let cookiesStorage = HTTPCookieStorage.shared
51+ let userDefaults = UserDefaults.standard
52+
53+ var cookieDict = [String: AnyObject]()
54+
55+ for cookie in cookiesStorage.cookies(for: url)! {
56+ cookieDict[cookie.name] = cookie.properties as AnyObject?
57+ }
58+
59+ userDefaults.set(cookieDict, forKey: Keys.cookies.rawValue)
60+ }
61+
62+
63+ /// Достаем из хранилища и устанавливаем куки
64+ /// Если не выходит, то вовзращаем false
65+ func getCookies() -> Bool {
66+ let cookiesStorage = HTTPCookieStorage.shared
67+ let userDefaults = UserDefaults.standard
68+
69+ if let cookieDictionary = userDefaults.dictionary(forKey: Keys.cookies.rawValue) {
70+
71+ for (_, cookieProperties) in cookieDictionary {
72+ if let cookie = HTTPCookie(properties: cookieProperties as! [HTTPCookiePropertyKey : Any] ) {
73+ cookiesStorage.setCookie(cookie)
74+ }
75+ }
76+ return true
77+ }
78+
79+ return false
80+ }
81+
4482 func getUserModel() -> User? {
4583 guard
4684 let name = UserDefaults.standard.string(forKey: Keys.name.rawValue),
@@ -53,7 +91,7 @@ class DataStorage {
5391 }
5492
5593 func isLoggedIn() -> Bool {
56− return UserDefaults.standard.bool(forKey: Keys.loggedIn.rawValue)
94+ return UserDefaults.standard.bool(forKey: Keys.loggedIn.rawValue) && getCookies()
5795 }
5896
5997 func setLoggedInState(_ value: Bool) {