//
//  UserInfoRepository.swift
//  PaiAi
//
//  Created by FFIB on 16/4/1.
//  Copyright © 2016年 FFIB. All rights reserved.
//

import Foundation
import RxSwift

final class UserInfoRepository {
    fileprivate var userInfoStore: UserInfoStore
    fileprivate var guestRemoteAPI: UserInfoRemoteAPI
    fileprivate var wxRemoteAPI: UserInfoRemoteAPI
    
    init(userInfoStore: UserInfoStore,
         guestRemoteAPI: UserInfoRemoteAPI,
         wxRemoteAPI: UserInfoRemoteAPI) {
        self.userInfoStore = userInfoStore
        self.guestRemoteAPI = guestRemoteAPI
        self.wxRemoteAPI = wxRemoteAPI
    }
    
    func guestLogin() -> Single<UserInfo> {
        return guestRemoteAPI.login().do(onSuccess: { (userInfo) in
            self.userInfoStore.save(userInfo)
        })
    }
    
    func wxLogin() -> Single<UserInfo> {
        return wxRemoteAPI.login().do(onSuccess: { (userInfo) in
            self.userInfoStore.save(userInfo)
        })
    }
    
    func readUserInfo() -> UserInfo {
        return userInfoStore.load()
    }
}