Compare commits
No commits in common. "cb4a52e4f245bddf9755434004a4cdb7fffd9f65" and "e4ed9a65bbc777bf98232a0b887fab73530ae291" have entirely different histories.
cb4a52e4f2
...
e4ed9a65bb
@ -94,7 +94,6 @@ func (ls *LocalHandlerService) GetHandler() (*ussd.Handlers, error) {
|
|||||||
ls.DbRs.AddLocalFunc("quit_with_help", ussdHandlers.QuitWithHelp)
|
ls.DbRs.AddLocalFunc("quit_with_help", ussdHandlers.QuitWithHelp)
|
||||||
ls.DbRs.AddLocalFunc("check_vouchers", ussdHandlers.CheckVouchers)
|
ls.DbRs.AddLocalFunc("check_vouchers", ussdHandlers.CheckVouchers)
|
||||||
ls.DbRs.AddLocalFunc("get_vouchers", ussdHandlers.GetVoucherList)
|
ls.DbRs.AddLocalFunc("get_vouchers", ussdHandlers.GetVoucherList)
|
||||||
ls.DbRs.AddLocalFunc("view_voucher", ussdHandlers.ViewVoucher)
|
|
||||||
|
|
||||||
return ussdHandlers, nil
|
return ussdHandlers, nil
|
||||||
}
|
}
|
||||||
|
@ -1053,71 +1053,3 @@ func (h *Handlers) CheckVouchers(ctx context.Context, sym string, input []byte)
|
|||||||
|
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ViewVoucher retrieves the token holding and balance from the subprefixDB
|
|
||||||
func (h *Handlers) ViewVoucher(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
|
||||||
var res resource.Result
|
|
||||||
var err error
|
|
||||||
inputStr := string(input)
|
|
||||||
|
|
||||||
if inputStr == "0" || inputStr == "00" {
|
|
||||||
return res, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
flag_incorrect_voucher, _ := h.flagManager.GetFlag("flag_incorrect_voucher")
|
|
||||||
|
|
||||||
// Initialize the store and prefix database
|
|
||||||
store := h.userdataStore
|
|
||||||
prefixdb := storage.NewSubPrefixDb(store, []byte("token_holdings"))
|
|
||||||
|
|
||||||
// Retrieve the voucher symbol list
|
|
||||||
voucherSymbolList, err := prefixdb.Get(ctx, []byte("tokens"))
|
|
||||||
if err != nil {
|
|
||||||
return res, fmt.Errorf("failed to retrieve voucher symbol list: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Retrieve the voucher balance list
|
|
||||||
voucherBalanceList, err := prefixdb.Get(ctx, []byte(voucherSymbolList))
|
|
||||||
if err != nil {
|
|
||||||
return res, fmt.Errorf("failed to retrieve voucher balance list: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Convert the symbol and balance lists from byte arrays to strings
|
|
||||||
voucherSymbols := string(voucherSymbolList)
|
|
||||||
voucherBalances := string(voucherBalanceList)
|
|
||||||
|
|
||||||
// Split the lists into slices for processing
|
|
||||||
symbols := strings.Split(voucherSymbols, "\n")
|
|
||||||
balances := strings.Split(voucherBalances, "\n")
|
|
||||||
|
|
||||||
var matchedSymbol, matchedBalance string
|
|
||||||
|
|
||||||
for i, symbol := range symbols {
|
|
||||||
symbolParts := strings.SplitN(symbol, ":", 2)
|
|
||||||
if len(symbolParts) != 2 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
voucherNum := symbolParts[0]
|
|
||||||
voucherSymbol := symbolParts[1]
|
|
||||||
|
|
||||||
// Check if input matches either the number or the symbol
|
|
||||||
if inputStr == voucherNum || strings.EqualFold(inputStr, voucherSymbol) {
|
|
||||||
matchedSymbol = voucherSymbol
|
|
||||||
// Ensure there's a corresponding balance
|
|
||||||
if i < len(balances) {
|
|
||||||
matchedBalance = strings.SplitN(balances[i], ":", 2)[1] // Extract balance after the "x:balance" format
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If a match is found, return the symbol and balance
|
|
||||||
if matchedSymbol != "" && matchedBalance != "" {
|
|
||||||
res.Content = fmt.Sprintf("%s\n%s", matchedSymbol, matchedBalance)
|
|
||||||
res.FlagReset = append(res.FlagReset, flag_incorrect_voucher)
|
|
||||||
} else {
|
|
||||||
res.FlagSet = append(res.FlagSet, flag_incorrect_voucher)
|
|
||||||
}
|
|
||||||
|
|
||||||
return res, nil
|
|
||||||
}
|
|
||||||
|
@ -4,3 +4,6 @@ MOUT back 0
|
|||||||
HALT
|
HALT
|
||||||
INCMP _ 0
|
INCMP _ 0
|
||||||
INCMP select_voucher 1
|
INCMP select_voucher 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,5 +12,5 @@ flag,flag_invalid_amount,18,this is set when the given transaction amount is inv
|
|||||||
flag,flag_incorrect_pin,19,this is set when the provided PIN is invalid or does not match the current account's PIN
|
flag,flag_incorrect_pin,19,this is set when the provided PIN is invalid or does not match the current account's PIN
|
||||||
flag,flag_valid_pin,20,this is set when the given PIN is valid
|
flag,flag_valid_pin,20,this is set when the given PIN is valid
|
||||||
flag,flag_allow_update,21,this is set to allow a user to update their profile data
|
flag,flag_allow_update,21,this is set to allow a user to update their profile data
|
||||||
flag,flag_incorrect_voucher,22,this is set when the selected voucher is invalid
|
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
|
||||||
|
|
@ -1,15 +1,11 @@
|
|||||||
LOAD get_vouchers 0
|
LOAD get_vouchers 0
|
||||||
MAP get_vouchers
|
MAP get_vouchers
|
||||||
MOUT back 0
|
MOUT back 0
|
||||||
MOUT quit 00
|
MOUT quit 9
|
||||||
MNEXT next 11
|
MNEXT next 11
|
||||||
MPREV prev 22
|
MPREV prev 22
|
||||||
HALT
|
HALT
|
||||||
LOAD view_voucher 80
|
|
||||||
RELOAD view_voucher
|
|
||||||
CATCH . flag_incorrect_voucher 1
|
|
||||||
INCMP _ 0
|
INCMP _ 0
|
||||||
INCMP quit 9
|
INCMP quit 9
|
||||||
INCMP > 11
|
INCMP > 11
|
||||||
INCMP < 22
|
INCMP < 22
|
||||||
INCMP view_voucher *
|
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
Chagua nambari au ishara kutoka kwa salio zako:
|
|
||||||
{{.get_vouchers}}
|
|
@ -1,2 +0,0 @@
|
|||||||
Enter PIN to confirm selection:
|
|
||||||
{{.view_voucher}}
|
|
@ -1,11 +0,0 @@
|
|||||||
RELOAD view_voucher
|
|
||||||
MAP view_voucher
|
|
||||||
MOUT back 0
|
|
||||||
MOUT quit 9
|
|
||||||
LOAD authorize_account 6
|
|
||||||
HALT
|
|
||||||
RELOAD authorize_account
|
|
||||||
CATCH incorrect_pin flag_incorrect_pin 1
|
|
||||||
INCMP _ 0
|
|
||||||
INCMP quit 9
|
|
||||||
INCMP voucher_set *
|
|
@ -1,2 +0,0 @@
|
|||||||
Weka PIN ili kuthibitisha chaguo:
|
|
||||||
{{.view_voucher}}
|
|
@ -1 +0,0 @@
|
|||||||
Success! symbol is now your active voucher.
|
|
@ -1,5 +0,0 @@
|
|||||||
MOUT back 0
|
|
||||||
MOUT quit 9
|
|
||||||
HALT
|
|
||||||
INCMP ^ 0
|
|
||||||
INCMP quit 9
|
|
@ -1 +0,0 @@
|
|||||||
Hongera! symbol ni Sarafu inayotumika sasa.
|
|
Loading…
Reference in New Issue
Block a user