diff --git a/GME Remit/APIs/Router/APIRouter.swift b/GME Remit/APIs/Router/APIRouter.swift index 4aae8f96..462208f3 100644 --- a/GME Remit/APIs/Router/APIRouter.swift +++ b/GME Remit/APIs/Router/APIRouter.swift @@ -67,6 +67,7 @@ enum APIRouter { // MARK: - Recharge Prepiad Phone case fetchCardList(type: String, mobile: String) case verificationAndBuy(model: RechargeModel) + case fetchRechargeHistory(from: String, to: String) } // MARK: - Request @@ -137,8 +138,9 @@ extension APIRouter: ApiServiceType { headers: needsAuthorization ? afterLoginHeader : beforeLoginHeader ).handle( success: { (response: ResponseContainer) in - if (response.errorCode ?? "") == "1" { - let error = NSError(domain: "Network", code: 0, message: response.message ?? "") + if (response.errorCode ?? "") != "0" { + let code = Int(response.errorCode ?? "1") ?? 1 + let error = NSError(domain: "Network", code: code, message: response.message ?? "") failure(error) } else { success() @@ -173,8 +175,9 @@ extension APIRouter: ApiServiceType { headers: needsAuthorization ? afterLoginHeader : beforeLoginHeader ).handle( success: { (response: ResponseContainer) in - if (response.errorCode ?? "") == "1" { - let error = NSError(domain: "Network", code: 0, message: response.message ?? "") + if (response.errorCode ?? "") != "0" { + let code = Int(response.errorCode ?? "1") ?? 1 + let error = NSError(domain: "Network", code: code, message: response.message ?? "") failure(error) } else { guard let data = response.data else { @@ -215,8 +218,9 @@ extension APIRouter: ApiServiceType { ) .handle( success: { (response: ResponseContainerObject) in - if (response.errorCode ?? "") == "1" { - let error = NSError(domain: "Network", code: 0, message: response.message ?? "") + if (response.errorCode ?? "") != "0" { + let code = Int(response.errorCode ?? "1") ?? 1 + let error = NSError(domain: "Network", code: code, message: response.message ?? "") failure(error) } else { guard let data = response.data else { @@ -257,8 +261,9 @@ extension APIRouter: ApiServiceType { ) .handle( success: { (response: ResponseContainerArray) in - if (response.errorCode ?? "") == "1" { - let error = NSError(domain: "Network", code: 0, message: response.message ?? "") + if (response.errorCode ?? "") != "0" { + let code = Int(response.errorCode ?? "1") ?? 1 + let error = NSError(domain: "Network", code: code, message: response.message ?? "") failure(error) } else { guard let data = response.data else { @@ -458,6 +463,8 @@ extension APIRouter { return "\(baseUrl)/powerCall/GetCardList/" case .verificationAndBuy: return "\(baseUrl)/powerCall/VerificationAndBuy/" + case .fetchRechargeHistory: + return "\(baseUrl)/powerCall/GetChargeHistory/" } } } @@ -526,6 +533,8 @@ extension APIRouter { return .post case .verificationAndBuy: return .post + case .fetchRechargeHistory: + return .post } } @@ -729,7 +738,9 @@ extension APIRouter { ] case .fetchCardList(let type, let mobile): + let senderID = GMEDB.shared.user.string(.senderId) ?? "" return [ + "CustomerId" : senderID, "getcardType": type, "phoneNo": mobile ] @@ -749,6 +760,13 @@ extension APIRouter { "UseBalancePrice" : model.useBalancePrice ?? "", "PassWord": model.password ?? "" ] + case .fetchRechargeHistory(let from, let to): + let senderID = GMEDB.shared.user.string(.senderId) ?? "" + return [ + "CustomerId": senderID, + "FromDate" : from, + "ToDate": to + ] default: return nil } diff --git a/GME Remit/AppDelegate.swift b/GME Remit/AppDelegate.swift index faa6f2bb..1c202bea 100644 --- a/GME Remit/AppDelegate.swift +++ b/GME Remit/AppDelegate.swift @@ -56,14 +56,20 @@ class AppDelegate: UIResponder, UIApplicationDelegate { let center = UNUserNotificationCenter.current() center.delegate = self - center.requestAuthorization(options: [.alert, .sound, .badge]) { (_, _) in} - application.registerForRemoteNotifications() + center.requestAuthorization(options: [.alert, .sound, .badge]) { (granted, _) in + guard granted else { return } + + center.getNotificationSettings { settings in + print("Notification settings: \(settings)") + DispatchQueue.main.async { + UIApplication.shared.registerForRemoteNotifications() + } + } + } // Initialize ChannelIO ChannelIO.initialize() - self.window?.rootViewController = LauncherScreenWireframe().getMainView() - GMEDB .shared .app @@ -71,6 +77,16 @@ class AppDelegate: UIResponder, UIApplicationDelegate { StoreReviewHelper.shared.incrementAppOpenedCount() + self.window?.rootViewController = LauncherScreenWireframe().getMainView() + + // Check launch from notification. +// let notificationOption = launchOptions?[.remoteNotification] +// if let notification = notificationOption as? [String: AnyObject], +// let aps = notification["aps"] as? [String: AnyObject] { +// +// (window?.rootViewController as? UITabBarController)?.selectedIndex = 3 +// } + return true } diff --git a/GME Remit/Modules/PowerCallModules/LocalTopup/PhoneCardRecharge/User Interface/Presenter/PhoneCardRechargePresenter.swift b/GME Remit/Modules/PowerCallModules/LocalTopup/PhoneCardRecharge/User Interface/Presenter/PhoneCardRechargePresenter.swift index 3d7b064e..144d4a6c 100644 --- a/GME Remit/Modules/PowerCallModules/LocalTopup/PhoneCardRecharge/User Interface/Presenter/PhoneCardRechargePresenter.swift +++ b/GME Remit/Modules/PowerCallModules/LocalTopup/PhoneCardRecharge/User Interface/Presenter/PhoneCardRechargePresenter.swift @@ -60,7 +60,7 @@ class PhoneCardRechargePresenter: ViewModelType { let isError: Driver let isProgress: Driver let isEnableNext: Driver - let isSuccessPayment: Driver + let isSuccessPayment: Driver let regularModel: Driver<[PriceModel]> let fixedModel: Driver<[MainCardInformation]> let carrierPlanModel: Driver<[CardInformation]> @@ -72,7 +72,7 @@ class PhoneCardRechargePresenter: ViewModelType { private let progressLinker = PublishSubject() private let errorLinker = PublishSubject() - private let isSuccessPayment = PublishSubject() + private let isSuccessPayment = PublishSubject() private let regularModel = BehaviorSubject<[PriceModel]>(value: []) private let fixedModel = BehaviorSubject<[MainCardInformation]>(value: []) @@ -209,7 +209,7 @@ extension PhoneCardRechargePresenter: PhoneCardRechargeWireframeOutput { } extension PhoneCardRechargePresenter: RechargePayementDelegate { - func rechargePayment(_ viewController: UIViewController, didComplete data: VerificationAndBuy) { - isSuccessPayment.onNext(data) + func rechargePayment(_ viewController: UIViewController) { + isSuccessPayment.onNext(()) } } diff --git a/GME Remit/Modules/PowerCallModules/LocalTopup/PhoneCardRecharge/User Interface/View/PhoneCardRechargeViewController.swift b/GME Remit/Modules/PowerCallModules/LocalTopup/PhoneCardRecharge/User Interface/View/PhoneCardRechargeViewController.swift index b14b1a4a..7dc534b4 100644 --- a/GME Remit/Modules/PowerCallModules/LocalTopup/PhoneCardRecharge/User Interface/View/PhoneCardRechargeViewController.swift +++ b/GME Remit/Modules/PowerCallModules/LocalTopup/PhoneCardRecharge/User Interface/View/PhoneCardRechargeViewController.swift @@ -171,7 +171,20 @@ extension PhoneCardRechargeViewController { output.isError .drive( - onNext: { self.alert(type: .error, message: $0.localizedDescription) } + onNext: { [weak self] in + let error = $0 as NSError + + if error.code == 5 { + self?.alert( + type: .error, + message: "You have a recent request for recharging.\nWait for the results of this request." + ) { + self?.navigationController?.popToRootViewController(animated: true) + } + } else { + self?.alert(type: .error, message: $0.localizedDescription) + } + } ).disposed(by: disposeBag) output.isProgress @@ -181,9 +194,15 @@ extension PhoneCardRechargeViewController { output.isSuccessPayment .drive( - onNext: {[weak self] receipt in - print("receipt: \(receipt)") - self?.navigationController?.popToRootViewController(animated: true) + onNext: {[weak self] in + self?.alertWithOk( + type: .success, + message: "The recharge request successfuly.\nYou can check it's result at Recharge History", + title: "Recharge Request Success", + okTitle: "Ok" + ) { + self?.navigationController?.popToRootViewController(animated: true) + } }).disposed(by: disposeBag) output.isEnableNext diff --git a/GME Remit/Modules/PowerCallModules/RechargeHistory/Application Logic/Service/RechargeHistoryService.swift b/GME Remit/Modules/PowerCallModules/RechargeHistory/Application Logic/Service/RechargeHistoryService.swift index 07361bb0..cf8b017f 100644 --- a/GME Remit/Modules/PowerCallModules/RechargeHistory/Application Logic/Service/RechargeHistoryService.swift +++ b/GME Remit/Modules/PowerCallModules/RechargeHistory/Application Logic/Service/RechargeHistoryService.swift @@ -91,14 +91,17 @@ class RechargeHistoryService: RechargeHistoryServiceType { ] } """ - guard - let json = ResponseContainerArray(JSONString: text), - let data = json.data else { - let error = NSError(domain: "TEST data error", code: 0, message: "Wrong Test Data") - failure(error) - return - } +// guard +// let json = ResponseContainerArray(JSONString: text), +// let data = json.data else { +// let error = NSError(domain: "TEST data error", code: 0, message: "Wrong Test Data") +// failure(error) +// return +// } +// +// success(data) - success(data) + APIRouter.fetchRechargeHistory(from: from, to: to) + .json(success: success, failure: failure) } } diff --git a/GME Remit/Modules/PowerCallModules/RechargeHistory/User Interface/View/RechargeHistory.storyboard b/GME Remit/Modules/PowerCallModules/RechargeHistory/User Interface/View/RechargeHistory.storyboard index 42b7583b..89de6cb1 100644 --- a/GME Remit/Modules/PowerCallModules/RechargeHistory/User Interface/View/RechargeHistory.storyboard +++ b/GME Remit/Modules/PowerCallModules/RechargeHistory/User Interface/View/RechargeHistory.storyboard @@ -1,6 +1,6 @@ - + @@ -25,20 +25,20 @@ - + - + - + - + - + @@ -52,7 +52,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + + - + + + + + - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + + - + + + + + - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - + - - - - - - - - + - - - - - - - - + - + - - - - - + + + + - + - - - - - - + + + + @@ -655,20 +622,20 @@ - + - + - + - + - + @@ -679,37 +646,37 @@ - + - + - + @@ -717,13 +684,13 @@ - +