Browse Source

new api to fetch profile integrated and saved to local persistance

pull/1/head
gme_2 6 years ago
parent
commit
612ed3bb1f
  1. 4
      GMERemittance/Model/User.swift
  2. 39
      GMERemittance/Module/Home/User Interface/View/HomeViewController.swift
  3. 1
      GMERemittance/Module/Login/Application Logic/Interactor/LoginInteractor.swift
  4. 2
      GMERemittance/Module/Login/Application Logic/Service/LoginServiceType.swift
  5. 13
      GMERemittance/Module/TransactionHistory/User Interface/View/TransactionHistory.storyboard
  6. 1
      GMERemittance/Utility/AppConstants.swift
  7. 2
      GMERemittance/_Login/LoginViewModel.swift

4
GMERemittance/Model/User.swift

@ -9,11 +9,11 @@
import Foundation
import ObjectMapper
protocol Login: ApiServiceType {
protocol LoginApiService: ApiServiceType {
func _login(userId: String, password: String ,success: @escaping (User?) -> (), failure: @escaping (Error) -> ())
}
extension Login {
extension LoginApiService {
func _login(userId: String, password: String, success: @escaping (User?) -> (), failure: @escaping (Error) -> ()) {
let params = [ "userId": userId, "password": password ]
let url = baseUrl + "users/access-code"

39
GMERemittance/Module/Home/User Interface/View/HomeViewController.swift

@ -31,6 +31,7 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout {
var user: User? {
didSet {
// update
self.save(user: user)
}
}
var sections: [Sections] = [.balance, .collection]
@ -408,3 +409,41 @@ extension HomeViewController {
return Notification.Name.init(rawValue: MenuNotificationName.collectionHeight)
}
}
extension HomeViewController {
private func save(value: Any?, forKey: String) {
let defaults = UserDefaults.standard
defaults.set(value, forKey: forKey)
}
func save(user: User?) {
self.save(value: user?.dpUrl ?? "", forKey: UserKeys.dpUrl)
self.save(value: user?.walletNumber ?? "", forKey: UserKeys.walletNumber)
self.save(value: user?.primaryBankName ?? "", forKey: UserKeys.primaryBankName)
let firstName = user?.firstName ?? ""
let middleName = user?.lastName ?? ""
let lastName = user?.lastName ?? ""
let fullName = firstName + " " + middleName + " " + lastName
self.save(value: fullName, forKey: UserKeys.fullName)
self.save(value: user?.userId ?? "", forKey: UserKeys.userId)
self.save(value: user?.nickName ?? "", forKey: UserKeys.nickName)
self.save(value: user?.availableBalance ?? "", forKey: UserKeys.availableBalance)
self.save(value: user?.rewardPoint ?? "", forKey: UserKeys.rewardPoint)
self.save(value: user?.verified ?? false, forKey: UserKeys.verified)
self.save(value: user?.kyc ?? "", forKey: UserKeys.kyc)
self.save(value: user?.email ?? "", forKey: UserKeys.email)
self.save(value: user?.mobileNumber ?? "", forKey: UserKeys.mobileNumber)
self.save(value: user?.sourceId ?? "", forKey: UserKeys.sourceId)
self.save(value: user?.isReferred ?? "", forKey: UserKeys.isReferred)
self.save(value: user?.idType ?? "", forKey: UserKeys.idType)
self.save(value: user?.idNumber ?? "", forKey: UserKeys.idNumber)
self.save(value: user?.country ?? "" , forKey: UserKeys.country)
self.save(value: user?.countryCode, forKey: UserKeys.countryCode)
self.save(value: user?.senderId, forKey: UserKeys.senderId)
}
}

1
GMERemittance/Module/Login/Application Logic/Interactor/LoginInteractor.swift

@ -74,6 +74,7 @@ extension LoginInteractor: LoginInteractorInput {
let accessCode = user?.accessCode ?? ""
let uuid = RestApiMananger.sharedInstance.getUUID()
let accessCodeBase64 = accessCode + ":" + uuid.toBase64()
self.save(value: user?.dpUrl ?? "", forKey: UserKeys.dpUrl)
self.save(value: user?.walletNumber ?? "", forKey: UserKeys.walletNumber)
self.save(value: user?.primaryBankName ?? "", forKey: UserKeys.primaryBankName)

2
GMERemittance/Module/Login/Application Logic/Service/LoginServiceType.swift

@ -8,6 +8,6 @@
import Foundation
protocol LoginServiceType: class, Login {
protocol LoginServiceType: class, LoginApiService {
}

13
GMERemittance/Module/TransactionHistory/User Interface/View/TransactionHistory.storyboard

@ -35,14 +35,17 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="96J-o9-k7w">
<rect key="frame" x="0.0" y="0.0" width="375" height="50"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Search..." textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Y2X-bs-0NT">
<rect key="frame" x="15" y="6" width="311" height="30"/>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Search with Control No..." textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Y2X-bs-0NT">
<rect key="frame" x="15" y="8.5" width="305" height="35"/>
<constraints>
<constraint firstAttribute="height" constant="35" id="RkM-Qf-eRJ"/>
</constraints>
<color key="textColor" red="0.29019607843137252" green="0.29019607843137252" blue="0.29019607843137252" alpha="1" colorSpace="calibratedRGB"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="14"/>
<textInputTraits key="textInputTraits" keyboardType="numberPad"/>
</textField>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JqT-TG-Aud">
<rect key="frame" x="341" y="10" width="24" height="22"/>
<rect key="frame" x="335" y="15" width="24" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="24" id="nX3-O3-DI5"/>
<constraint firstAttribute="height" constant="22" id="zsX-3M-5o5"/>
@ -55,8 +58,7 @@
</subviews>
<color key="backgroundColor" red="0.97647058819999999" green="0.97647058819999999" blue="0.97647058819999999" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="JqT-TG-Aud" secondAttribute="trailing" constant="10" id="2AF-eX-7SF"/>
<constraint firstItem="JqT-TG-Aud" firstAttribute="top" secondItem="96J-o9-k7w" secondAttribute="top" constant="10" id="ASS-yS-X7U"/>
<constraint firstItem="JqT-TG-Aud" firstAttribute="top" secondItem="96J-o9-k7w" secondAttribute="top" constant="15" id="ASS-yS-X7U"/>
<constraint firstAttribute="height" constant="50" id="diQ-UJ-UOv"/>
<constraint firstItem="JqT-TG-Aud" firstAttribute="leading" secondItem="Y2X-bs-0NT" secondAttribute="trailing" constant="15" id="fNs-fn-Erq"/>
<constraint firstItem="Y2X-bs-0NT" firstAttribute="centerY" secondItem="JqT-TG-Aud" secondAttribute="centerY" id="oxC-p9-gXb"/>
@ -235,6 +237,7 @@
<constraint firstItem="Lab-Ej-i1M" firstAttribute="leading" secondItem="lJa-Eg-GAR" secondAttribute="leading" id="KdC-we-U6d"/>
<constraint firstItem="96J-o9-k7w" firstAttribute="leading" secondItem="lJa-Eg-GAR" secondAttribute="leading" id="QfN-VG-5Ch"/>
<constraint firstItem="Lab-Ej-i1M" firstAttribute="top" secondItem="96J-o9-k7w" secondAttribute="bottom" constant="-2" id="U6r-XM-Zzj"/>
<constraint firstItem="JqT-TG-Aud" firstAttribute="trailing" secondItem="Nqp-Xe-KAa" secondAttribute="trailing" id="lSE-Hi-XRR"/>
<constraint firstAttribute="bottom" secondItem="Lab-Ej-i1M" secondAttribute="bottom" id="ngK-Su-wfA"/>
</constraints>
</view>

1
GMERemittance/Utility/AppConstants.swift

@ -82,4 +82,5 @@ class Utility {
}
return nil
}
}

2
GMERemittance/_Login/LoginViewModel.swift

@ -8,7 +8,7 @@
import Foundation
class LoginViewModel: SignUpViewModel, Login {
class LoginViewModel: SignUpViewModel, LoginApiService {
var loggedin: Box<Bool?> = Box(nil)
var loggedInConnectionTimeOut: Box<Bool?> = Box(nil)

Loading…
Cancel
Save