forked from urdt/ussd
show a balance of 0 and prevent sending when no voucher exists
This commit is contained in:
parent
eea3be3a39
commit
25bc7006a4
@ -624,7 +624,7 @@ func (h *Handlers) ResetIncorrectYob(ctx context.Context, sym string, input []by
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// CheckBalance retrieves the balance from the API using the "PublicKey" and sets
|
||||
// CheckBalance retrieves the balance of the active voucher and sets
|
||||
// the balance as the result content
|
||||
func (h *Handlers) CheckBalance(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
||||
var res resource.Result
|
||||
@ -640,12 +640,13 @@ func (h *Handlers) CheckBalance(ctx context.Context, sym string, input []byte) (
|
||||
// get the active sym and active balance
|
||||
activeSym, err := store.ReadEntry(ctx, sessionId, utils.DATA_ACTIVE_SYM)
|
||||
if err != nil {
|
||||
return res, err
|
||||
res.Content = "0.00"
|
||||
return res, nil
|
||||
}
|
||||
|
||||
activeBal, err := store.ReadEntry(ctx, sessionId, utils.DATA_ACTIVE_BAL)
|
||||
if err != nil {
|
||||
return res, err
|
||||
return res, nil
|
||||
}
|
||||
|
||||
res.Content = fmt.Sprintf("%s %s", activeBal, activeSym)
|
||||
@ -991,6 +992,8 @@ func (h *Handlers) SetDefaultVoucher(ctx context.Context, sym string, input []by
|
||||
return res, fmt.Errorf("missing session")
|
||||
}
|
||||
|
||||
flag_no_active_voucher, _ := h.flagManager.GetFlag("flag_no_active_voucher")
|
||||
|
||||
// check if the user has an active sym
|
||||
_, err = store.ReadEntry(ctx, sessionId, utils.DATA_ACTIVE_SYM)
|
||||
|
||||
@ -1008,9 +1011,10 @@ func (h *Handlers) SetDefaultVoucher(ctx context.Context, sym string, input []by
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// Ensure there is at least one voucher
|
||||
// Return if there is no voucher
|
||||
if len(vouchersResp.Result.Holdings) == 0 {
|
||||
return res, err
|
||||
res.FlagSet = append(res.FlagSet, flag_no_active_voucher)
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// Use only the first voucher
|
||||
@ -1035,6 +1039,8 @@ func (h *Handlers) SetDefaultVoucher(ctx context.Context, sym string, input []by
|
||||
return res, err
|
||||
}
|
||||
|
||||
res.FlagReset = append(res.FlagReset, flag_no_active_voucher)
|
||||
|
||||
return res, nil
|
||||
}
|
||||
|
||||
|
1
services/registration/no_voucher
Normal file
1
services/registration/no_voucher
Normal file
@ -0,0 +1 @@
|
||||
You need a voucher to send
|
5
services/registration/no_voucher.vis
Normal file
5
services/registration/no_voucher.vis
Normal file
@ -0,0 +1,5 @@
|
||||
MOUT back 0
|
||||
MOUT quit 9
|
||||
HALT
|
||||
INCMP ^ 0
|
||||
INCMP quit 9
|
1
services/registration/no_voucher_swa
Normal file
1
services/registration/no_voucher_swa
Normal file
@ -0,0 +1 @@
|
||||
Unahitaji sarafu kutuma
|
@ -15,4 +15,5 @@ flag,flag_allow_update,21,this is set to allow a user to update their profile da
|
||||
flag,flag_single_edit,22,this is set to allow a user to edit a single profile item such as year of birth
|
||||
flag,flag_incorrect_date_format,23,this is set when the given year of birth is invalid
|
||||
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_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
|
||||
|
|
@ -1,4 +1,5 @@
|
||||
LOAD transaction_reset 0
|
||||
CATCH no_voucher flag_no_active_voucher 1
|
||||
MOUT back 0
|
||||
HALT
|
||||
LOAD validate_recipient 20
|
||||
|
Loading…
Reference in New Issue
Block a user