Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protocol GigyaManager {
- typealias Account = MyAccount
- init(apiKey: String, apiDomain: String)
- var isLoggedIn: Bool { get }
- var isLoggedInObservable: Observable<Bool> { get }
- var account: Account? { get }
- var accountObservable: Observable<Account?> { get }
- func login(email: String, password: String) -> Single<Account>
- func login(provider: SocialNetworkProvider) -> Single<Account>
- func register(email: String, password: String) -> Single<Account>
- func register(provider: SocialNetworkProvider) -> Single<Account>
- func loadAccount() -> Single<Account>
- func update(_ account: Account) -> Single<Account>
- func link(to provider: SocialNetworkProvider, in viewController: UIViewController) -> Single<Account>
- func unlink(to provider: SocialNetworkProvider, in viewController: UIViewController) -> Single<Account>
- }
- struct GigyaManagerImpl: GigyaManager {
- typealias Account = MyAccount
- private let gigya: GigyaCore<Account>
- var isLoggedIn: Bool = false
- var isLoggedInObservable: Observable<Bool> = .just(false)
- var account: Account?
- var accountObservable: Observable<Account?> = .just(nil)
- private var defaultParams: [String : String] = ["include" : "profile, data"]
- init(apiKey: String, apiDomain: String) {
- self.gigya = Gigya.sharedInstance(Account.self)
- }
- func login(email: String, password: String) -> Single<Account> {
- //Simple example
- return Single
- .create { (single) -> Disposable in
- self.gigya.login(loginId: email, password: password, params: self.defaultParams) { (result) in
- switch result {
- case .success(let data):
- single(.success(data))
- case .failure(let error):
- single(.error(error)) //TODO
- @unknown default:
- fatalError("")
- }
- }
- return Disposables.create()
- }
- .catchError(map)
- }
- func login(provider: SocialNetworkProvider) -> Single<Account> {
- fatalError("") //TODO
- }
- func register(email: String, password: String) -> Single<Account> {
- fatalError("") //TODO
- }
- func register(provider: SocialNetworkProvider) -> Single<Account> {
- fatalError("") //TODO
- }
- func loadAccount() -> Single<Account> {
- fatalError("") //TODO
- }
- func update(_ account: Account) -> Single<Account> {
- fatalError("") //TODO
- }
- func link(to provider: SocialNetworkProvider, in viewController: UIViewController) -> Single<Account> {
- fatalError("") //TODO
- }
- func unlink(to provider: SocialNetworkProvider, in viewController: UIViewController) -> Single<Account> {
- fatalError("") //TODO
- }
- func resetPassword(email: String) -> Completable {
- fatalError("") //TODO
- }
- private func map(_ error: Error) throws -> Single<Account> {
- fatalError("") //TODO error management
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement