trigger-balance-reload #193
@ -151,7 +151,7 @@ func GetTemporaryVoucherData(ctx context.Context, store DataStore, sessionId str
|
|||||||
return data, nil
|
return data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateVoucherData sets the active voucher data in the DataStore.
|
// UpdateVoucherData updates the active voucher data in the DataStore.
|
||||||
func UpdateVoucherData(ctx context.Context, store DataStore, sessionId string, data *dataserviceapi.TokenHoldings) error {
|
func UpdateVoucherData(ctx context.Context, store DataStore, sessionId string, data *dataserviceapi.TokenHoldings) error {
|
||||||
logg.TraceCtxf(ctx, "dtal", "data", data)
|
logg.TraceCtxf(ctx, "dtal", "data", data)
|
||||||
// Active voucher data entries
|
// Active voucher data entries
|
||||||
|
@ -10,7 +10,6 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"git.defalsify.org/vise.git/asm"
|
"git.defalsify.org/vise.git/asm"
|
||||||
"github.com/grassrootseconomics/eth-custodial/pkg/api"
|
|
||||||
|
|
||||||
"git.defalsify.org/vise.git/cache"
|
"git.defalsify.org/vise.git/cache"
|
||||||
"git.defalsify.org/vise.git/db"
|
"git.defalsify.org/vise.git/db"
|
||||||
@ -25,14 +24,13 @@ import (
|
|||||||
"gopkg.in/leonelquinteros/gotext.v1"
|
"gopkg.in/leonelquinteros/gotext.v1"
|
||||||
|
|
||||||
"git.grassecon.net/urdt/ussd/internal/storage"
|
"git.grassecon.net/urdt/ussd/internal/storage"
|
||||||
|
dataserviceapi "github.com/grassrootseconomics/ussd-data-service/pkg/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
logg = logging.NewVanilla().WithDomain("ussdmenuhandler")
|
logg = logging.NewVanilla().WithDomain("ussdmenuhandler")
|
||||||
scriptDir = path.Join("services", "registration")
|
scriptDir = path.Join("services", "registration")
|
||||||
translationDir = path.Join(scriptDir, "locale")
|
translationDir = path.Join(scriptDir, "locale")
|
||||||
okResponse *api.OKResponse
|
|
||||||
errResponse *api.ErrResponse
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Define the regex patterns as constants
|
// Define the regex patterns as constants
|
||||||
@ -1536,6 +1534,38 @@ func (h *Handlers) CheckVouchers(ctx context.Context, sym string, input []byte)
|
|||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check the current active sym and update the data
|
||||||
|
activeSym, _ := store.ReadEntry(ctx, sessionId, common.DATA_ACTIVE_SYM)
|
||||||
|
if activeSym != nil {
|
||||||
|
activeSymStr := string(activeSym)
|
||||||
|
|
||||||
|
// Find the matching voucher data
|
||||||
|
var activeData *dataserviceapi.TokenHoldings
|
||||||
|
for _, voucher := range vouchersResp {
|
||||||
|
if voucher.TokenSymbol == activeSymStr {
|
||||||
|
activeData = &voucher
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if activeData == nil {
|
||||||
|
logg.ErrorCtxf(ctx, "activeSym not found in vouchers", "activeSym", activeSymStr)
|
||||||
|
return res, fmt.Errorf("activeSym %s not found in vouchers", activeSymStr)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scale down the balance
|
||||||
|
scaledBalance := common.ScaleDownBalance(activeData.Balance, activeData.TokenDecimals)
|
||||||
|
|
||||||
|
// Update the balance field with the scaled value
|
||||||
|
activeData.Balance = scaledBalance
|
||||||
|
|
||||||
|
// Pass the matching voucher data to UpdateVoucherData
|
||||||
|
if err := common.UpdateVoucherData(ctx, h.userdataStore, sessionId, activeData); err != nil {
|
||||||
|
logg.ErrorCtxf(ctx, "failed on UpdateVoucherData", "error", err)
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data := common.ProcessVouchers(vouchersResp)
|
data := common.ProcessVouchers(vouchersResp)
|
||||||
|
|
||||||
// Store all voucher data
|
// Store all voucher data
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
LOAD set_default_voucher 8
|
LOAD set_default_voucher 8
|
||||||
RELOAD set_default_voucher
|
RELOAD set_default_voucher
|
||||||
LOAD check_balance 64
|
|
||||||
RELOAD check_balance
|
|
||||||
LOAD check_vouchers 10
|
LOAD check_vouchers 10
|
||||||
RELOAD check_vouchers
|
RELOAD check_vouchers
|
||||||
|
LOAD check_balance 64
|
||||||
|
RELOAD check_balance
|
||||||
CATCH api_failure flag_api_call_error 1
|
CATCH api_failure flag_api_call_error 1
|
||||||
MAP check_balance
|
MAP check_balance
|
||||||
MOUT send 1
|
MOUT send 1
|
||||||
|
Loading…
Reference in New Issue
Block a user