Compare commits
6 Commits
e96c874300
...
d0ad6395b5
Author | SHA1 | Date | |
---|---|---|---|
d0ad6395b5 | |||
106983a394 | |||
91b85af11a | |||
534d756318 | |||
6998c30dd1 | |||
449f90c95b |
@ -102,6 +102,7 @@ func (ls *LocalHandlerService) GetHandler(accountService server.AccountServiceIn
|
||||
ls.DbRs.AddLocalFunc("check_pin_mismatch", ussdHandlers.CheckPinMisMatch)
|
||||
ls.DbRs.AddLocalFunc("validate_blocked_number", ussdHandlers.ValidateBlockedNumber)
|
||||
ls.DbRs.AddLocalFunc("retrieve_blocked_number", ussdHandlers.RetrieveBlockedNumber)
|
||||
ls.DbRs.AddLocalFunc("reset_unregistered_number", ussdHandlers.ResetUnregisteredNumber)
|
||||
|
||||
return ussdHandlers, nil
|
||||
}
|
||||
|
@ -748,15 +748,35 @@ func (h *Handlers) FetchCustodialBalances(ctx context.Context, sym string, input
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (h *Handlers) ResetUnregisteredNumber(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
||||
var res resource.Result
|
||||
flag_unregistered_number, _ := h.flagManager.GetFlag("flag_unregistered_number")
|
||||
res.FlagReset = append(res.FlagReset, flag_unregistered_number)
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (h *Handlers) ValidateBlockedNumber(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
||||
var res resource.Result
|
||||
var err error
|
||||
|
||||
flag_unregistered_number, _ := h.flagManager.GetFlag("flag_unregistered_number")
|
||||
|
||||
store := h.userdataStore
|
||||
sessionId, ok := ctx.Value("SessionId").(string)
|
||||
if !ok {
|
||||
return res, fmt.Errorf("missing session")
|
||||
}
|
||||
blockedNumber := string(input)
|
||||
_, err = store.ReadEntry(ctx, blockedNumber, utils.DATA_PUBLIC_KEY)
|
||||
if err != nil {
|
||||
if db.IsNotFound(err) {
|
||||
logg.Printf(logging.LVL_INFO, "Invalid or unregistered number")
|
||||
res.FlagSet = append(res.FlagSet, flag_unregistered_number)
|
||||
return res, nil
|
||||
} else {
|
||||
return res, err
|
||||
}
|
||||
}
|
||||
err = store.WriteEntry(ctx, sessionId, utils.DATA_BLOCKED_NUMBER, []byte(blockedNumber))
|
||||
if err != nil {
|
||||
return res, nil
|
||||
|
@ -3,7 +3,7 @@ LOAD reset_account_authorized 6
|
||||
RELOAD reset_account_authorized
|
||||
MOUT back 0
|
||||
HALT
|
||||
INCMP _ 0
|
||||
LOAD validate_blocked_number 0
|
||||
RELOAD validate_blocked_number
|
||||
INCMP pin_management 0
|
||||
INCMP enter_others_new_pin *
|
||||
|
@ -1,3 +1,4 @@
|
||||
CATCH unregistered_number flag_unregistered_number 1
|
||||
LOAD retrieve_blocked_number 0
|
||||
MAP retrieve_blocked_number
|
||||
MOUT back 0
|
||||
|
@ -18,4 +18,4 @@ flag,flag_incorrect_voucher,24,this is set when the selected voucher is invalid
|
||||
flag,flag_api_call_error,25,this is set when communication to an external service fails
|
||||
flag,flag_no_active_voucher,26,this is set when a user does not have an active voucher
|
||||
flag,flag_admin_privilege,27,this is set when a user has admin privileges.
|
||||
|
||||
flag,flag_unregistered_number,28,this is set when an unregistered phonenumber tries to perform an action
|
||||
|
|
1
services/registration/unregistered_number
Normal file
1
services/registration/unregistered_number
Normal file
@ -0,0 +1 @@
|
||||
The number you have entered is either not registered with Sarafu or is invalid.
|
7
services/registration/unregistered_number.vis
Normal file
7
services/registration/unregistered_number.vis
Normal file
@ -0,0 +1,7 @@
|
||||
LOAD reset_unregistered_number 0
|
||||
RELOAD reset_unregistered_number
|
||||
MOUT retry 1
|
||||
MOUT quit 9
|
||||
HALT
|
||||
INCMP enter_other_number 1
|
||||
INCMP quit 9
|
Loading…
Reference in New Issue
Block a user