Compare commits
4 Commits
35d9d13442
...
e27905765c
| Author | SHA1 | Date | |
|---|---|---|---|
| e27905765c | |||
| 4ce9baa379 | |||
| e47415cc22 | |||
| 1f4d810e14 |
@ -51,6 +51,9 @@ func (h *MenuHandlers) ManageVouchers(ctx context.Context, sym string, input []b
|
|||||||
|
|
||||||
res.FlagReset = append(res.FlagReset, flag_no_active_voucher)
|
res.FlagReset = append(res.FlagReset, flag_no_active_voucher)
|
||||||
|
|
||||||
|
// add a variable to filter out the active voucher
|
||||||
|
activeSymStr := ""
|
||||||
|
|
||||||
// Check if user has an active voucher with proper error handling
|
// Check if user has an active voucher with proper error handling
|
||||||
activeSym, err := userStore.ReadEntry(ctx, sessionId, storedb.DATA_ACTIVE_SYM)
|
activeSym, err := userStore.ReadEntry(ctx, sessionId, storedb.DATA_ACTIVE_SYM)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -62,6 +65,8 @@ func (h *MenuHandlers) ManageVouchers(ctx context.Context, sym string, input []b
|
|||||||
defaultDec := firstVoucher.TokenDecimals
|
defaultDec := firstVoucher.TokenDecimals
|
||||||
defaultAddr := firstVoucher.TokenAddress
|
defaultAddr := firstVoucher.TokenAddress
|
||||||
|
|
||||||
|
activeSymStr = defaultSym
|
||||||
|
|
||||||
// Scale down the balance
|
// Scale down the balance
|
||||||
scaledBalance := store.ScaleDownBalance(defaultBal, defaultDec)
|
scaledBalance := store.ScaleDownBalance(defaultBal, defaultDec)
|
||||||
|
|
||||||
@ -89,10 +94,8 @@ func (h *MenuHandlers) ManageVouchers(ctx context.Context, sym string, input []b
|
|||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Update active voucher balance
|
|
||||||
activeSymStr := string(activeSym)
|
|
||||||
|
|
||||||
// Find the matching voucher data
|
// Find the matching voucher data
|
||||||
|
activeSymStr = string(activeSym)
|
||||||
var activeData *dataserviceapi.TokenHoldings
|
var activeData *dataserviceapi.TokenHoldings
|
||||||
for _, voucher := range vouchersResp {
|
for _, voucher := range vouchersResp {
|
||||||
if voucher.TokenSymbol == activeSymStr {
|
if voucher.TokenSymbol == activeSymStr {
|
||||||
@ -102,9 +105,10 @@ func (h *MenuHandlers) ManageVouchers(ctx context.Context, sym string, input []b
|
|||||||
}
|
}
|
||||||
|
|
||||||
if activeData == nil {
|
if activeData == nil {
|
||||||
logg.ErrorCtxf(ctx, "activeSym not found in vouchers, setting the first voucher as the default", "activeSym", activeSymStr)
|
logg.InfoCtxf(ctx, "activeSym not found in vouchers, setting the first voucher as the default", "activeSym", activeSymStr)
|
||||||
firstVoucher := vouchersResp[0]
|
firstVoucher := vouchersResp[0]
|
||||||
activeData = &firstVoucher
|
activeData = &firstVoucher
|
||||||
|
activeSymStr = string(activeData.TokenSymbol)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Scale down the balance
|
// Scale down the balance
|
||||||
@ -120,8 +124,17 @@ func (h *MenuHandlers) ManageVouchers(ctx context.Context, sym string, input []b
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store all voucher data
|
// Filter out the active voucher from vouchersResp
|
||||||
data := store.ProcessVouchers(vouchersResp)
|
filteredVouchers := make([]dataserviceapi.TokenHoldings, 0, len(vouchersResp))
|
||||||
|
for _, v := range vouchersResp {
|
||||||
|
if v.TokenSymbol != activeSymStr {
|
||||||
|
filteredVouchers = append(filteredVouchers, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Store all voucher data (excluding the current active voucher)
|
||||||
|
data := store.ProcessVouchers(filteredVouchers)
|
||||||
|
|
||||||
dataMap := map[storedb.DataTyp]string{
|
dataMap := map[storedb.DataTyp]string{
|
||||||
storedb.DATA_VOUCHER_SYMBOLS: data.Symbols,
|
storedb.DATA_VOUCHER_SYMBOLS: data.Symbols,
|
||||||
storedb.DATA_VOUCHER_BALANCES: data.Balances,
|
storedb.DATA_VOUCHER_BALANCES: data.Balances,
|
||||||
@ -140,7 +153,7 @@ func (h *MenuHandlers) ManageVouchers(ctx context.Context, sym string, input []b
|
|||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetVoucherList fetches the list of vouchers and formats them.
|
// GetVoucherList fetches the list of vouchers from the store and formats them.
|
||||||
func (h *MenuHandlers) GetVoucherList(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
func (h *MenuHandlers) GetVoucherList(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
||||||
var res resource.Result
|
var res resource.Result
|
||||||
sessionId, ok := ctx.Value("SessionId").(string)
|
sessionId, ok := ctx.Value("SessionId").(string)
|
||||||
@ -191,6 +204,10 @@ func (h *MenuHandlers) ViewVoucher(ctx context.Context, sym string, input []byte
|
|||||||
flag_incorrect_voucher, _ := h.flagManager.GetFlag("flag_incorrect_voucher")
|
flag_incorrect_voucher, _ := h.flagManager.GetFlag("flag_incorrect_voucher")
|
||||||
|
|
||||||
inputStr := string(input)
|
inputStr := string(input)
|
||||||
|
if inputStr == "0" || inputStr == "99" || inputStr == "88" || inputStr == "98" {
|
||||||
|
res.FlagReset = append(res.FlagReset, flag_incorrect_voucher)
|
||||||
|
return res, nil
|
||||||
|
}
|
||||||
|
|
||||||
metadata, err := store.GetVoucherData(ctx, h.userdataStore, sessionId, inputStr)
|
metadata, err := store.GetVoucherData(ctx, h.userdataStore, sessionId, inputStr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -73,8 +73,8 @@ func TestManageVouchers(t *testing.T) {
|
|||||||
Balance: "100",
|
Balance: "100",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
expectedVoucherSymbols: []byte("1:TOKEN1"),
|
expectedVoucherSymbols: []byte(""),
|
||||||
expectedUpdatedAddress: []byte("0x123"),
|
expectedUpdatedAddress: []byte(""),
|
||||||
expectedResult: resource.Result{
|
expectedResult: resource.Result{
|
||||||
FlagReset: []uint32{flag_api_error, flag_no_active_voucher},
|
FlagReset: []uint32{flag_api_error, flag_no_active_voucher},
|
||||||
},
|
},
|
||||||
@ -86,7 +86,7 @@ func TestManageVouchers(t *testing.T) {
|
|||||||
{TokenAddress: "0x41c188d63Qa", TokenSymbol: "MILO", TokenDecimals: "4", Balance: "200"},
|
{TokenAddress: "0x41c188d63Qa", TokenSymbol: "MILO", TokenDecimals: "4", Balance: "200"},
|
||||||
},
|
},
|
||||||
storedActiveVoucher: "SRF",
|
storedActiveVoucher: "SRF",
|
||||||
expectedVoucherSymbols: []byte("1:SRF\n2:MILO"),
|
expectedVoucherSymbols: []byte("1:MILO"),
|
||||||
expectedUpdatedAddress: []byte("0xd4c288865Ce"),
|
expectedUpdatedAddress: []byte("0xd4c288865Ce"),
|
||||||
expectedResult: resource.Result{
|
expectedResult: resource.Result{
|
||||||
FlagReset: []uint32{flag_api_error, flag_no_active_voucher},
|
FlagReset: []uint32{flag_api_error, flag_no_active_voucher},
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user