Browse Source

reciepients fetch in view will appear

pull/1/head
gme_2 6 years ago
parent
commit
9513b9888c
  1. 4
      GMERemittance.xcodeproj/project.pbxproj
  2. 2
      GMERemittance/Model/Reciepient.swift
  3. 3
      GMERemittance/Module/EditReciepient/Application Logic/Interactor/EditReciepientInteractor.swift
  4. 2
      GMERemittance/Module/EditReciepient/Module Interface/EditReciepientModuleInterface.swift
  5. 17
      GMERemittance/Module/EditReciepient/User Interface/Presenter/EditReciepientPresenter.swift
  6. 31
      GMERemittance/Module/EditReciepient/User Interface/Presenter/EditRecipientRecipientViewModel.swift
  7. 39
      GMERemittance/Module/EditReciepient/User Interface/View/EditReciepientViewController.swift
  8. 2
      GMERemittance/Module/EditReciepient/User Interface/View/EditReciepientViewInterface.swift
  9. 3
      GMERemittance/Module/EditReciepient/User Interface/Wireframe/EditReciepientWireframe.swift
  10. 16
      GMERemittance/Recipient/RecipientListViewController.storyboard
  11. 45
      GMERemittance/Recipient/RecipientListViewController.swift

4
GMERemittance.xcodeproj/project.pbxproj

@ -247,6 +247,7 @@
D922D9242134DCF000D43053 /* EditReciepientViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D922D9192134DCF000D43053 /* EditReciepientViewController.swift */; };
D922D9252134DCF000D43053 /* EditReciepient.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D922D91A2134DCF000D43053 /* EditReciepient.storyboard */; };
D922D9262134DCF000D43053 /* EditReciepientViewInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = D922D91B2134DCF000D43053 /* EditReciepientViewInterface.swift */; };
D922D9282134E5F800D43053 /* EditRecipientRecipientViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D922D9272134E5F800D43053 /* EditRecipientRecipientViewModel.swift */; };
D95B5E3921311057000C0B33 /* GmeContactsModuleInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = D95B5E2621311056000C0B33 /* GmeContactsModuleInterface.swift */; };
D95B5E3A21311057000C0B33 /* GmeContactsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D95B5E2921311056000C0B33 /* GmeContactsService.swift */; };
D95B5E3B21311057000C0B33 /* GmeContactsServiceType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D95B5E2A21311056000C0B33 /* GmeContactsServiceType.swift */; };
@ -574,6 +575,7 @@
D922D9192134DCF000D43053 /* EditReciepientViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditReciepientViewController.swift; sourceTree = "<group>"; };
D922D91A2134DCF000D43053 /* EditReciepient.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = EditReciepient.storyboard; sourceTree = "<group>"; };
D922D91B2134DCF000D43053 /* EditReciepientViewInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditReciepientViewInterface.swift; sourceTree = "<group>"; };
D922D9272134E5F800D43053 /* EditRecipientRecipientViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditRecipientRecipientViewModel.swift; sourceTree = "<group>"; };
D95B5E2621311056000C0B33 /* GmeContactsModuleInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GmeContactsModuleInterface.swift; sourceTree = "<group>"; };
D95B5E2921311056000C0B33 /* GmeContactsService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GmeContactsService.swift; sourceTree = "<group>"; };
D95B5E2A21311056000C0B33 /* GmeContactsServiceType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GmeContactsServiceType.swift; sourceTree = "<group>"; };
@ -1317,6 +1319,7 @@
isa = PBXGroup;
children = (
D922D9132134DCF000D43053 /* EditReciepientPresenter.swift */,
D922D9272134E5F800D43053 /* EditRecipientRecipientViewModel.swift */,
);
path = Presenter;
sourceTree = "<group>";
@ -2093,6 +2096,7 @@
0410A40E1FF1FAF400EC0B9E /* ModelExtension.swift in Sources */,
04E1032C2007A88600AE24A2 /* ScrollableProtocol.swift in Sources */,
04546C452032B176007EFE15 /* WithdrawViewModel.swift in Sources */,
D922D9282134E5F800D43053 /* EditRecipientRecipientViewModel.swift in Sources */,
04F8264C1FE7EA2000C4AF1E /* LoginViewController.swift in Sources */,
A2266A5B2028450700E890A6 /* AgentModel.swift in Sources */,
043760A3205B90F700D7827A /* RedeemViewController.swift in Sources */,

2
GMERemittance/Model/Reciepient.swift

@ -24,7 +24,7 @@ struct RecipientModelFields {
static let relation = "Relation"
static let mobileNumber = "MobileNo"
static let email = "Email"
static let reason = "reasTransferReasonon"
static let reason = "TransferReasons"
}

3
GMERemittance/Module/EditReciepient/Application Logic/Interactor/EditReciepientInteractor.swift

@ -30,9 +30,10 @@ class EditReciepientInteractor {
extension EditReciepientInteractor: EditReciepientInteractorInput {
func viewIsReady() {
self.output?.show(recipient: self.reciepient)
self.service.fetch(success: { (model) in
self.output?.show(model: model)
self.output?.show(recipient: self.reciepient)
}) { (error) in
self.output?.show(error: error)
}

2
GMERemittance/Module/EditReciepient/Module Interface/EditReciepientModuleInterface.swift

@ -8,5 +8,5 @@
protocol EditReciepientModuleInterface: class {
func viewIsReady()
func save(model: ReceipientViewModel)
func save(model: EditRecipientRecipientViewModel)
}

17
GMERemittance/Module/EditReciepient/User Interface/Presenter/EditReciepientPresenter.swift

@ -77,7 +77,7 @@ class EditReciepientPresenter {
self.view?.show(relations: viewmodels)
}
func convert(model: ReceipientViewModel) {
func convert(model: EditRecipientRecipientViewModel) {
var reciepient = Recipient()
reciepient.firstName = model.firstName
reciepient.middleName = model.middleName
@ -94,17 +94,16 @@ class EditReciepientPresenter {
}
func convert(model: Recipient) {
let reciepient = ReceipientViewModel()
let reciepient = EditRecipientRecipientViewModel()
reciepient.id = model.recipientId
reciepient.firstName = model.firstName
reciepient.middleName = model.middleName
reciepient.lastName = model.lastName
reciepient.countryId = model.countryId
reciepient.stateId = model.stateId
reciepient.districtId = model.districtId
reciepient.country = model.country
reciepient.state = model.state
reciepient.address = model.address
reciepient.relationId = model.relationId
reciepient.reasonId = model.reasonId
reciepient.relation = model.relation
reciepient.reason = model.reason
reciepient.mobileNumber = model.mobileNumber
reciepient.email = model.email
self.view?.show(recipient: reciepient)
@ -119,7 +118,7 @@ extension EditReciepientPresenter: EditReciepientModuleInterface {
self.interactor?.viewIsReady()
}
func save(model: ReceipientViewModel) {
func save(model: EditRecipientRecipientViewModel) {
self.convert(model: model)
}
}
@ -150,6 +149,6 @@ extension EditReciepientPresenter: EditReciepientInteractorOutput {
}
func show(recipient: Recipient) {
self.convert(model: recipient)
}
}

31
GMERemittance/Module/EditReciepient/User Interface/Presenter/EditRecipientRecipientViewModel.swift

@ -0,0 +1,31 @@
//
// EditRecipientRecipientViewModel.swift
// GMERemittance
//
// Created by gme_2 on 28/08/2018.
// Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
class EditRecipientRecipientViewModel {
var id: String?
var firstName: String?
var middleName: String?
var lastName: String?
var country: String?
var state: String?
var stateId: String?
var city: String?
var address: String?
var district: String?
var districtId: String?
var relation: String?
var relationId: String?
var mobileNumber: String?
var email: String?
var recipientId: String?
var reason: String?
var reasonId: String?
var countryId: String?
}

39
GMERemittance/Module/EditReciepient/User Interface/View/EditReciepientViewController.swift

@ -33,7 +33,11 @@ class EditReciepientViewController: UIViewController {
var countries: [SendMoneyCountryViewModel]?
var transferReasons: [SendMoneyTransferReasonViewModel]?
var relations: [SendMoneyRelationViewModel]?
var reciepient: ReceipientViewModel?
var reciepient: EditRecipientRecipientViewModel? {
didSet {
self.populateInformations()
}
}
var selectedCountry: SendMoneyCountryViewModel? {
@ -82,11 +86,16 @@ class EditReciepientViewController: UIViewController {
self.setup()
self.setupDelegates()
self.setupTargets()
self.populateInformations()
self.presenter?.viewIsReady()
}
// MARK: IBActions
@IBAction func save(_ sender: UIButton) {
self.view.endEditing(true)
if let reciepient = self.reciepient {
self.presenter?.save(model: reciepient)
}
}
// MARK: Other Functions
@ -135,7 +144,25 @@ class EditReciepientViewController: UIViewController {
}
private func populateInformations() {
print(self.reciepient?.firstName)
self.firstNameTextField.text = self.reciepient?.firstName
self.middleNameTextField.text = self.reciepient?.middleName
self.lastNameTextField.text = self.reciepient?.lastName
let country = self.countries?.filter({
$0.name == self.reciepient?.country
}).first?.name
self.countryTextField.text = country
self.addressTextField.text = reciepient?.address
let relation = self.relations?.filter({
$0.title == self.reciepient?.relation
}).first?.title
self.relationTextField.text = relation
self.mobileTextField.text = self.reciepient?.mobileNumber
self.emailTextField.text = self.reciepient?.email
let transferReason = self.transferReasons?.filter({
$0.title == self.reciepient?.reason
}).first?.title
self.transferReasonTextField.text = transferReason
}
private func setupNavigation() {
@ -259,6 +286,10 @@ extension EditReciepientViewController: EditReciepientViewInterface {
func show(relations: [SendMoneyRelationViewModel]) {
self.relations = relations
}
func show(recipient: EditRecipientRecipientViewModel) {
self.reciepient = recipient
}
}
extension EditReciepientViewController: UITextFieldDelegate {

2
GMERemittance/Module/EditReciepient/User Interface/View/EditReciepientViewInterface.swift

@ -11,7 +11,7 @@ protocol EditReciepientViewInterface: class {
func show(countries: [SendMoneyCountryViewModel])
func show(transferReasons: [SendMoneyTransferReasonViewModel])
func show(relations: [SendMoneyRelationViewModel])
func show(recipient: ReceipientViewModel)
func show(recipient: EditRecipientRecipientViewModel)
func showLoading()
func hideLoading()
}

3
GMERemittance/Module/EditReciepient/User Interface/Wireframe/EditReciepientWireframe.swift

@ -33,8 +33,9 @@ extension EditReciepientWireframe: EditReciepientWireframeInput {
return viewController
}
func open(reciepient: Recipient) {
func edit(reciepient: Recipient, source: UINavigationController) {
self.receipient = reciepient
self.pushMainView(in: source)
}
}

16
GMERemittance/Recipient/RecipientListViewController.storyboard

@ -70,26 +70,15 @@
<outletCollection property="gestureRecognizers" destination="fvv-yf-Atf" appends="YES" id="ZTk-c7-oyA"/>
</connections>
</view>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="TSh-Aq-vZt">
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="TSh-Aq-vZt">
<rect key="frame" x="10" y="143.5" width="355" height="523.5"/>
<color key="backgroundColor" red="0.90588235289999997" green="0.92941176469999998" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/>
<button key="tableFooterView" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="3fb-8j-vbd">
<rect key="frame" x="0.0" y="108" width="355" height="44"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="17"/>
<state key="normal" title="Load More">
<color key="titleColor" red="0.92941176470588238" green="0.10980392156862745" blue="0.14117647058823529" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<connections>
<action selector="loadMoreAction:" destination="IRF-H1-BUJ" eventType="touchUpInside" id="84E-lj-2fA"/>
</connections>
</button>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" reuseIdentifier="recipientList" rowHeight="80" id="UZD-5L-uLg" customClass="RecipientListTableViewCell" customModule="GMERemittance" customModuleProvider="target">
<rect key="frame" x="0.0" y="28" width="355" height="80"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="UZD-5L-uLg" id="125-Fu-inw">
<rect key="frame" x="0.0" y="0.0" width="355" height="79.5"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="80"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cjU-x5-Wgl">
@ -165,7 +154,6 @@
</view>
<connections>
<outlet property="labelSwipeInfo" destination="8h1-8y-HWl" id="0Go-Q2-rJJ"/>
<outlet property="loadMoreOutlet" destination="3fb-8j-vbd" id="koy-FY-45K"/>
<outlet property="tableView" destination="TSh-Aq-vZt" id="iSi-t9-bHo"/>
<outlet property="viewAddRecipient" destination="1Ws-70-qw9" id="bSf-Vu-KZy"/>
<segue destination="uZQ-NI-0tm" kind="show" identifier="paymentMethod" id="lRN-ZJ-aOZ"/>

45
GMERemittance/Recipient/RecipientListViewController.swift

@ -9,8 +9,6 @@
import UIKit
class RecipientListViewController: UIViewController {
@IBOutlet weak var loadMoreOutlet: UIButton!
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var viewAddRecipient: UIView! // this is the view that contains add reciepient. should be header
@IBOutlet weak var labelSwipeInfo: UILabel!
@ -20,7 +18,6 @@ class RecipientListViewController: UIViewController {
if (reciepients ?? []).isEmpty {
self.showAddNewReciepientViewController()
}else {
self.viewAddRecipient.isHidden = false
self.tableView.isHidden = false
self.labelSwipeInfo.isHidden = false
self.tableView.reloadData()
@ -32,35 +29,18 @@ class RecipientListViewController: UIViewController {
super.viewWillAppear(animated)
setupNavigation()
self.title = "Send Money"
fetchReceipients()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
}
override func viewDidLoad() {
super.viewDidLoad()
self.setupDelegates()
let defaults = UserDefaults.standard
let myUsername = defaults.string(forKey: "com.gmeremit.username") ?? ""
self.showProgressHud()
self.fetchReciepientList(username: myUsername, success: { (reciepients) in
self.hideProgressHud()
self.reciepients = reciepients
}) { (error) in
self.hideProgressHud()
self.alert(message: error.localizedDescription)
}
viewAddRecipient.layer.cornerRadius = 10
// setUpNavBar(id: 2, title: "Send Money")
viewAddRecipient.isHidden = true
loadMoreOutlet.isHidden = true
}
override func viewDidDisappear(_ animated: Bool){
@ -77,7 +57,7 @@ class RecipientListViewController: UIViewController {
}
override func viewWillDisappear(_ animated: Bool) {
self.viewAddRecipient.isHidden = false
super.viewWillDisappear(animated)
self.title = ""
}
@ -140,7 +120,11 @@ extension RecipientListViewController: UITableViewDelegate,UITableViewDataSource
}
let edit = UITableViewRowAction(style: .normal, title: "Edit") { (action, indexPath) in
guard let navigation = self.navigationController else {return}
if let reciepient = self.reciepients?.elementAt(index: indexPath.row) {
let wireFrame = EditReciepientWireframe()
wireFrame.edit(reciepient: reciepient, source: navigation)
}
}
@ -149,14 +133,15 @@ extension RecipientListViewController: UITableViewDelegate,UITableViewDataSource
return [delete, edit]
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
switch segue.identifier {
case "paymentMethod"?: break
// let paymentViewController
// = segue.destination as! PaymentMethodViewController
// paymentViewController.recipient = self.recipientArray[self.recipientIndex!]
default:
return
func fetchReceipients() {
let defaults = UserDefaults.standard
let myUsername = defaults.string(forKey: "com.gmeremit.username") ?? ""
self.fetchReciepientList(username: myUsername, success: { (reciepients) in
self.hideProgressHud()
self.reciepients = reciepients
}) { (error) in
self.hideProgressHud()
self.alert(message: error.localizedDescription)
}
}

Loading…
Cancel
Save