Skip to main content

Change PIN

Once a user has logged in to the application, they can change their pin. The Change Pin flow involves these events.

ChangePin event flow-diagram.

The following diagram shows the working of the change pin process.

iOS/Swift

The user needs to trigger a StartChangePin Event, so for Swift you can trigger that by this snippet:

Triggering StartChangePin Event (Swift)
    func changePin(request: ChangePinRequest, completion: @escaping (ActionResult) -> Void) {
let validation = validateChangePinRequest(request: request)
if validation.success {
self.completion = completion
changePinRequest = request
let event = KSMStartChangePinEvent()
timer = CallTimer(event: event)
MasterControllerAdapter.sharedInstance.sendEvent2MasterController(event: event)
} else {
completion(validation)
}
}

Next, you need to send the SetNewPin Event, this is done by the following snippets:

Triggering SetNewPin Event (Swift)
    func startChangePin(event: KSMStartSetNewPinEvent) {
let changePinEvent = KSMProvideSetNewPinEvent(currentPin: changePinRequest.pin, andPin: changePinRequest.newPin)
MasterControllerAdapter.sharedInstance.sendEvent2MasterController(event: changePinEvent)
}

Android/Kotlin

Triggering StartChangePin Event (Kotlin)
fun triggerStartChangePinEvent() {
synchronousEventHandler.postEvent(StartChangePinEvent())
}

Next, you need to send the ProvideSetNewPinEvent, this is done by the following snippets:

Triggering SetNewPin Event (Kotlin)
fun triggerProvideSetNewPinEvent(currentPin: String, newPin: String) {
val setNewPinEvent = ProvideSetNewPinEvent(currentPin, newPin)
synchronousEventHandler.postEvent(setNewPinEvent)?.then {
// handle result
}
}