diff --git a/GMERemittance/Module/GmeContacts/Application Logic/Interactor/GmeContactsInteractor.swift b/GMERemittance/Module/GmeContacts/Application Logic/Interactor/GmeContactsInteractor.swift
index 115f3924..8cb887bd 100644
--- a/GMERemittance/Module/GmeContacts/Application Logic/Interactor/GmeContactsInteractor.swift
+++ b/GMERemittance/Module/GmeContacts/Application Logic/Interactor/GmeContactsInteractor.swift
@@ -9,23 +9,31 @@
import Foundation
class GmeContactsInteractor {
-
- // MARK: Properties
-
- weak var output: GmeContactsInteractorOutput?
- private let service: GmeContactsServiceType
-
- // MARK: Initialization
-
- init(service: GmeContactsServiceType) {
- self.service = service
- }
-
- // MARK: Converting entities
+
+ // MARK: Properties
+
+ weak var output: GmeContactsInteractorOutput?
+ private let service: GmeContactsServiceType
+ private let model: [Branch]?
+ // MARK: Initialization
+
+ init(service: GmeContactsServiceType, model: [Branch]?) {
+ self.service = service
+ self.model = model
+ }
+
+ // MARK: Converting entities
}
// MARK: GmeContacts interactor input interface
extension GmeContactsInteractor: GmeContactsInteractorInput {
-
+ func fetchBranches() {
+ service.fetchBranches(
+ success: {
+ self.output?.setBranchModel(with: $0)
+ }){
+ self.output?.setBranchesError(with: $0)
+ }
+ }
}
diff --git a/GMERemittance/Module/GmeContacts/Application Logic/Interactor/GmeContactsInteractorIO.swift b/GMERemittance/Module/GmeContacts/Application Logic/Interactor/GmeContactsInteractorIO.swift
index 861f3cd9..7bf722d4 100644
--- a/GMERemittance/Module/GmeContacts/Application Logic/Interactor/GmeContactsInteractorIO.swift
+++ b/GMERemittance/Module/GmeContacts/Application Logic/Interactor/GmeContactsInteractorIO.swift
@@ -7,9 +7,10 @@
//
protocol GmeContactsInteractorInput: class {
-
+ func fetchBranches()
}
protocol GmeContactsInteractorOutput: class {
-
+ func setBranchModel(with model: [Branch]?)
+ func setBranchesError(with error: Error)
}
diff --git a/GMERemittance/Module/GmeContacts/Application Logic/Service/GmeContactsService.swift b/GMERemittance/Module/GmeContacts/Application Logic/Service/GmeContactsService.swift
index 66e02b48..e02e34ed 100644
--- a/GMERemittance/Module/GmeContacts/Application Logic/Service/GmeContactsService.swift
+++ b/GMERemittance/Module/GmeContacts/Application Logic/Service/GmeContactsService.swift
@@ -9,10 +9,32 @@
import Foundation
class GmeContactsService: GmeContactsServiceType {
+ func fetchBranches(
+ success: @escaping ([Branch]?) -> Void,
+ failure: @escaping (Error) -> Void
+ ) {
- // MARK: Properties
+ let url = baseUrlWithoutVersion + "/v2/reward/branchInfo"
+ // let url = "http://gmeuat.gmeremit.com:5018/api/v2/reward/branchInfo"
- // MARK: Initialization
-
- // MARK: Data management
+ auth.request(
+ method: .post,
+ url: url,
+ params: nil,
+ success: { (response: BranchContainer) in
+ if (response.errorCode ?? "") == "1" {
+ let error = NSError.init(
+ domain: "Network",
+ code: 0,
+ userInfo: [NSLocalizedDescriptionKey : response.message ?? ""]
+ )
+
+ failure(error)
+ }else {
+ success(response.data)
+ }
+ }) { (error) in
+ failure(error)
+ }
+ }
}
diff --git a/GMERemittance/Module/GmeContacts/Application Logic/Service/GmeContactsServiceType.swift b/GMERemittance/Module/GmeContacts/Application Logic/Service/GmeContactsServiceType.swift
index d2f00fcb..ad2f7bc4 100644
--- a/GMERemittance/Module/GmeContacts/Application Logic/Service/GmeContactsServiceType.swift
+++ b/GMERemittance/Module/GmeContacts/Application Logic/Service/GmeContactsServiceType.swift
@@ -8,6 +8,9 @@
import Foundation
-protocol GmeContactsServiceType: class {
-
+protocol GmeContactsServiceType: class, ApiServiceType {
+ func fetchBranches(
+ success: @escaping ([Branch]?) -> Void,
+ failure: @escaping (Error) -> Void
+ )
}
diff --git a/GMERemittance/Module/GmeContacts/Module Interface/GmeContactsModuleInterface.swift b/GMERemittance/Module/GmeContacts/Module Interface/GmeContactsModuleInterface.swift
index 3c5ba771..8d830355 100644
--- a/GMERemittance/Module/GmeContacts/Module Interface/GmeContactsModuleInterface.swift
+++ b/GMERemittance/Module/GmeContacts/Module Interface/GmeContactsModuleInterface.swift
@@ -7,5 +7,5 @@
//
protocol GmeContactsModuleInterface: class {
-
+ func fetchBranch()
}
diff --git a/GMERemittance/Module/GmeContacts/User Interface/Presenter/GmeContactsPresenter.swift b/GMERemittance/Module/GmeContacts/User Interface/Presenter/GmeContactsPresenter.swift
index 9d5dbc6f..44121c91 100644
--- a/GMERemittance/Module/GmeContacts/User Interface/Presenter/GmeContactsPresenter.swift
+++ b/GMERemittance/Module/GmeContacts/User Interface/Presenter/GmeContactsPresenter.swift
@@ -9,24 +9,35 @@
import Foundation
class GmeContactsPresenter {
-
- // MARK: Properties
-
- weak var view: GmeContactsViewInterface?
- var interactor: GmeContactsInteractorInput?
- var wireframe: GmeContactsWireframeInput?
-
- // MARK: Converting entities
+
+ // MARK: Properties
+
+ weak var view: GmeContactsViewInterface?
+ var interactor: GmeContactsInteractorInput?
+ var wireframe: GmeContactsWireframeInput?
+
+ // MARK: Converting entities
}
- // MARK: GmeContacts module interface
+// MARK: GmeContacts module interface
extension GmeContactsPresenter: GmeContactsModuleInterface {
-
+ func fetchBranch() {
+ view?.startLoading()
+ interactor?.fetchBranches()
+ }
}
// MARK: GmeContacts interactor output interface
extension GmeContactsPresenter: GmeContactsInteractorOutput {
-
+ func setBranchModel(with model: [Branch]?) {
+ view?.endLoading()
+ view?.setBranchModel(with: model)
+ }
+
+ func setBranchesError(with error: Error) {
+ view?.endLoading()
+ view?.setBranchesError(with: error)
+ }
}
diff --git a/GMERemittance/Module/GmeContacts/User Interface/View/GmeContactsViewController.swift b/GMERemittance/Module/GmeContacts/User Interface/View/GmeContactsViewController.swift
index 21f4dec1..6b87f9f7 100644
--- a/GMERemittance/Module/GmeContacts/User Interface/View/GmeContactsViewController.swift
+++ b/GMERemittance/Module/GmeContacts/User Interface/View/GmeContactsViewController.swift
@@ -10,205 +10,236 @@ import UIKit
import Localize_Swift
class GmeContactsViewController: UIViewController {
+
+
+
+ // MARK: IBOutlets
+ @IBOutlet weak var tableview: UITableView!
+
+ var presenter: GmeContactsModuleInterface?
+ var contacts: [GmeContacts] = [] {
+ didSet {
+ self.tableview.reloadData()
+ }
+ }
+
+ var model: [Branch]? {
+ didSet {
+ guard let model = model
+ else {
+ return
+ }
+
+ contacts = model.map{
+ let branch = GmeContacts()
+ branch.title = $0.agentName
+ branch.address = $0.agentAddress
+ branch.contactNumber = [$0.agentPhone1] as? [String]
+ return branch
+ }
+ }
+ }
+ // MARK: Properties
+
+
+ // MARK: VC's Life cycle
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+ self.setup()
+ presenter?.fetchBranch()
+ }
+
+ override func viewWillAppear(_ animated: Bool) {
+ super.viewWillAppear(animated)
+ self.navigationItem.title = "branch_text".localized()
-
- // MARK: IBOutlets
- @IBOutlet weak var tableview: UITableView!
-
- var presenter: GmeContactsModuleInterface?
- var contacts: [GmeContacts] = [] {
- didSet {
- self.tableview.reloadData()
- }
+ if self.presentingViewController == nil {
+ self.navigationItem.rightBarButtonItem = nil
}
+ }
+
+ // MARK: IBActions
+ @IBAction func touchClose(_ sender: UIBarButtonItem) {
+ self.dismiss(animated: true, completion: nil)
+ }
+
+ // MARK: Other Functions
+
+ private func setup() {
+ self.tableview.dataSource = self
+ self.tableview.delegate = self
+ // all setup should be done here
+
+ self.createTestContacts()
+ NotificationCenter.default.addObserver(self, selector: #selector(setupTabItem), name: NSNotification.Name(LCLLanguageChangeNotification), object: nil)
+ }
+
+ struct StringConstants {
- // MARK: Properties
+ }
+
+ private func createTestContacts() {
+ // let headOfficeContacts = GmeContacts()
+ // headOfficeContacts.title = "Head Office"
+ // headOfficeContacts.address = "325, Jong-ro, Jongno-gu, 03104 Seoul"
+ // headOfficeContacts.contactNumber = ["15886864"]
+ // headOfficeContacts.language = "Korean Language Support"
- // MARK: VC's Life cycle
+ let dongdaemunBranchContacts = GmeContacts()
+ dongdaemunBranchContacts.title = "Dongdaemun Branch"
+ dongdaemunBranchContacts.address = "315, Jong-ro Jongno-gu, Seoul \n(Dongdaemun Station - Exit 3) \n 서울시 종로구 종로 315"
+ dongdaemunBranchContacts.contactNumber = ["027635559"]
- override func viewDidLoad() {
- super.viewDidLoad()
- self.viperSetup() // since the viewcontroller in the tabbar is in strong bind with storyboard and segue
- self.setup()
- }
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- self.navigationItem.title = "branch_text".localized()
-
- if self.presentingViewController == nil {
- self.navigationItem.rightBarButtonItem = nil
- }
- }
- // MARK: IBActions
- @IBAction func touchClose(_ sender: UIBarButtonItem) {
- self.dismiss(animated: true, completion: nil)
- }
+ let hwaseongBranchContacts = GmeContacts()
+ hwaseongBranchContacts.title = "Hwaseong Branch"
+ hwaseongBranchContacts.address = "1101-1, 3.1 Manse-ro Hyangnam-eup, Hwaseong-si, Gyeonggi-do \n(Baran Market Place) \n 경기도 화성시 향남읍 3.1만세로 1101-1"
+ hwaseongBranchContacts.contactNumber = ["0313540450"]
- // MARK: Other Functions
- private func setup() {
- self.tableview.dataSource = self
- self.tableview.delegate = self
- // all setup should be done here
-
- self.createTestContacts()
- NotificationCenter.default.addObserver(self, selector: #selector(setupTabItem), name: NSNotification.Name(LCLLanguageChangeNotification), object: nil)
- }
+ let ansanBranchContacts = GmeContacts()
+ ansanBranchContacts.title = "Ansan Branch"
+ ansanBranchContacts.address = "2nd floor, 455, Jungang-daero, Danwon-gu, Ansan -si, Gyeonggi-do \n(Entrance of Asian Street) \n 경기도 안산시 단원구 중앙대로 455 2층"
+ ansanBranchContacts.contactNumber = ["0313626740"]
- struct StringConstants {
-
- }
+ let gimhaeBranchContacts = GmeContacts()
+ gimhaeBranchContacts.title = "Gimhae Branch"
+ gimhaeBranchContacts.address = "84, Garak-ro, Gimhae-si, Gyeongsangnam-do,\n(Opposite to Top Mart) \n 경상남도 김해시 가락로 84 "
+ gimhaeBranchContacts.contactNumber = ["0553295559"]
- private func createTestContacts() {
-// let headOfficeContacts = GmeContacts()
-// headOfficeContacts.title = "Head Office"
-// headOfficeContacts.address = "325, Jong-ro, Jongno-gu, 03104 Seoul"
-// headOfficeContacts.contactNumber = ["15886864"]
-// headOfficeContacts.language = "Korean Language Support"
-
- let dongdaemunBranchContacts = GmeContacts()
- dongdaemunBranchContacts.title = "Dongdaemun Branch"
- dongdaemunBranchContacts.address = "315, Jong-ro Jongno-gu, Seoul \n(Dongdaemun Station - Exit 3) \n 서울시 종로구 종로 315"
- dongdaemunBranchContacts.contactNumber = ["027635559"]
-
-
-
- let hwaseongBranchContacts = GmeContacts()
- hwaseongBranchContacts.title = "Hwaseong Branch"
- hwaseongBranchContacts.address = "1101-1, 3.1 Manse-ro Hyangnam-eup, Hwaseong-si, Gyeonggi-do \n(Baran Market Place) \n 경기도 화성시 향남읍 3.1만세로 1101-1"
- hwaseongBranchContacts.contactNumber = ["0313540450"]
-
-
- let ansanBranchContacts = GmeContacts()
- ansanBranchContacts.title = "Ansan Branch"
- ansanBranchContacts.address = "2nd floor, 455, Jungang-daero, Danwon-gu, Ansan -si, Gyeonggi-do \n(Entrance of Asian Street) \n 경기도 안산시 단원구 중앙대로 455 2층"
- ansanBranchContacts.contactNumber = ["0313626740"]
-
-
- let gimhaeBranchContacts = GmeContacts()
- gimhaeBranchContacts.title = "Gimhae Branch"
- gimhaeBranchContacts.address = "84, Garak-ro, Gimhae-si, Gyeongsangnam-do,\n(Opposite to Top Mart) \n 경상남도 김해시 가락로 84 "
- gimhaeBranchContacts.contactNumber = ["0553295559"]
-
-
-
- let songuriBranchContacts = GmeContacts()
- songuriBranchContacts.title = "Songu-ri Branch"
- songuriBranchContacts.address = "91, Solmoru-ro, Soheul-eup, Pocheon-si, Gyeonggi-do, Korea\nNext to Nonghyub Bank) \n 경기도 포천시 소흘읍 솔모루로 91"
- songuriBranchContacts.contactNumber = ["0315411856"]
-
- let dongdaemunCisBranch = GmeContacts()
- dongdaemunCisBranch.title = "Dongdaemun CIS Branch"
- dongdaemunCisBranch.address = "2nd floor, 281, Changgyeonggunag-ro Jongno-gu, Seoul\n(Upper floor of Dongdaemun Mart) \n 서울 중구 을지로 42길 5 2층"
- dongdaemunCisBranch.contactNumber = ["0221386429", "01030156864"]
-
-
- let hyehwaBranch = GmeContacts()
- hyehwaBranch.title = "Hyehwa Branch"
- hyehwaBranch.address = "281, Changgyeonggung-ro, Jongno-gu, Seoul Hyehwa Rotary\n(Right across from Catholic Church) \n 서울특별시 종로구 창경궁로 281"
- hyehwaBranch.contactNumber = ["0221386429", "01029706864"]
-
-
- let gmeContacts = [dongdaemunCisBranch, dongdaemunBranchContacts, hwaseongBranchContacts, ansanBranchContacts, gimhaeBranchContacts, songuriBranchContacts, hyehwaBranch]
- self.contacts = gmeContacts
-
- }
- private func call(number: String) {
- let number = number.removeWhitespacesInBetween()
- if let url = URL(string: "tel://\(number)") {
- if UIApplication.shared.canOpenURL(url) {
- UIApplication.shared.openURL(url)
- }
- }
- }
- override func setupTabItem() {
- let image = UIImage.init(named: "ic-agent")
- self.tabBarItem = UITabBarItem(title: "branch_text".localized(), image: image, selectedImage: nil)
- self.tabBarItem.titlePositionAdjustment = UIOffset(horizontal: 0, vertical: UI_USER_INTERFACE_IDIOM() == .pad ? 2 : -6)
+ let songuriBranchContacts = GmeContacts()
+ songuriBranchContacts.title = "Songu-ri Branch"
+ songuriBranchContacts.address = "91, Solmoru-ro, Soheul-eup, Pocheon-si, Gyeonggi-do, Korea\nNext to Nonghyub Bank) \n 경기도 포천시 소흘읍 솔모루로 91"
+ songuriBranchContacts.contactNumber = ["0315411856"]
+
+ let dongdaemunCisBranch = GmeContacts()
+ dongdaemunCisBranch.title = "Dongdaemun CIS Branch"
+ dongdaemunCisBranch.address = "2nd floor, 281, Changgyeonggunag-ro Jongno-gu, Seoul\n(Upper floor of Dongdaemun Mart) \n 서울 중구 을지로 42길 5 2층"
+ dongdaemunCisBranch.contactNumber = ["0221386429", "01030156864"]
+
+
+ let hyehwaBranch = GmeContacts()
+ hyehwaBranch.title = "Hyehwa Branch"
+ hyehwaBranch.address = "281, Changgyeonggung-ro, Jongno-gu, Seoul Hyehwa Rotary\n(Right across from Catholic Church) \n 서울특별시 종로구 창경궁로 281"
+ hyehwaBranch.contactNumber = ["0221386429", "01029706864"]
+
+
+ let gmeContacts = [dongdaemunCisBranch, dongdaemunBranchContacts, hwaseongBranchContacts, ansanBranchContacts, gimhaeBranchContacts, songuriBranchContacts, hyehwaBranch]
+ self.contacts = gmeContacts
+
+ }
+
+ private func call(number: String) {
+ let number = number.removeWhitespacesInBetween()
+ if let url = URL(string: "tel://\(number)") {
+ if UIApplication.shared.canOpenURL(url) {
+ UIApplication.shared.openURL(url)
+ }
}
+ }
+
+ override func setupTabItem() {
+ let image = UIImage.init(named: "ic-agent")
+ self.tabBarItem = UITabBarItem(title: "branch_text".localized(), image: image, selectedImage: nil)
+ self.tabBarItem.titlePositionAdjustment = UIOffset(horizontal: 0, vertical: UI_USER_INTERFACE_IDIOM() == .pad ? 2 : -6)
+ }
}
// MARK: GmeContactsViewInterface
extension GmeContactsViewController: GmeContactsViewInterface {
-
+ func setBranchModel(with model: [Branch]?) {
+ self.model = model
+ }
+
+ func setBranchesError(with error: Error){
+ alertWithOk(message: error.localizedDescription)
+ }
+
+ func startLoading(){
+ showProgressHud()
+ }
+
+ func endLoading(){
+ hideProgressHud()
+ }
}
extension GmeContactsViewController {
- func viperSetup() {
- let service = GmeContactsService()
- let interactor = GmeContactsInteractor(service: service)
- let presenter = GmeContactsPresenter()
- let wireframe = GmeContactsWireframe()
-
- self.presenter = presenter
- interactor.output = presenter
- presenter.interactor = interactor
- presenter.wireframe = wireframe
- presenter.view = self
- wireframe.view = self
- }
+ func viperSetup() {
+ let service = GmeContactsService()
+ let interactor = GmeContactsInteractor(service: service, model: nil)
+ let presenter = GmeContactsPresenter()
+ let wireframe = GmeContactsWireframe()
+
+ self.presenter = presenter
+ interactor.output = presenter
+ presenter.interactor = interactor
+ presenter.wireframe = wireframe
+ presenter.view = self
+ wireframe.view = self
+ }
}
extension GmeContactsViewController: UITableViewDelegate {
- func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
- print(indexPath.row)
- if indexPath.row == 0 {return 10}
- return UITableViewAutomaticDimension
- }
+ func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+ print(indexPath.row)
+ if indexPath.row == 0 {return 10}
+ return UITableViewAutomaticDimension
+ }
}
extension GmeContactsViewController: UITableViewDataSource {
- func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- return contacts.count + 1
+ func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+ return contacts.count + 1
+ }
+
+ func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+ if indexPath.row == 0 {
+ let cell = tableView.dequeueReusableCell(withIdentifier: "EmptyTableViewCell") as! EmptyTableViewCell
+ return cell
}
- func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- if indexPath.row == 0 {
- let cell = tableView.dequeueReusableCell(withIdentifier: "EmptyTableViewCell") as! EmptyTableViewCell
- return cell
- }
-
-
- let cell = tableView.dequeueReusableCell(withIdentifier: "GmeContactsTableViewCell") as! GmeContactsTableViewCell
- cell.contact = self.contacts.elementAt(index: indexPath.row - 1)
- cell.delegate = self
- cell.index = indexPath.row - 1
- cell.setup()
- return cell
- }
+
+ let cell = tableView.dequeueReusableCell(withIdentifier: "GmeContactsTableViewCell") as! GmeContactsTableViewCell
+ cell.contact = self.contacts.elementAt(index: indexPath.row - 1)
+ cell.delegate = self
+ cell.index = indexPath.row - 1
+ cell.setup()
+ return cell
+ }
}
extension GmeContactsViewController: GmeContactCallDelegate {
- func call(index: Int?) {
- guard let index = index else {return}
- if let contact = self.contacts.elementAt(index: index) {
- let numbers = contact.contactNumber
-
- let alert = UIAlertController(title:nil, message:"help_you_text".localized(), preferredStyle: .actionSheet)
-
- numbers?.forEach({ number in
- let action = UIAlertAction.init(title: "\(number)", style: UIAlertActionStyle.default, handler: { action in
- self.call(number: number)
- })
- alert.addAction(action)
- })
-
- alert.view.tintColor = UIColor.darkGray
-
- alert.addAction(UIAlertAction(title: "cancel_text".localized(), style: UIAlertActionStyle.cancel, handler: nil))
- present(alert, animated: true, completion: nil)
-
- }
-
+ func call(index: Int?) {
+ guard let index = index else {return}
+ if let contact = self.contacts.elementAt(index: index) {
+ let numbers = contact.contactNumber
+
+ let alert = UIAlertController(title:nil, message:"help_you_text".localized(), preferredStyle: .actionSheet)
+
+ numbers?.forEach({ number in
+ let action = UIAlertAction.init(title: "\(number)", style: UIAlertActionStyle.default, handler: { action in
+ self.call(number: number)
+ })
+ alert.addAction(action)
+ })
+
+ alert.view.tintColor = UIColor.darkGray
+
+ alert.addAction(UIAlertAction(title: "cancel_text".localized(), style: UIAlertActionStyle.cancel, handler: nil))
+ present(alert, animated: true, completion: nil)
+
}
-
+ }
+
+
}
diff --git a/GMERemittance/Module/GmeContacts/User Interface/View/GmeContactsViewInterface.swift b/GMERemittance/Module/GmeContacts/User Interface/View/GmeContactsViewInterface.swift
index f6fd7d4e..d4686bf1 100644
--- a/GMERemittance/Module/GmeContacts/User Interface/View/GmeContactsViewInterface.swift
+++ b/GMERemittance/Module/GmeContacts/User Interface/View/GmeContactsViewInterface.swift
@@ -7,5 +7,9 @@
//
protocol GmeContactsViewInterface: class {
-
+ func setBranchModel(with model: [Branch]?)
+ func setBranchesError(with error: Error)
+
+ func startLoading()
+ func endLoading()
}
diff --git a/GMERemittance/Module/GmeContacts/User Interface/Wireframe/GmeContactsWireframe.swift b/GMERemittance/Module/GmeContacts/User Interface/Wireframe/GmeContactsWireframe.swift
index 062945bb..dcd53bab 100644
--- a/GMERemittance/Module/GmeContacts/User Interface/Wireframe/GmeContactsWireframe.swift
+++ b/GMERemittance/Module/GmeContacts/User Interface/Wireframe/GmeContactsWireframe.swift
@@ -9,26 +9,35 @@
import UIKit
class GmeContactsWireframe {
- weak var view: UIViewController!
+ weak var view: UIViewController!
+ private var model: [Branch]?
}
extension GmeContactsWireframe: GmeContactsWireframeInput {
+
+ var storyboardName: String {return "GmeContacts"}
+
+ func getMainView() -> UIViewController {
+ let service = GmeContactsService()
+ let presenter = GmeContactsPresenter()
+ let viewController = viewControllerFromStoryboard(of: GmeContactsViewController.self)
+ let interactor = GmeContactsInteractor(service: service, model: model)
- var storyboardName: String {return "GmeContacts"}
+ viewController.setupTabItem()
+ viewController.presenter = presenter
+ interactor.output = presenter
+ presenter.interactor = interactor
+ presenter.wireframe = self
+ presenter.view = viewController
+ let _ = viewController.view
+ view = viewController
+ return viewController
+ }
+
+ func presentWithBranchModel(_ model: [Branch]?, on source: UIViewController){
+ self.model = model
+ let mainViewController = getMainView()
- func getMainView() -> UIViewController {
- let service = GmeContactsService()
- let interactor = GmeContactsInteractor(service: service)
- let presenter = GmeContactsPresenter()
- let viewController = viewControllerFromStoryboard(of: GmeContactsViewController.self)
- viewController.setupTabItem()
- viewController.presenter = presenter
- interactor.output = presenter
- presenter.interactor = interactor
- presenter.wireframe = self
- presenter.view = viewController
- let _ = viewController.view
- self.view = viewController
- return viewController
- }
+ openViewControllerWithNavigation(viewController: mainViewController, source: source)
+ }
}
diff --git a/GMERemittance/Module/GmeContacts/User Interface/Wireframe/GmeContactsWireframeInput.swift b/GMERemittance/Module/GmeContacts/User Interface/Wireframe/GmeContactsWireframeInput.swift
index b6f34bb0..a16dc11a 100644
--- a/GMERemittance/Module/GmeContacts/User Interface/Wireframe/GmeContactsWireframeInput.swift
+++ b/GMERemittance/Module/GmeContacts/User Interface/Wireframe/GmeContactsWireframeInput.swift
@@ -9,5 +9,5 @@
import Foundation
protocol GmeContactsWireframeInput: WireframeInput {
-
+ func presentWithBranchModel(_ model: [Branch]?, on source: UIViewController)
}
diff --git a/GMERemittance/Module/RewardModules/DetailOrder/User Interface/View/DetailOrderViewController.swift b/GMERemittance/Module/RewardModules/DetailOrder/User Interface/View/DetailOrderViewController.swift
index 5f1dc22d..7f29abc3 100644
--- a/GMERemittance/Module/RewardModules/DetailOrder/User Interface/View/DetailOrderViewController.swift
+++ b/GMERemittance/Module/RewardModules/DetailOrder/User Interface/View/DetailOrderViewController.swift
@@ -26,15 +26,15 @@ class DetailOrderViewController: UIViewController {
receiverNameLabel.text = order.recvName
mobileNumberLabel.text = order.recvPhoneNumber
-// pickupBranchLabel.text = order.recvType == "1" ? order.recvAddress : order.branchCode
+ pickupBranchLabel.text = order.branchName
productNameLabel.text = order.productName
productPointLabel.text = order.usePoint
orderStatusLabel.text = status.message
orderDateLabel.text = order.createdDate
- //TODO: 서버사이드에서 추가되면 활성화
-// orderReceiveDateLabel.text = order.recvDate
+
+ orderReceiveDateLabel.text = order.recvDate
orderIDNumberLabel.text = order.orderID
orderTypeLabel.text = order.recvType == "1" ? "Deliver" : "pickup_from_branch".localized()
}
diff --git a/GMERemittance/Module/RewardModules/OrderHistory/Application Logic/Interactor/OrderHistoryInteractor.swift b/GMERemittance/Module/RewardModules/OrderHistory/Application Logic/Interactor/OrderHistoryInteractor.swift
index 0d644322..51cd9ecb 100644
--- a/GMERemittance/Module/RewardModules/OrderHistory/Application Logic/Interactor/OrderHistoryInteractor.swift
+++ b/GMERemittance/Module/RewardModules/OrderHistory/Application Logic/Interactor/OrderHistoryInteractor.swift
@@ -29,31 +29,11 @@ class OrderHistoryInteractor {
extension OrderHistoryInteractor: OrderHistoryInteractorInput {
func fetchOrderHistory(from startDate: String, to endDate: String) {
- let from: String
- let to: String
- if startDate == "" && endDate == "" {
- let formatter = DateFormatter()
- formatter.dateFormat = "yyyy-MM-dd"
-
- let monthsToAdd = -3
- let currentDate = Date()
-
- var dateComponent = DateComponents()
- dateComponent.month = monthsToAdd
- let futureDate = Calendar.current.date(byAdding: dateComponent, to: currentDate)
-
- to = formatter.string(from: currentDate)
- from = formatter.string(from: futureDate!)
-
- } else {
- from = startDate
- to = endDate
- }
service.fetchOrderHistory(
- from: from,
- to: to,
+ from: startDate,
+ to: endDate,
success: {[weak self] in
guard let `self` = self else {
return
diff --git a/GMERemittance/Module/RewardModules/OrderHistory/Application Logic/Model/Order.swift b/GMERemittance/Module/RewardModules/OrderHistory/Application Logic/Model/Order.swift
index 00b1e966..03f4dddd 100644
--- a/GMERemittance/Module/RewardModules/OrderHistory/Application Logic/Model/Order.swift
+++ b/GMERemittance/Module/RewardModules/OrderHistory/Application Logic/Model/Order.swift
@@ -24,6 +24,8 @@ struct Order: Mappable {
var orderStatus: String?
var createdDate: String?
var modifiedDate: String?
+ var branchName: String?
+ var recvDate: String?
init?(map: Map) { }
@@ -42,6 +44,9 @@ struct Order: Mappable {
orderStatus <- map["orderStatus"]
createdDate <- map["createdDate"]
modifiedDate <- map["modifiedDate"]
+ recvDate <- map["recvDate"]
+ branchName <- map["branchName"]
+
}
}
diff --git a/GMERemittance/Module/RewardModules/OrderHistory/User Interface/View/OrderHistory.storyboard b/GMERemittance/Module/RewardModules/OrderHistory/User Interface/View/OrderHistory.storyboard
index 1adb5dab..9cf6b815 100644
--- a/GMERemittance/Module/RewardModules/OrderHistory/User Interface/View/OrderHistory.storyboard
+++ b/GMERemittance/Module/RewardModules/OrderHistory/User Interface/View/OrderHistory.storyboard
@@ -58,41 +58,66 @@
-
+
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
-
+
+
+
-
+
-
+
@@ -284,11 +309,11 @@
-
+
-
+
@@ -304,6 +329,7 @@
+
@@ -317,6 +343,7 @@
+
diff --git a/GMERemittance/Module/RewardModules/OrderHistory/User Interface/View/OrderHistoryViewController.swift b/GMERemittance/Module/RewardModules/OrderHistory/User Interface/View/OrderHistoryViewController.swift
index 8946fe26..47491d02 100644
--- a/GMERemittance/Module/RewardModules/OrderHistory/User Interface/View/OrderHistoryViewController.swift
+++ b/GMERemittance/Module/RewardModules/OrderHistory/User Interface/View/OrderHistoryViewController.swift
@@ -17,6 +17,8 @@ class OrderHistoryViewController: UIViewController {
private lazy var refreshControl = UIRefreshControl()
+ private lazy var isSearch = false
+
// MARK: Computed Properties
private var orders: [Order]? {
@@ -26,6 +28,7 @@ class OrderHistoryViewController: UIViewController {
orders.count != 0
else {
noOrderHistoryLabel.isHidden = false
+ noOrderHistoryLabel.text = isSearch ? "no_search_orders_message".localized() : "no_orders_message".localized()
tableView.reloadData()
return
}
@@ -40,6 +43,7 @@ class OrderHistoryViewController: UIViewController {
@IBOutlet private weak var tableView: UITableView!
@IBOutlet private weak var searchBar: UISearchBar!
@IBOutlet private weak var periodView: UIView!
+ @IBOutlet private weak var perioidContentView: UIView!
@IBOutlet private weak var noOrderHistoryLabel: UILabel!
@IBOutlet private weak var startDateLabel: UILabel!
@@ -63,6 +67,7 @@ class OrderHistoryViewController: UIViewController {
super.viewWillAppear(animated)
if searchBar.text == "" && startDateLabel.text == ""{
+ isSearch = false
presenter?.fetchOrders(from: "", to: "")
}
}
@@ -89,10 +94,15 @@ class OrderHistoryViewController: UIViewController {
self.setPeriodViewStatus(isHidden: false)
self.searchBar.text?.removeAll()
+ self.isSearch = true
+
self.presenter?.fetchOrders(from: startDate, to: endDate)
}
}
+ @IBAction func touchHidePerioidContentView(_ sender: Any) {
+ refresh()
+ }
}
// MARK: OrderHistoryViewInterface
@@ -135,6 +145,8 @@ extension OrderHistoryViewController {
orderedColorLabel.layer.cornerRadius = 5
receivedColorLabel.layer.cornerRadius = 5
canceledColorLabel.layer.cornerRadius = 5
+
+ perioidContentView.layer.cornerRadius = 10
}
private func setMultiLanguage(){
@@ -184,7 +196,7 @@ extension OrderHistoryViewController {
private func refresh() {
setPeriodViewStatus(isHidden: true)
searchBar.text?.removeAll()
-
+ isSearch = false
presenter?.fetchOrders(from: "", to: "")
}
@@ -232,6 +244,7 @@ extension OrderHistoryViewController: UITableViewDelegate {
// MARK: - UISearchBarDelegate
extension OrderHistoryViewController: UISearchBarDelegate {
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
+ isSearch = true
presenter?.fetchFilteredOrders(by: searchText)
}
diff --git a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Interactor/RedeemInteractor.swift b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Interactor/RedeemInteractor.swift
index c94aa377..3362c23f 100644
--- a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Interactor/RedeemInteractor.swift
+++ b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Interactor/RedeemInteractor.swift
@@ -9,53 +9,53 @@
import Foundation
class RedeemInteractor {
-
- // MARK: Properties
-
- weak var output: RedeemInteractorOutput?
- private let service: RedeemServiceType
-
- // MARK: Initialization
-
- init(service: RedeemServiceType) {
- self.service = service
- }
-
- // MARK: Converting entities
+
+ // MARK: Properties
+
+ weak var output: RedeemInteractorOutput?
+ private let service: RedeemServiceType
+
+ // MARK: Initialization
+
+ init(service: RedeemServiceType) {
+ self.service = service
+ }
+
+ // MARK: Converting entities
}
// MARK: Redeem interactor input interface
extension RedeemInteractor: RedeemInteractorInput {
- func fetchBranches() {
- self.service.fetchBranches(
- success: {
- self.output?.setBranches(with: $0)
- }){
- self.output?.setBranchesError(with: $0)
- }
- }
-
- func viewIsReady(model: RewardProduct?) {
- self.output?.result(model: model)
+ func fetchBranches() {
+ service.fetchBranches(
+ success: {
+ self.output?.setBranches(with: $0)
+ }){
+ self.output?.setBranchesError(with: $0)
}
-
- func submit(with model: Redeem?) {
- self.service.submit(
- with: model,
- success: {
- self.output?.submitSuccess()
- }) {
- self.output?.submitFailure(with: $0)
- }
+ }
+
+ func viewIsReady(model: RewardProduct?) {
+ self.output?.result(model: model)
+ }
+
+ func submit(with model: Redeem?) {
+ self.service.submit(
+ with: model,
+ success: {
+ self.output?.submitSuccess()
+ }) {
+ self.output?.submitFailure(with: $0)
}
-
- func refreshRewardPoint() {
- self.service.fetchUserInfo(success: {
- Utility.save(user: $0)
- self.output?.successRefreshRewardPoint()
- }){
- self.output?.failureRefreshRewardPoint(with: $0)
- }
+ }
+
+ func refreshRewardPoint() {
+ self.service.fetchUserInfo(success: {
+ Utility.save(user: $0)
+ self.output?.successRefreshRewardPoint()
+ }){
+ self.output?.failureRefreshRewardPoint(with: $0)
}
+ }
}
diff --git a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Interactor/RedeemInteractorIO.swift b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Interactor/RedeemInteractorIO.swift
index b95e3f5c..9cbab552 100644
--- a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Interactor/RedeemInteractorIO.swift
+++ b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Interactor/RedeemInteractorIO.swift
@@ -7,20 +7,20 @@
//
protocol RedeemInteractorInput: class {
- func viewIsReady(model: RewardProduct?)
- func fetchBranches()
- func submit(with model: Redeem?)
- func refreshRewardPoint()
+ func viewIsReady(model: RewardProduct?)
+ func fetchBranches()
+ func submit(with model: Redeem?)
+ func refreshRewardPoint()
}
protocol RedeemInteractorOutput: class {
- func result(model: RewardProduct?)
- func setBranches(with model: [Branch]?)
- func setBranchesError(with error: Error)
-
- func submitSuccess()
- func submitFailure(with error: Error)
-
- func successRefreshRewardPoint()
- func failureRefreshRewardPoint(with error: Error)
+ func result(model: RewardProduct?)
+ func setBranches(with model: [Branch]?)
+ func setBranchesError(with error: Error)
+
+ func submitSuccess()
+ func submitFailure(with error: Error)
+
+ func successRefreshRewardPoint()
+ func failureRefreshRewardPoint(with error: Error)
}
diff --git a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Model/Branch.swift b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Model/Branch.swift
index 46f386e6..0bf3d35d 100644
--- a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Model/Branch.swift
+++ b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Model/Branch.swift
@@ -10,17 +10,26 @@ import Foundation
import ObjectMapper
struct Branch: Mappable {
- var agentID: String?
- var agentName: String?
-
- init?(map: Map) {
-
- }
-
- mutating func mapping(map: Map) {
- self.agentID <- map["agentId"]
- self.agentName <- map["agentName"]
- }
-
+ var agentID: String?
+ var agentName: String?
+ var agentPhone1: String?
+ var agentAddress: String?
+ var agentZip: String?
+ var agentState: String?
+ var agentCity: String?
+ init?(map: Map) {
+ }
+
+ mutating func mapping(map: Map) {
+ agentID <- map["agentId"]
+ agentName <- map["agentName"]
+ agentPhone1 <- map["agentPhone1"]
+ agentAddress <- map["agentAddress"]
+ agentZip <- map["agentZip"]
+ agentState <- map["agentState"]
+ agentCity <- map["agentCity"]
+ }
+
+
}
diff --git a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Model/BranchContainer.swift b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Model/BranchContainer.swift
index d30197a8..9b460d81 100644
--- a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Model/BranchContainer.swift
+++ b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Model/BranchContainer.swift
@@ -10,23 +10,23 @@ import Foundation
import ObjectMapper
struct BranchContainer: Mappable {
- var errorCode: String?
- var message: String?
- var id: String?
- var extra: String?
- var extra2: String?
- var data: [Branch]?
+ var errorCode: String?
+ var message: String?
+ var id: String?
+ var extra: String?
+ var extra2: String?
+ var data: [Branch]?
+
+ init?(map: Map) {
- init?(map: Map) {
-
- }
-
- mutating func mapping(map: Map) {
- self.errorCode <- map["ErrorCode"]
- self.message <- map["Msg"]
- self.id <- map["Id"]
- self.extra <- map["Extra"]
- self.extra2 <- map["Extra2"]
- self.data <- map["Data"]
- }
+ }
+
+ mutating func mapping(map: Map) {
+ errorCode <- map["ErrorCode"]
+ message <- map["Msg"]
+ id <- map["Id"]
+ extra <- map["Extra"]
+ extra2 <- map["Extra2"]
+ data <- map["Data"]
+ }
}
diff --git a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Model/Redeem.swift b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Model/Redeem.swift
index 523c3a29..f4dc3f86 100644
--- a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Model/Redeem.swift
+++ b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Model/Redeem.swift
@@ -9,14 +9,14 @@
import Foundation
struct Redeem {
- let userID: String?
- let productCode: String?
- let usePoint: String?
- let orderType: String?
- let recvType: String?
- let branchCode: String?
- let recvAddress: String?
- let recvZipCode: String?
- let recvPhoneNumber: String?
- let recvName: String?
+ let userID: String?
+ let productCode: String?
+ let usePoint: String?
+ let orderType: String?
+ let recvType: String?
+ let branchCode: String?
+ let recvAddress: String?
+ let recvZipCode: String?
+ let recvPhoneNumber: String?
+ let recvName: String?
}
diff --git a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Service/RedeemService.swift b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Service/RedeemService.swift
index 0d0bfd9d..560705eb 100644
--- a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Service/RedeemService.swift
+++ b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Service/RedeemService.swift
@@ -10,98 +10,98 @@ import Foundation
import FirebaseInstanceID
class RedeemService: RedeemServiceType {
+
+ // MARK: Properties
+
+ // MARK: Initialization
+
+ // MARK: Data management
+
+ func fetchBranches(
+ success: @escaping ([Branch]?) -> Void,
+ failure: @escaping (Error) -> Void
+ ) {
- // MARK: Properties
-
- // MARK: Initialization
-
- // MARK: Data management
+ let url = baseUrlWithoutVersion + "/v2/reward/branchInfo"
+ // let url = "http://gmeuat.gmeremit.com:5018/api/v2/reward/branchInfo"
- func fetchBranches(
- success: @escaping ([Branch]?) -> Void,
- failure: @escaping (Error) -> Void
- ) {
-
- let url = baseUrlWithoutVersion + "/v2/reward/branchInfo"
-// let url = "http://gmeuat.gmeremit.com:5018/api/v2/reward/branchInfo"
-
- auth.request(
- method: .post,
- url: url,
- params: nil,
- success: { (response: BranchContainer) in
- if (response.errorCode ?? "") == "1" {
- let error = NSError.init(
- domain: "Network",
- code: 0,
- userInfo: [NSLocalizedDescriptionKey : response.message ?? ""]
- )
-
- failure(error)
- }else {
- success(response.data)
- }
- }) { (error) in
- failure(error)
+ auth.request(
+ method: .post,
+ url: url,
+ params: nil,
+ success: { (response: BranchContainer) in
+ if (response.errorCode ?? "") == "1" {
+ let error = NSError.init(
+ domain: "Network",
+ code: 0,
+ userInfo: [NSLocalizedDescriptionKey : response.message ?? ""]
+ )
+
+ failure(error)
+ }else {
+ success(response.data)
}
+ }) { (error) in
+ failure(error)
}
-
- func submit(
- with model: Redeem?,
- success: @escaping () -> Void,
- failure: @escaping (Error) -> Void
+ }
+
+ func submit(
+ with model: Redeem?,
+ success: @escaping () -> Void,
+ failure: @escaping (Error) -> Void
) {
-// let url = baseUrl + "/reward/productBuy"
- let url = baseUrlWithoutVersion + "/v2/reward/productBuy"
-// let url = "http://gmeuat.gmeremit.com:5018/api/v2/reward/productBuy"
-
- let params: [String: String] = [
- "userId": model?.userID ?? "",
- "productCode": model?.productCode ?? "",
- "usePoint": model?.usePoint ?? "",
- "orderType": model?.orderType ?? "",
- "recvType": model?.recvType ?? "",
- "branchCode": model?.branchCode ?? "",
- "recvAddress": model?.recvAddress ?? "",
- "recvZipCode": model?.recvZipCode ?? "",
- "recvPhoneNumber": model?.recvPhoneNumber ?? "",
- "recvName": model?.recvName ?? "",
- ]
-
- auth.request(
- method: .post,
- url: url,
- params: params,
- success: { (response: ResponseMessage) in
- if (response.errorCode ?? "") == "1" {
- let error = NSError.init(
- domain: "Network",
- code: 0,
- userInfo: [NSLocalizedDescriptionKey : response.message ?? ""]
- )
-
- failure(error)
- }else {
- success()
- }
- }) { (error) in
- failure(error)
+ // let url = baseUrl + "/reward/productBuy"
+ let url = baseUrlWithoutVersion + "/v2/reward/productBuy"
+ // let url = "http://gmeuat.gmeremit.com:5018/api/v2/reward/productBuy"
+
+ let params: [String: String] = [
+ "userId": model?.userID ?? "",
+ "productCode": model?.productCode ?? "",
+ "usePoint": model?.usePoint ?? "",
+ "orderType": model?.orderType ?? "",
+ "recvType": model?.recvType ?? "",
+ "branchCode": model?.branchCode ?? "",
+ "recvAddress": model?.recvAddress ?? "",
+ "recvZipCode": model?.recvZipCode ?? "",
+ "recvPhoneNumber": model?.recvPhoneNumber ?? "",
+ "recvName": model?.recvName ?? "",
+ ]
+
+ auth.request(
+ method: .post,
+ url: url,
+ params: params,
+ success: { (response: ResponseMessage) in
+ if (response.errorCode ?? "") == "1" {
+ let error = NSError.init(
+ domain: "Network",
+ code: 0,
+ userInfo: [NSLocalizedDescriptionKey : response.message ?? ""]
+ )
+
+ failure(error)
+ }else {
+ success()
}
+ }) { (error) in
+ failure(error)
}
+ }
+
+ func fetchUserInfo(success: @escaping (User) -> (), failure: @escaping (Error) -> ()) {
+ let service = HomeService()
- func fetchUserInfo(success: @escaping (User) -> (), failure: @escaping (Error) -> ()) {
- let service = HomeService()
-
- let param = [
- "userId" : Utility.getMyUserName(),
- "uuid": Utility.getUUid() ?? "",
- "appVersion": Utility.getAppVersion() ?? "",
- "phoneBrand": Utility.getPhoneBrand(),
- "phoneOs": Utility.getPhoneOs(),
- "fcmId": InstanceID.instanceID().token() ?? "",
- "osVersion": Utility.getOsVersion()
- ]
-
- service.fetchUserInfo(param: param, success: success, failure: failure)
- }
+ let param = [
+ "userId" : Utility.getMyUserName(),
+ "uuid": Utility.getUUid() ?? "",
+ "appVersion": Utility.getAppVersion() ?? "",
+ "phoneBrand": Utility.getPhoneBrand(),
+ "phoneOs": Utility.getPhoneOs(),
+ "fcmId": InstanceID.instanceID().token() ?? "",
+ "osVersion": Utility.getOsVersion()
+ ]
+
+ service.fetchUserInfo(param: param, success: success, failure: failure)
+ }
}
diff --git a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Service/RedeemServiceType.swift b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Service/RedeemServiceType.swift
index c86cd6da..3f4a2e9b 100644
--- a/GMERemittance/Module/RewardModules/Redeem/Application Logic/Service/RedeemServiceType.swift
+++ b/GMERemittance/Module/RewardModules/Redeem/Application Logic/Service/RedeemServiceType.swift
@@ -9,18 +9,18 @@
import Foundation
protocol RedeemServiceType: class, ApiServiceType {
- func fetchBranches(
- success: @escaping ([Branch]?) -> Void,
- failure: @escaping (Error) -> Void
- )
-
- func submit(
- with model: Redeem?,
- success: @escaping () -> Void,
- failure: @escaping (Error) -> Void
- )
-
- func fetchUserInfo(
- success: @escaping (User) -> (),
- failure: @escaping (Error) -> ())
+ func fetchBranches(
+ success: @escaping ([Branch]?) -> Void,
+ failure: @escaping (Error) -> Void
+ )
+
+ func submit(
+ with model: Redeem?,
+ success: @escaping () -> Void,
+ failure: @escaping (Error) -> Void
+ )
+
+ func fetchUserInfo(
+ success: @escaping (User) -> (),
+ failure: @escaping (Error) -> ())
}
diff --git a/GMERemittance/Module/RewardModules/Redeem/Module Interface/RedeemModuleInterface.swift b/GMERemittance/Module/RewardModules/Redeem/Module Interface/RedeemModuleInterface.swift
index 4b6bba4e..c8b04c68 100644
--- a/GMERemittance/Module/RewardModules/Redeem/Module Interface/RedeemModuleInterface.swift
+++ b/GMERemittance/Module/RewardModules/Redeem/Module Interface/RedeemModuleInterface.swift
@@ -7,12 +7,12 @@
//
protocol RedeemModuleInterface: class {
- func viewIsReady()
- func showSearchAddressVC()
- func fetchBranches()
- func showBranchesVC()
- func submit(with model: Redeem?)
- func goRewardHome()
-
- func refreshRewardPoint()
+ func viewIsReady()
+ func showSearchAddressVC()
+ func fetchBranches()
+ func showBranchesVC()
+ func submit(with model: Redeem?)
+ func goRewardHome()
+
+ func refreshRewardPoint()
}
diff --git a/GMERemittance/Module/RewardModules/Redeem/User Interface/Presenter/RedeemPresenter.swift b/GMERemittance/Module/RewardModules/Redeem/User Interface/Presenter/RedeemPresenter.swift
index 69d89975..6dd87c16 100644
--- a/GMERemittance/Module/RewardModules/Redeem/User Interface/Presenter/RedeemPresenter.swift
+++ b/GMERemittance/Module/RewardModules/Redeem/User Interface/Presenter/RedeemPresenter.swift
@@ -9,94 +9,94 @@
import Foundation
class RedeemPresenter {
-
- // MARK: Properties
-
- weak var view: RedeemViewInterface?
- var interactor: RedeemInteractorInput?
- var wireframe: RedeemWireframeInput?
-
- private var model: RewardProduct?
-
- init(with model: RewardProduct?){
- self.model = model
- }
-
- // MARK: Converting entities
-
+
+ // MARK: Properties
+
+ weak var view: RedeemViewInterface?
+ var interactor: RedeemInteractorInput?
+ var wireframe: RedeemWireframeInput?
+
+ private var model: RewardProduct?
+
+ init(with model: RewardProduct?){
+ self.model = model
+ }
+
+ // MARK: Converting entities
+
}
// MARK: Redeem module interface
extension RedeemPresenter: RedeemModuleInterface {
- func viewIsReady() {
- self.view?.startLoading()
- self.interactor?.viewIsReady(model: self.model)
- }
-
- func showSearchAddressVC() {
- self.wireframe?.showSearchAddressVC()
- }
-
- func fetchBranches() {
- self.view?.startLoading()
- self.interactor?.fetchBranches()
- }
-
- func showBranchesVC() {
- self.wireframe?.showBranchesVC()
- }
-
- func submit(with model: Redeem?) {
- self.view?.startLoading()
- self.interactor?.submit(with: model)
- }
-
- func goRewardHome() {
- self.wireframe?.goRewardVC()
- }
-
- func refreshRewardPoint() {
- self.view?.startLoading()
- self.interactor?.refreshRewardPoint()
- }
+ func viewIsReady() {
+ view?.startLoading()
+ interactor?.viewIsReady(model: model)
+ }
+
+ func showSearchAddressVC() {
+ wireframe?.showSearchAddressVC()
+ }
+
+ func fetchBranches() {
+ view?.startLoading()
+ interactor?.fetchBranches()
+ }
+
+ func showBranchesVC(){
+ wireframe?.showBranchesVC()
+ }
+
+ func submit(with model: Redeem?) {
+ view?.startLoading()
+ interactor?.submit(with: model)
+ }
+
+ func goRewardHome() {
+ wireframe?.goRewardVC()
+ }
+
+ func refreshRewardPoint() {
+ view?.startLoading()
+ interactor?.refreshRewardPoint()
+ }
}
// MARK: Redeem interactor output interface
extension RedeemPresenter: RedeemInteractorOutput {
- func successRefreshRewardPoint() {
- self.view?.endLoading()
- self.view?.successRefreshRewardPoint()
- }
-
- func failureRefreshRewardPoint(with error: Error) {
- self.view?.endLoading()
- self.view?.failureRefreshRewardPoint(with: error)
- }
-
- func result(model: RewardProduct?) {
- self.view?.endLoading()
- self.view?.setModel(model: model)
- }
-
- func setBranches(with model: [Branch]?) {
- self.view?.endLoading()
- self.view?.setBranches(with: model)
- }
-
- func setBranchesError(with error: Error) {
- self.view?.endLoading()
- self.view?.setBranchesError(with: error)
- }
-
- func submitSuccess() {
- self.view?.endLoading()
- self.view?.submitSuccess()
- }
-
- func submitFailure(with error: Error) {
- self.view?.endLoading()
- self.view?.submitFailure(with: error)
- }
+ func successRefreshRewardPoint() {
+ view?.endLoading()
+ view?.successRefreshRewardPoint()
+ }
+
+ func failureRefreshRewardPoint(with error: Error) {
+ view?.endLoading()
+ view?.failureRefreshRewardPoint(with: error)
+ }
+
+ func result(model: RewardProduct?) {
+ view?.endLoading()
+ view?.setModel(model: model)
+ }
+
+ func setBranches(with model: [Branch]?) {
+ view?.endLoading()
+ view?.setBranches(with: model)
+ }
+
+ func setBranchesError(with error: Error) {
+ view?.endLoading()
+ view?.setBranchesError(with: error)
+ }
+
+ func submitSuccess() {
+ view?.endLoading()
+ view?.submitSuccess()
+ }
+
+ func submitFailure(with error: Error) {
+ view?.endLoading()
+ view?.submitFailure(with: error)
+ }
}
diff --git a/GMERemittance/Module/RewardModules/Redeem/User Interface/View/Redeem.storyboard b/GMERemittance/Module/RewardModules/Redeem/User Interface/View/Redeem.storyboard
index 3b900ffa..1f96cb93 100644
--- a/GMERemittance/Module/RewardModules/Redeem/User Interface/View/Redeem.storyboard
+++ b/GMERemittance/Module/RewardModules/Redeem/User Interface/View/Redeem.storyboard
@@ -407,6 +407,7 @@
+
@@ -414,7 +415,6 @@
-
diff --git a/GMERemittance/Module/RewardModules/Redeem/User Interface/View/RedeemViewController.swift b/GMERemittance/Module/RewardModules/Redeem/User Interface/View/RedeemViewController.swift
index 8918c349..e2c8d5c3 100644
--- a/GMERemittance/Module/RewardModules/Redeem/User Interface/View/RedeemViewController.swift
+++ b/GMERemittance/Module/RewardModules/Redeem/User Interface/View/RedeemViewController.swift
@@ -17,18 +17,12 @@ class RedeemViewController: UIViewController {
private var model: RewardProduct? {
didSet {
//TODO: 서버 이미지 처리 완료시 수정
-// guard
-// let newModel = model,
-// let imageData = newModel.imageData,
-// let data = Data(base64Encoded: imageData) else { return }
-// selectedItemImageView.image = UIImage(data: data)
-
- guard
- let newModel = model
- else { return }
-
- selectedItemNameLabel.text = newModel.productName
- selectedItemPriceLabel.text = newModel.pointPrice
+ if let imageData = model?.productImgPath,
+ let data = Data(base64Encoded: imageData) {
+ selectedItemImageView.image = UIImage(data: data)
+ }
+ selectedItemNameLabel.text = model?.productName
+ selectedItemPriceLabel.text = model?.pointPrice
}
}
@@ -79,7 +73,7 @@ class RedeemViewController: UIViewController {
self.userInfoView.alpha = 1
self.selectAddressInfoLabel.alpha = 1
self.addressSegmentView.alpha = 1
- }, completion: nil)
+ }, completion: nil)
}
}
@@ -97,7 +91,7 @@ class RedeemViewController: UIViewController {
self.branchesView.alpha = 1
self.addressView.alpha = 0
- }, completion: nil)
+ }, completion: nil)
case .custom:
selectedBranch = nil
@@ -109,7 +103,7 @@ class RedeemViewController: UIViewController {
self.branchesView.alpha = 0
self.addressView.alpha = 1
- }, completion: nil)
+ }, completion: nil)
}
submitButton.isHidden = false
@@ -168,7 +162,7 @@ class RedeemViewController: UIViewController {
@IBOutlet private weak var scrollView: UIScrollView!
@IBOutlet weak var closeBarButton: UIBarButtonItem!
- @IBOutlet weak var selectedProductTitleLabel: UILabel!
+ @IBOutlet weak var redeemTitleLabel: UILabel!
@IBOutlet weak var pointsWillBeDeductedLabel: UILabel!
@IBOutlet weak var fromTourRewardPointLabel: UILabel!
@IBOutlet weak var receiverTitleLabel: UILabel!
@@ -246,7 +240,7 @@ class RedeemViewController: UIViewController {
setCoverView()
setButton()
setSegmentedControl()
-// self.setDefaultState()
+ // self.setDefaultState()
setOnlyBranchMode()
setMultiLanguage()
@@ -403,7 +397,7 @@ extension RedeemViewController {
}
private func setMultiLanguage(){
- selectedProductTitleLabel.text = "selected_product".localized()
+ redeemTitleLabel.text = "redeem".localized()
pointsWillBeDeductedLabel.text = "points_deducted".localized()
fromTourRewardPointLabel.text = "from_your_reward_point".localized()
@@ -471,7 +465,7 @@ extension RedeemViewController: ConfirmViewControllerDelegate {
ordered = Redeem(
userID: UserDefaults.standard.string(forKey: UserKeys.email),
- productCode: model?.productNumber,
+ productCode: model?.productCode,
usePoint: model?.pointPrice,
orderType: "1",
recvType: recvType,
diff --git a/GMERemittance/Module/RewardModules/Redeem/User Interface/View/RedeemViewInterface.swift b/GMERemittance/Module/RewardModules/Redeem/User Interface/View/RedeemViewInterface.swift
index 69dbe74f..165c6f96 100644
--- a/GMERemittance/Module/RewardModules/Redeem/User Interface/View/RedeemViewInterface.swift
+++ b/GMERemittance/Module/RewardModules/Redeem/User Interface/View/RedeemViewInterface.swift
@@ -7,16 +7,16 @@
//
protocol RedeemViewInterface: class {
- func setModel(model: RewardProduct?)
- func setBranches(with model: [Branch]?)
- func setBranchesError(with error: Error)
-
- func submitSuccess()
- func submitFailure(with error: Error)
-
- func startLoading()
- func endLoading()
-
- func failureRefreshRewardPoint(with error: Error)
- func successRefreshRewardPoint()
+ func setModel(model: RewardProduct?)
+ func setBranches(with model: [Branch]?)
+ func setBranchesError(with error: Error)
+
+ func submitSuccess()
+ func submitFailure(with error: Error)
+
+ func startLoading()
+ func endLoading()
+
+ func failureRefreshRewardPoint(with error: Error)
+ func successRefreshRewardPoint()
}
diff --git a/GMERemittance/Module/RewardModules/Redeem/User Interface/Wireframe/RedeemWireframe.swift b/GMERemittance/Module/RewardModules/Redeem/User Interface/Wireframe/RedeemWireframe.swift
index 8adc78e8..7bab9045 100644
--- a/GMERemittance/Module/RewardModules/Redeem/User Interface/Wireframe/RedeemWireframe.swift
+++ b/GMERemittance/Module/RewardModules/Redeem/User Interface/Wireframe/RedeemWireframe.swift
@@ -9,56 +9,56 @@
import UIKit
class RedeemWireframe {
- weak var view: UIViewController!
- private var model: RewardProduct?
+ weak var view: UIViewController!
+ private var model: RewardProduct?
}
extension RedeemWireframe: RedeemWireframeInput {
+
+ var storyboardName: String {return "Redeem"}
+
+ func getMainView() -> UIViewController {
+ let service = RedeemService()
+ let interactor = RedeemInteractor(service: service)
+ let presenter = RedeemPresenter(with: self.model)
+ let viewController = viewControllerFromStoryboard(of: RedeemViewController.self)
- var storyboardName: String {return "Redeem"}
+ viewController.presenter = presenter
+ interactor.output = presenter
+ presenter.interactor = interactor
+ presenter.wireframe = self
+ presenter.view = viewController
- func getMainView() -> UIViewController {
- let service = RedeemService()
- let interactor = RedeemInteractor(service: service)
- let presenter = RedeemPresenter(with: self.model)
- let viewController = viewControllerFromStoryboard(of: RedeemViewController.self)
-
- viewController.presenter = presenter
- interactor.output = presenter
- presenter.interactor = interactor
- presenter.wireframe = self
- presenter.view = viewController
-
- self.view = viewController
- return viewController
- }
+ view = viewController
+ return viewController
+ }
+
+ func pushMainViewWithModel(with model: RewardProduct?, in source: UINavigationController) {
+ self.model = model
+ pushMainView(in: source)
+ }
+
+ func showSearchAddressVC(){
+ let wireframe = SearchAddressWireframe()
+ guard let delegate = view as? SearchAddressDelegate else {return}
- func pushMainViewWithModel(with model: RewardProduct?, in source: UINavigationController) {
- self.model = model
- self.pushMainView(in: source)
- }
- func showSearchAddressVC(){
- let wireframe = SearchAddressWireframe()
- guard let delegate = self.view as? SearchAddressDelegate else {return}
-
-
- wireframe.openViewControllerWithNavigationWithDelegate(
- delegate: delegate,
- viewController: wireframe.getMainView(),
- source: self.view
- )
- }
-
- func showBranchesVC() {
- let wireframe = GmeContactsWireframe()
- let vc = wireframe.getMainView()
-
- wireframe.openViewControllerWithNavigation(viewController: vc, source: self.view)
- }
-
- func goRewardVC() {
- self.view.navigationController?.popToRootViewController(animated: true)
- }
+ wireframe.openViewControllerWithNavigationWithDelegate(
+ delegate: delegate,
+ viewController: wireframe.getMainView(),
+ source: view
+ )
+ }
+
+ func showBranchesVC(){
+ let wireframe = GmeContactsWireframe()
+ let vc = wireframe.getMainView()
+ wireframe.openViewControllerWithNavigation(viewController: vc, source: view)
+ }
+
+ func goRewardVC() {
+ view.navigationController?.popToRootViewController(animated: true)
+ }
+
}
diff --git a/GMERemittance/Module/RewardModules/Redeem/User Interface/Wireframe/RedeemWireframeInput.swift b/GMERemittance/Module/RewardModules/Redeem/User Interface/Wireframe/RedeemWireframeInput.swift
index 54832977..50eda015 100644
--- a/GMERemittance/Module/RewardModules/Redeem/User Interface/Wireframe/RedeemWireframeInput.swift
+++ b/GMERemittance/Module/RewardModules/Redeem/User Interface/Wireframe/RedeemWireframeInput.swift
@@ -9,8 +9,8 @@
import Foundation
protocol RedeemWireframeInput: WireframeInput {
- func pushMainViewWithModel(with model: RewardProduct?, in source: UINavigationController)
- func showSearchAddressVC()
- func showBranchesVC()
- func goRewardVC()
+ func pushMainViewWithModel(with model: RewardProduct?, in source: UINavigationController)
+ func showSearchAddressVC()
+ func showBranchesVC()
+ func goRewardVC()
}
diff --git a/GMERemittance/Module/RewardModules/Reward/Application Logic/Interactor/RewardInteractor.swift b/GMERemittance/Module/RewardModules/Reward/Application Logic/Interactor/RewardInteractor.swift
index 480fff3b..61beefae 100644
--- a/GMERemittance/Module/RewardModules/Reward/Application Logic/Interactor/RewardInteractor.swift
+++ b/GMERemittance/Module/RewardModules/Reward/Application Logic/Interactor/RewardInteractor.swift
@@ -9,30 +9,30 @@
import Foundation
class RewardInteractor {
-
- // MARK: Properties
-
- weak var output: RewardInteractorOutput?
- private let service: RewardServiceType
-
- // MARK: Initialization
-
- init(service: RewardServiceType) {
- self.service = service
- }
-
- // MARK: Converting entities
+
+ // MARK: Properties
+
+ weak var output: RewardInteractorOutput?
+ private let service: RewardServiceType
+
+ // MARK: Initialization
+
+ init(service: RewardServiceType) {
+ self.service = service
+ }
+
+ // MARK: Converting entities
}
// MARK: Reward interactor input interface
extension RewardInteractor: RewardInteractorInput {
- func viewIsReady() {
- service.fetchProductList(
- success: {
- self.output?.setRewardProducts(models: $0)
- }) {
- self.output?.failure(error: $0)
- }
+ func viewIsReady() {
+ service.fetchProductList(
+ success: {
+ self.output?.setRewardProducts(models: $0)
+ }) {
+ self.output?.failure(error: $0)
}
+ }
}
diff --git a/GMERemittance/Module/RewardModules/Reward/Application Logic/Interactor/RewardInteractorIO.swift b/GMERemittance/Module/RewardModules/Reward/Application Logic/Interactor/RewardInteractorIO.swift
index 97cd02ee..da291bb2 100644
--- a/GMERemittance/Module/RewardModules/Reward/Application Logic/Interactor/RewardInteractorIO.swift
+++ b/GMERemittance/Module/RewardModules/Reward/Application Logic/Interactor/RewardInteractorIO.swift
@@ -7,10 +7,10 @@
//
protocol RewardInteractorInput: class {
- func viewIsReady()
+ func viewIsReady()
}
protocol RewardInteractorOutput: class {
- func setRewardProducts(models: [RewardProduct]?)
- func failure(error: Error)
+ func setRewardProducts(models: [RewardProduct]?)
+ func failure(error: Error)
}
diff --git a/GMERemittance/Module/RewardModules/Reward/Application Logic/Model/RewardProduct.swift b/GMERemittance/Module/RewardModules/Reward/Application Logic/Model/RewardProduct.swift
index 0cd07974..4cc98523 100644
--- a/GMERemittance/Module/RewardModules/Reward/Application Logic/Model/RewardProduct.swift
+++ b/GMERemittance/Module/RewardModules/Reward/Application Logic/Model/RewardProduct.swift
@@ -10,20 +10,20 @@ import Foundation
import ObjectMapper
struct RewardProduct: Mappable {
- var productNumber: String? //productNumber
- var productName: String? //productName,
- var pointPrice: String? //pointPrice
- var deliveryYN: String? //deliveryYN
- var imageData: String? //imageData
- init?(map: Map) {
-
- }
+ var productCode: String? //productNumber
+ var productName: String? //productName,
+ var pointPrice: String? //pointPrice
+ var deliverYN: String? //deliveryYN
+ var productImgPath: String? //imageData
+ init?(map: Map) {
- mutating func mapping(map: Map) {
- self.productNumber <- map["productNumber"]
- self.productName <- map["productName"]
- self.pointPrice <- map["pointPrice"]
- self.deliveryYN <- map["deliveryYN"]
- self.imageData <- map["imageData"]
- }
+ }
+
+ mutating func mapping(map: Map) {
+ productCode <- map["productCode"]
+ productName <- map["productName"]
+ pointPrice <- map["pointPrice"]
+ deliverYN <- map["deliverYN"]
+ productImgPath <- map["productImgPath"]
+ }
}
diff --git a/GMERemittance/Module/RewardModules/Reward/Application Logic/Model/RewardProductContainer.swift b/GMERemittance/Module/RewardModules/Reward/Application Logic/Model/RewardProductContainer.swift
index e47d6933..1b8a497f 100644
--- a/GMERemittance/Module/RewardModules/Reward/Application Logic/Model/RewardProductContainer.swift
+++ b/GMERemittance/Module/RewardModules/Reward/Application Logic/Model/RewardProductContainer.swift
@@ -10,24 +10,24 @@ import Foundation
import ObjectMapper
struct RewardProductContainer: Mappable {
- var errorCode: String? //ErrorCode
- var msg: String? //Msg
- var id: String? //Id
- var extra: String? //Extra
- var extra2: String? //Extra2
- var data: [RewardProduct]? // Data
-
- init?(map: Map) {
-
- }
-
- mutating func mapping(map: Map) {
- errorCode <- map["ErrorCode"]
- msg <- map["Msg"]
- id <- map["Id"]
- extra <- map["Extra"]
- extra2 <- map["Extra2"]
- data <- map["Data"]
- }
+ var errorCode: String? //ErrorCode
+ var msg: String? //Msg
+ var id: String? //Id
+ var extra: String? //Extra
+ var extra2: String? //Extra2
+ var data: [RewardProduct]? // Data
+
+ init?(map: Map) {
+ }
+
+ mutating func mapping(map: Map) {
+ errorCode <- map["ErrorCode"]
+ msg <- map["Msg"]
+ id <- map["Id"]
+ extra <- map["Extra"]
+ extra2 <- map["Extra2"]
+ data <- map["Data"]
+ }
+
}
diff --git a/GMERemittance/Module/RewardModules/Reward/Application Logic/Service/RewardService.swift b/GMERemittance/Module/RewardModules/Reward/Application Logic/Service/RewardService.swift
index cd05d07d..1fc49b1f 100644
--- a/GMERemittance/Module/RewardModules/Reward/Application Logic/Service/RewardService.swift
+++ b/GMERemittance/Module/RewardModules/Reward/Application Logic/Service/RewardService.swift
@@ -9,32 +9,32 @@
import Foundation
class RewardService: RewardServiceType {
-
- // MARK: Properties
-
- // MARK: Initialization
-
- // MARK: Data management
-
- // /api/v2/reward/productList
- func fetchProductList(
- success: @escaping ([RewardProduct]?) -> (),
- failure: @escaping (Error) -> ()
+
+ // MARK: Properties
+
+ // MARK: Initialization
+
+ // MARK: Data management
+
+ // /api/v2/reward/productList
+ func fetchProductList(
+ success: @escaping ([RewardProduct]?) -> (),
+ failure: @escaping (Error) -> ()
) {
-// let url = baseUrl + "/reward/productList"
-// let url = "http://gmeuat.gmeremit.com:5018/api/v2/reward/productList"
- let url = baseUrlWithoutVersion + "/v2/reward/productList"
-
- auth.request(method: .post, url: url, params: nil, success: { (response: RewardProductContainer) in
- if (response.errorCode ?? "") == "1" {
- let error = NSError.init(domain: "Network", code: 0, userInfo: [NSLocalizedDescriptionKey : response.msg ?? ""])
- failure(error)
- }else {
- let model = response.data
- success(model)
- }
- }) { (error) in
- failure(error)
- }
+ // let url = baseUrl + "/reward/productList"
+ // let url = "http://gmeuat.gmeremit.com:5018/api/v2/reward/productList"
+ let url = baseUrlWithoutVersion + "/v2/reward/productList"
+
+ auth.request(method: .post, url: url, params: nil, success: { (response: RewardProductContainer) in
+ if (response.errorCode ?? "") == "1" {
+ let error = NSError.init(domain: "Network", code: 0, userInfo: [NSLocalizedDescriptionKey : response.msg ?? ""])
+ failure(error)
+ }else {
+ let model = response.data
+ success(model)
+ }
+ }) { (error) in
+ failure(error)
}
+ }
}
diff --git a/GMERemittance/Module/RewardModules/Reward/Application Logic/Service/RewardServiceType.swift b/GMERemittance/Module/RewardModules/Reward/Application Logic/Service/RewardServiceType.swift
index 076921ae..f74dc868 100644
--- a/GMERemittance/Module/RewardModules/Reward/Application Logic/Service/RewardServiceType.swift
+++ b/GMERemittance/Module/RewardModules/Reward/Application Logic/Service/RewardServiceType.swift
@@ -9,10 +9,10 @@
import Foundation
protocol RewardServiceType: class, ApiServiceType {
- func fetchProductList(
- success: @escaping ([RewardProduct]?) -> (),
- failure: @escaping (Error) -> ()
- )
-
-
+ func fetchProductList(
+ success: @escaping ([RewardProduct]?) -> (),
+ failure: @escaping (Error) -> ()
+ )
+
+
}
diff --git a/GMERemittance/Module/RewardModules/Reward/Module Interface/RewardModuleInterface.swift b/GMERemittance/Module/RewardModules/Reward/Module Interface/RewardModuleInterface.swift
index a6790760..76b94419 100644
--- a/GMERemittance/Module/RewardModules/Reward/Module Interface/RewardModuleInterface.swift
+++ b/GMERemittance/Module/RewardModules/Reward/Module Interface/RewardModuleInterface.swift
@@ -7,6 +7,6 @@
//
protocol RewardModuleInterface: class {
- func viewIsReady()
- func goRedeemViewController(with model: RewardProduct?)
+ func viewIsReady()
+ func goRedeemViewController(with model: RewardProduct?)
}
diff --git a/GMERemittance/Module/RewardModules/Reward/User Interface/Presenter/RewardPresenter.swift b/GMERemittance/Module/RewardModules/Reward/User Interface/Presenter/RewardPresenter.swift
index 96ce4ac5..c88d774b 100644
--- a/GMERemittance/Module/RewardModules/Reward/User Interface/Presenter/RewardPresenter.swift
+++ b/GMERemittance/Module/RewardModules/Reward/User Interface/Presenter/RewardPresenter.swift
@@ -9,39 +9,39 @@
import Foundation
class RewardPresenter {
-
- // MARK: Properties
-
- weak var view: RewardViewInterface?
- var interactor: RewardInteractorInput?
- var wireframe: RewardWireframeInput?
-
- // MARK: Converting entities
+
+ // MARK: Properties
+
+ weak var view: RewardViewInterface?
+ var interactor: RewardInteractorInput?
+ var wireframe: RewardWireframeInput?
+
+ // MARK: Converting entities
}
// MARK: Reward module interface
extension RewardPresenter: RewardModuleInterface {
- func viewIsReady() {
- self.view?.startLoading()
- self.interactor?.viewIsReady()
- }
-
- func goRedeemViewController(with model: RewardProduct?) {
- self.wireframe?.goRedeemViewController(with: model)
- }
+ func viewIsReady() {
+ view?.startLoading()
+ interactor?.viewIsReady()
+ }
+
+ func goRedeemViewController(with model: RewardProduct?) {
+ wireframe?.goRedeemViewController(with: model)
+ }
}
// MARK: Reward interactor output interface
extension RewardPresenter: RewardInteractorOutput {
- func setRewardProducts(models: [RewardProduct]?) {
- self.view?.endLoading()
- self.view?.setRewardProducts(models: models)
- }
-
- func failure(error: Error) {
- self.view?.endLoading()
- self.view?.failure(error: error)
- }
+ func setRewardProducts(models: [RewardProduct]?) {
+ view?.endLoading()
+ view?.setRewardProducts(models: models)
+ }
+
+ func failure(error: Error) {
+ view?.endLoading()
+ view?.failure(error: error)
+ }
}
diff --git a/GMERemittance/Module/RewardModules/Reward/User Interface/View/Cell/RewardItemCollectionViewCell.swift b/GMERemittance/Module/RewardModules/Reward/User Interface/View/Cell/RewardItemCollectionViewCell.swift
index b3b074f6..e87060c5 100644
--- a/GMERemittance/Module/RewardModules/Reward/User Interface/View/Cell/RewardItemCollectionViewCell.swift
+++ b/GMERemittance/Module/RewardModules/Reward/User Interface/View/Cell/RewardItemCollectionViewCell.swift
@@ -21,22 +21,15 @@ class RewardItemCollectionViewCell: UICollectionViewCell {
var delegate: RewardViewInterface?
func setModel(with model: RewardProduct?, delegate: RewardViewInterface?){
- // TODO: 서버 이미지 처리 완료시 수정
- // guard
- // let product = model,
- // let imageData = model?.imageData,
- // let url = URL(string: imageData),
- // let data = try? Data(contentsOf: url)
- // else { return }
- // self.itemImage.image = UIImage(data: data)
- guard
- let product = model
- else { return }
+ if let imageData = model?.productImgPath,
+ let url = URL(string: imageData),
+ let data = try? Data(contentsOf: url) {
+ self.itemImage.image = UIImage(data: data)
+ }
+ self.itemNameLabel.text = model?.productName
+ self.itemPriceLabel.text = model?.pointPrice
- self.itemNameLabel.text = product.productName
- self.itemPriceLabel.text = product.pointPrice
-
- self.model = product
+ self.model = model
self.delegate = delegate
self.setUI()
@@ -49,7 +42,7 @@ class RewardItemCollectionViewCell: UICollectionViewCell {
}
func setButton(){
- self.redeemButton.rounded()
+ self.redeemButton.layer.cornerRadius = 10
self.redeemButton.addTarget(self, action: #selector(redeemButtonTouch), for: .touchUpInside)
let totalPoint = UserDefaults.standard.integer(forKey: UserKeys.rewardPoint)
diff --git a/GMERemittance/Module/RewardModules/Reward/User Interface/View/Reward.storyboard b/GMERemittance/Module/RewardModules/Reward/User Interface/View/Reward.storyboard
index 96637b10..3d391326 100644
--- a/GMERemittance/Module/RewardModules/Reward/User Interface/View/Reward.storyboard
+++ b/GMERemittance/Module/RewardModules/Reward/User Interface/View/Reward.storyboard
@@ -106,7 +106,7 @@
-
+
@@ -118,8 +118,8 @@
-
-