menu-voucherlist #101
@ -624,7 +624,7 @@ func (h *Handlers) ResetIncorrectYob(ctx context.Context, sym string, input []by
|
|||||||
return res, nil
|
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
|
// the balance as the result content
|
||||||
func (h *Handlers) CheckBalance(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
func (h *Handlers) CheckBalance(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
||||||
var res resource.Result
|
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
|
// get the active sym and active balance
|
||||||
activeSym, err := store.ReadEntry(ctx, sessionId, utils.DATA_ACTIVE_SYM)
|
activeSym, err := store.ReadEntry(ctx, sessionId, utils.DATA_ACTIVE_SYM)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
Alfred-mk marked this conversation as resolved
Outdated
|
|||||||
return res, err
|
res.Content = "0.00"
|
||||||
lash marked this conversation as resolved
Outdated
lash
commented
Why should it be 0.00 when error? Why should it be 0.00 when error?
Alfred-mk
commented
The 0.00 is a placeholder. I set it like this without a symbol since the error indicates no symbol exists. I have updated this to check the specific db error The 0.00 is a placeholder. I set it like this without a symbol since the error indicates no symbol exists.
I have updated this to check the specific db error
|
|||||||
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
activeBal, err := store.ReadEntry(ctx, sessionId, utils.DATA_ACTIVE_BAL)
|
activeBal, err := store.ReadEntry(ctx, sessionId, utils.DATA_ACTIVE_BAL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return res, err
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
res.Content = fmt.Sprintf("%s %s", activeBal, activeSym)
|
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")
|
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
|
// check if the user has an active sym
|
||||||
_, err = store.ReadEntry(ctx, sessionId, utils.DATA_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
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure there is at least one voucher
|
// Return if there is no voucher
|
||||||
if len(vouchersResp.Result.Holdings) == 0 {
|
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
|
// Use only the first voucher
|
||||||
@ -1035,6 +1039,8 @@ func (h *Handlers) SetDefaultVoucher(ctx context.Context, sym string, input []by
|
|||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
res.FlagReset = append(res.FlagReset, flag_no_active_voucher)
|
||||||
|
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1160,7 +1166,7 @@ func (h *Handlers) ViewVoucher(ctx context.Context, sym string, input []byte) (r
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
|
|
||||||
res.FlagReset = append(res.FlagReset, flag_incorrect_voucher)
|
res.FlagReset = append(res.FlagReset, flag_incorrect_voucher)
|
||||||
res.Content = fmt.Sprintf("%s\n%s", matchedSymbol, matchedBalance)
|
res.Content = fmt.Sprintf("%s\n%s", matchedSymbol, matchedBalance)
|
||||||
} else {
|
} else {
|
||||||
|
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_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_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_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
|
LOAD transaction_reset 0
|
||||||
|
CATCH no_voucher flag_no_active_voucher 1
|
||||||
MOUT back 0
|
MOUT back 0
|
||||||
HALT
|
HALT
|
||||||
LOAD validate_recipient 20
|
LOAD validate_recipient 20
|
||||||
|
Loading…
Reference in New Issue
Block a user
If no active sym then the user has no vouchers yet, and then no balance should be displayed, I think?
For this, I've added a function that sets the default voucher, (expecting it to be SRF) if no active voucher is set for the user.
This will be loaded on the main.vis, ensuring that one has the default sym if they haven't set their own