Try to fix network service
This commit is contained in:
parent
62148f799f
commit
0799f84ba0
|
|
@ -25,10 +25,10 @@
|
|||
EF05EDE91EAFA8A000CAE7B6 /* PassCodeHolderProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF05EDE81EAFA8A000CAE7B6 /* PassCodeHolderProtocol.swift */; };
|
||||
EF05EDEB1EAFA8E600CAE7B6 /* PassCodeError.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF05EDEA1EAFA8E600CAE7B6 /* PassCodeError.swift */; };
|
||||
EF05EDED1EAFA96D00CAE7B6 /* PassCodeHolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF05EDEC1EAFA96D00CAE7B6 /* PassCodeHolder.swift */; };
|
||||
EF05EDF61EB0D4C300CAE7B6 /* BarButtonLoadingService.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF05EDF51EB0D4C300CAE7B6 /* BarButtonLoadingService.swift */; };
|
||||
EF05EDF81EB0D5A600CAE7B6 /* UIBarButtonItem+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF05EDF71EB0D5A600CAE7B6 /* UIBarButtonItem+Extensions.swift */; };
|
||||
EF05EDFC1EB0D77400CAE7B6 /* DefaultNetworkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF05EDFA1EB0D77400CAE7B6 /* DefaultNetworkService.swift */; };
|
||||
EF05EDFD1EB0D77400CAE7B6 /* SimpleNetworkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF05EDFB1EB0D77400CAE7B6 /* SimpleNetworkService.swift */; };
|
||||
EF05EDFD1EB0D77400CAE7B6 /* ApiNetworkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF05EDFB1EB0D77400CAE7B6 /* ApiNetworkService.swift */; };
|
||||
EF05EE021EB206C000CAE7B6 /* LoadingBarButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF05EE011EB206C000CAE7B6 /* LoadingBarButton.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
|
|
@ -54,10 +54,10 @@
|
|||
EF05EDE81EAFA8A000CAE7B6 /* PassCodeHolderProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PassCodeHolderProtocol.swift; sourceTree = "<group>"; };
|
||||
EF05EDEA1EAFA8E600CAE7B6 /* PassCodeError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PassCodeError.swift; sourceTree = "<group>"; };
|
||||
EF05EDEC1EAFA96D00CAE7B6 /* PassCodeHolder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PassCodeHolder.swift; sourceTree = "<group>"; };
|
||||
EF05EDF51EB0D4C300CAE7B6 /* BarButtonLoadingService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarButtonLoadingService.swift; sourceTree = "<group>"; };
|
||||
EF05EDF71EB0D5A600CAE7B6 /* UIBarButtonItem+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIBarButtonItem+Extensions.swift"; sourceTree = "<group>"; };
|
||||
EF05EDFA1EB0D77400CAE7B6 /* DefaultNetworkService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DefaultNetworkService.swift; sourceTree = "<group>"; };
|
||||
EF05EDFB1EB0D77400CAE7B6 /* SimpleNetworkService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SimpleNetworkService.swift; sourceTree = "<group>"; };
|
||||
EF05EDFB1EB0D77400CAE7B6 /* ApiNetworkService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApiNetworkService.swift; sourceTree = "<group>"; };
|
||||
EF05EE011EB206C000CAE7B6 /* LoadingBarButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadingBarButton.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
|
@ -117,6 +117,7 @@
|
|||
children = (
|
||||
EF05EDBD1EAF706200CAE7B6 /* ApiResponse.swift */,
|
||||
EF05EDBE1EAF706200CAE7B6 /* BaseDateFormatter.swift */,
|
||||
EF05EE011EB206C000CAE7B6 /* LoadingBarButton.swift */,
|
||||
);
|
||||
path = Classes;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -125,7 +126,6 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
EF05EDF91EB0D75A00CAE7B6 /* Network */,
|
||||
EF05EDF51EB0D4C300CAE7B6 /* BarButtonLoadingService.swift */,
|
||||
EF05EDC71EAF91D500CAE7B6 /* BasePassCodeService.swift */,
|
||||
EF05EDB31EAF703A00CAE7B6 /* BaseUserService.swift */,
|
||||
EF05EDC51EAF70EB00CAE7B6 /* TouchIDService.swift */,
|
||||
|
|
@ -201,8 +201,8 @@
|
|||
EF05EDF91EB0D75A00CAE7B6 /* Network */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EF05EDFB1EB0D77400CAE7B6 /* ApiNetworkService.swift */,
|
||||
EF05EDFA1EB0D77400CAE7B6 /* DefaultNetworkService.swift */,
|
||||
EF05EDFB1EB0D77400CAE7B6 /* SimpleNetworkService.swift */,
|
||||
);
|
||||
path = Network;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -367,13 +367,13 @@
|
|||
EF05EDE31EAFA7A600CAE7B6 /* BasePassCodeViewModel.swift in Sources */,
|
||||
EF05EDBB1EAF705500CAE7B6 /* ApiError.swift in Sources */,
|
||||
EF05EDE91EAFA8A000CAE7B6 /* PassCodeHolderProtocol.swift in Sources */,
|
||||
EF05EDFD1EB0D77400CAE7B6 /* SimpleNetworkService.swift in Sources */,
|
||||
EF05EDFD1EB0D77400CAE7B6 /* ApiNetworkService.swift in Sources */,
|
||||
EF05EDF81EB0D5A600CAE7B6 /* UIBarButtonItem+Extensions.swift in Sources */,
|
||||
EF05EDED1EAFA96D00CAE7B6 /* PassCodeHolder.swift in Sources */,
|
||||
EF05EDF61EB0D4C300CAE7B6 /* BarButtonLoadingService.swift in Sources */,
|
||||
EF05EDB71EAF704800CAE7B6 /* Observable+Extensions.swift in Sources */,
|
||||
EF05EDC01EAF706200CAE7B6 /* ApiResponse.swift in Sources */,
|
||||
EF05EDBC1EAF705500CAE7B6 /* ConnectionError.swift in Sources */,
|
||||
EF05EE021EB206C000CAE7B6 /* LoadingBarButton.swift in Sources */,
|
||||
EF05EDEB1EAFA8E600CAE7B6 /* PassCodeError.swift in Sources */,
|
||||
EF05EDB41EAF703A00CAE7B6 /* BaseUserService.swift in Sources */,
|
||||
EF05EDE51EAFA80D00CAE7B6 /* PassCodeConfiguration.swift in Sources */,
|
||||
|
|
|
|||
|
|
@ -24,16 +24,16 @@ import UIKit
|
|||
import RxSwift
|
||||
import RxCocoa
|
||||
|
||||
public enum BarButtonLoadingServiceSide {
|
||||
public enum LoadingBarButtonSide {
|
||||
case left
|
||||
case right
|
||||
}
|
||||
|
||||
public class BarButtonLoadingService {
|
||||
public class LoadingBarButton {
|
||||
|
||||
fileprivate weak var navigationItem: UINavigationItem?
|
||||
fileprivate var savedBarButton: UIBarButtonItem?
|
||||
private let side: BarButtonLoadingServiceSide
|
||||
private let side: LoadingBarButtonSide
|
||||
|
||||
private var barButtonItem: UIBarButtonItem? {
|
||||
get {
|
||||
|
|
@ -54,12 +54,12 @@ public class BarButtonLoadingService {
|
|||
}
|
||||
}
|
||||
|
||||
public init(navigationItem: UINavigationItem, side: BarButtonLoadingServiceSide) {
|
||||
public init(navigationItem: UINavigationItem, side: LoadingBarButtonSide) {
|
||||
self.navigationItem = navigationItem
|
||||
self.side = side
|
||||
}
|
||||
|
||||
fileprivate func setBarButton(waiting: Bool = false) {
|
||||
fileprivate func setState(waiting: Bool = false) {
|
||||
if waiting {
|
||||
savedBarButton = barButtonItem
|
||||
|
||||
|
|
@ -75,12 +75,12 @@ public class BarButtonLoadingService {
|
|||
|
||||
extension Observable {
|
||||
|
||||
public func changeLoadingUI(using loadingService: BarButtonLoadingService) -> Observable<Observable.E> {
|
||||
public func changeLoadingUI(using barButton: LoadingBarButton) -> Observable<Observable.E> {
|
||||
return observeOn(MainScheduler.instance)
|
||||
.do(onSubscribe: {
|
||||
loadingService.setBarButton(waiting: true)
|
||||
barButton.setState(waiting: true)
|
||||
}, onDispose: {
|
||||
loadingService.setBarButton(waiting: false)
|
||||
barButton.setState(waiting: false)
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -24,10 +24,8 @@ import LeadKit
|
|||
import Alamofire
|
||||
import ObjectMapper
|
||||
import RxSwift
|
||||
import RxCocoa
|
||||
import RxAlamofire
|
||||
|
||||
open class SimpleNetworkService: DefaultNetworkService {
|
||||
open class ApiNetworkService: DefaultNetworkService {
|
||||
|
||||
open func request<T: ImmutableMappable>(with parameters: ApiRequestParameters) -> Observable<T> {
|
||||
let apiResponseRequest = rxRequest(with: parameters) as Observable<(response: HTTPURLResponse, model: ApiResponse)>
|
||||
|
|
@ -59,3 +57,16 @@ open class SimpleNetworkService: DefaultNetworkService {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
extension ApiRequestParameters {
|
||||
|
||||
init(url: String, parameters: [String: Any] = [:]) {
|
||||
|
||||
self.init(url: ApiNetworkService.baseUrl + url,
|
||||
method: .post,
|
||||
parameters: parameters,
|
||||
encoding: JSONEncoding.default,
|
||||
headers: nil)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -20,13 +20,10 @@
|
|||
// THE SOFTWARE.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Alamofire
|
||||
import LeadKit
|
||||
import ObjectMapper
|
||||
import RxSwift
|
||||
import RxCocoa
|
||||
import RxAlamofire
|
||||
|
||||
open class DefaultNetworkService: NetworkService {
|
||||
|
||||
|
|
@ -37,7 +34,7 @@ open class DefaultNetworkService: NetworkService {
|
|||
}
|
||||
|
||||
open class var defaultTimeoutInterval: TimeInterval {
|
||||
fatalError("You should override this var: defaultTimeoutInterval")
|
||||
return 20.0
|
||||
}
|
||||
|
||||
public override init(sessionManager: SessionManager) {
|
||||
|
|
@ -67,21 +64,4 @@ open class DefaultNetworkService: NetworkService {
|
|||
return sessionManager
|
||||
}
|
||||
|
||||
public static func apiRequestParameters(url: String, parameters: [String: Any] = [:]) -> ApiRequestParameters {
|
||||
return ApiRequestParameters(baseUrl: baseUrl, url: url, parameters: parameters)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private extension ApiRequestParameters {
|
||||
|
||||
init(baseUrl: String, url: String, parameters: [String: Any] = [:]) {
|
||||
|
||||
self.init(url: baseUrl + url,
|
||||
method: .post,
|
||||
parameters: parameters,
|
||||
encoding: JSONEncoding.default,
|
||||
headers: nil)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue