// // UserState.swift // Sirani // // Created by Anhar Solehudin on 07/04/19. // Copyright © 2019 Anhar Solehudin. All rights reserved. // import Foundation class UserState { static let instance = UserState() private let EMPTY_STRING = "" private let IS_LOGIN = "is_login" private let USERNAME = "username" private let USER_ID = "userid" private let ROLE_ID = "roleid" private let ROLE_NAME = "rolename" private let CUST_ID = "custid" private let FULLNAME = "fullname" private let ROLES = "roles" func userDataSaved(user: User) -> Bool { let username = user.username let userid = user.userid let roleid = user.roleid let rolename = user.rolename let custid = user.custid let fullname = user.fullname let roles = user.roles let userDefaults = UserDefaults.standard userDefaults.set(true, forKey: IS_LOGIN) userDefaults.set(username, forKey: USERNAME) userDefaults.set(userid, forKey: USER_ID) userDefaults.set(roleid, forKey: ROLE_ID) userDefaults.set(rolename, forKey: ROLE_NAME) userDefaults.set(custid, forKey: CUST_ID) userDefaults.set(fullname, forKey: FULLNAME) userDefaults.set(roles, forKey: ROLES) userDefaults.synchronize() return true } func userDataCleared() -> Bool { let userDefaults = UserDefaults.standard userDefaults.set(false, forKey: IS_LOGIN) userDefaults.set(EMPTY_STRING, forKey: USERNAME) userDefaults.set(-1, forKey: USER_ID) userDefaults.set(EMPTY_STRING, forKey: ROLE_ID) userDefaults.set(EMPTY_STRING, forKey: ROLE_NAME) userDefaults.set(-1, forKey: CUST_ID) userDefaults.set(EMPTY_STRING, forKey: FULLNAME) userDefaults.set(EMPTY_STRING, forKey: ROLES) userDefaults.synchronize() return true } func isLoggedIn() -> Bool { let userDefaults = UserDefaults.standard return userDefaults.bool(forKey: IS_LOGIN) } func getUsername() -> String { let userDefaults = UserDefaults.standard return userDefaults.string(forKey: USERNAME) ?? EMPTY_STRING } func getUserId() -> Int { var userId = 0 let userDefaults = UserDefaults.standard let savedUserId = userDefaults.integer(forKey: USER_ID) if savedUserId > 0 { userId = savedUserId } return userId } func getRoleId() -> String { let userDefaults = UserDefaults.standard return userDefaults.string(forKey: ROLE_ID) ?? EMPTY_STRING } func getRoleName() -> String { let userDefaults = UserDefaults.standard return userDefaults.string(forKey: ROLE_NAME) ?? EMPTY_STRING } func getCustId() -> Int { var custId = 0 let userDefaults = UserDefaults.standard let savedCustId = userDefaults.integer(forKey: CUST_ID) if savedCustId > 0 { custId = savedCustId } return custId } func getFullname() -> String { let userDefaults = UserDefaults.standard return userDefaults.string(forKey: FULLNAME) ?? EMPTY_STRING } func getRoles() -> String { let userDefaults = UserDefaults.standard return userDefaults.string(forKey: ROLES) ?? EMPTY_STRING } func saveRoleId(roleId: String) -> Bool { let userDefaults = UserDefaults.standard userDefaults.set(roleId, forKey: ROLE_ID) userDefaults.synchronize() return true } }