Expose methods required for the stream sync service #147
| @ -1,4 +1,4 @@ | |||||||
| package utils | package common | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"encoding/binary" | 	"encoding/binary" | ||||||
| @ -151,9 +151,9 @@ func (h *Handlers) createAccountNoExist(ctx context.Context, sessionId string, r | |||||||
| 	trackingId := okResponse.Result["trackingId"].(string) | 	trackingId := okResponse.Result["trackingId"].(string) | ||||||
| 	publicKey := okResponse.Result["publicKey"].(string) | 	publicKey := okResponse.Result["publicKey"].(string) | ||||||
| 
 | 
 | ||||||
| 	data := map[utils.DataTyp]string{ | 	data := map[common.DataTyp]string{ | ||||||
| 		utils.DATA_TRACKING_ID: trackingId, | 		common.DATA_TRACKING_ID: trackingId, | ||||||
| 		utils.DATA_PUBLIC_KEY:  publicKey, | 		common.DATA_PUBLIC_KEY:  publicKey, | ||||||
| 	} | 	} | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	for key, value := range data { | 	for key, value := range data { | ||||||
| @ -166,7 +166,7 @@ func (h *Handlers) createAccountNoExist(ctx context.Context, sessionId string, r | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	err = store.WriteEntry(ctx, publicKeyNormalized, utils.DATA_PUBLIC_KEY_REVERSE, []byte(sessionId)) | 	err = store.WriteEntry(ctx, publicKeyNormalized, common.DATA_PUBLIC_KEY_REVERSE, []byte(sessionId)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| @ -186,7 +186,7 @@ func (h *Handlers) CreateAccount(ctx context.Context, sym string, input []byte) | |||||||
| 		return res, fmt.Errorf("missing session") | 		return res, fmt.Errorf("missing session") | ||||||
| 	} | 	} | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	_, err = store.ReadEntry(ctx, sessionId, utils.DATA_ACCOUNT_CREATED) | 	_, err = store.ReadEntry(ctx, sessionId, common.DATA_ACCOUNT_CREATED) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if db.IsNotFound(err) { | 		if db.IsNotFound(err) { | ||||||
| 			logg.Printf(logging.LVL_INFO, "Creating an account because it doesn't exist") | 			logg.Printf(logging.LVL_INFO, "Creating an account because it doesn't exist") | ||||||
| @ -242,7 +242,7 @@ func (h *Handlers) SaveTemporaryPin(ctx context.Context, sym string, input []byt | |||||||
| 	res.FlagReset = append(res.FlagReset, flag_incorrect_pin) | 	res.FlagReset = append(res.FlagReset, flag_incorrect_pin) | ||||||
| 
 | 
 | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	err = store.WriteEntry(ctx, sessionId, utils.DATA_TEMPORARY_PIN, []byte(accountPIN)) | 	err = store.WriteEntry(ctx, sessionId, common.DATA_TEMPORARY_PIN, []byte(accountPIN)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| @ -259,7 +259,7 @@ func (h *Handlers) ConfirmPinChange(ctx context.Context, sym string, input []byt | |||||||
| 	flag_pin_mismatch, _ := h.flagManager.GetFlag("flag_pin_mismatch") | 	flag_pin_mismatch, _ := h.flagManager.GetFlag("flag_pin_mismatch") | ||||||
| 
 | 
 | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	temporaryPin, err := store.ReadEntry(ctx, sessionId, utils.DATA_TEMPORARY_PIN) | 	temporaryPin, err := store.ReadEntry(ctx, sessionId, common.DATA_TEMPORARY_PIN) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| @ -268,7 +268,7 @@ func (h *Handlers) ConfirmPinChange(ctx context.Context, sym string, input []byt | |||||||
| 	} else { | 	} else { | ||||||
| 		res.FlagSet = append(res.FlagSet, flag_pin_mismatch) | 		res.FlagSet = append(res.FlagSet, flag_pin_mismatch) | ||||||
| 	} | 	} | ||||||
| 	err = store.WriteEntry(ctx, sessionId, utils.DATA_ACCOUNT_PIN, []byte(temporaryPin)) | 	err = store.WriteEntry(ctx, sessionId, common.DATA_ACCOUNT_PIN, []byte(temporaryPin)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| @ -290,7 +290,7 @@ func (h *Handlers) VerifyCreatePin(ctx context.Context, sym string, input []byte | |||||||
| 		return res, fmt.Errorf("missing session") | 		return res, fmt.Errorf("missing session") | ||||||
| 	} | 	} | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	temporaryPin, err := store.ReadEntry(ctx, sessionId, utils.DATA_TEMPORARY_PIN) | 	temporaryPin, err := store.ReadEntry(ctx, sessionId, common.DATA_TEMPORARY_PIN) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| @ -303,7 +303,7 @@ func (h *Handlers) VerifyCreatePin(ctx context.Context, sym string, input []byte | |||||||
| 		res.FlagSet = []uint32{flag_pin_mismatch} | 		res.FlagSet = []uint32{flag_pin_mismatch} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	err = store.WriteEntry(ctx, sessionId, utils.DATA_ACCOUNT_PIN, []byte(temporaryPin)) | 	err = store.WriteEntry(ctx, sessionId, common.DATA_ACCOUNT_PIN, []byte(temporaryPin)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| @ -335,7 +335,7 @@ func (h *Handlers) SaveFirstname(ctx context.Context, sym string, input []byte) | |||||||
| 		} | 		} | ||||||
| 		firstName := string(input) | 		firstName := string(input) | ||||||
| 		store := h.userdataStore | 		store := h.userdataStore | ||||||
| 		err = store.WriteEntry(ctx, sessionId, utils.DATA_FIRST_NAME, []byte(firstName)) | 		err = store.WriteEntry(ctx, sessionId, common.DATA_FIRST_NAME, []byte(firstName)) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return res, err | 			return res, err | ||||||
| 		} | 		} | ||||||
| @ -358,7 +358,7 @@ func (h *Handlers) SaveFamilyname(ctx context.Context, sym string, input []byte) | |||||||
| 		} | 		} | ||||||
| 		familyName := string(input) | 		familyName := string(input) | ||||||
| 		store := h.userdataStore | 		store := h.userdataStore | ||||||
| 		err = store.WriteEntry(ctx, sessionId, utils.DATA_FAMILY_NAME, []byte(familyName)) | 		err = store.WriteEntry(ctx, sessionId, common.DATA_FAMILY_NAME, []byte(familyName)) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return res, err | 			return res, err | ||||||
| 		} | 		} | ||||||
| @ -380,7 +380,7 @@ func (h *Handlers) SaveYob(ctx context.Context, sym string, input []byte) (resou | |||||||
| 	if len(input) == 4 { | 	if len(input) == 4 { | ||||||
| 		yob := string(input) | 		yob := string(input) | ||||||
| 		store := h.userdataStore | 		store := h.userdataStore | ||||||
| 		err = store.WriteEntry(ctx, sessionId, utils.DATA_YOB, []byte(yob)) | 		err = store.WriteEntry(ctx, sessionId, common.DATA_YOB, []byte(yob)) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return res, err | 			return res, err | ||||||
| 		} | 		} | ||||||
| @ -403,7 +403,7 @@ func (h *Handlers) SaveLocation(ctx context.Context, sym string, input []byte) ( | |||||||
| 		} | 		} | ||||||
| 		location := string(input) | 		location := string(input) | ||||||
| 		store := h.userdataStore | 		store := h.userdataStore | ||||||
| 		err = store.WriteEntry(ctx, sessionId, utils.DATA_LOCATION, []byte(location)) | 		err = store.WriteEntry(ctx, sessionId, common.DATA_LOCATION, []byte(location)) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return res, err | 			return res, err | ||||||
| 		} | 		} | ||||||
| @ -426,7 +426,7 @@ func (h *Handlers) SaveGender(ctx context.Context, sym string, input []byte) (re | |||||||
| 	} | 	} | ||||||
| 	gender := strings.Split(symbol, "_")[1] | 	gender := strings.Split(symbol, "_")[1] | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	err = store.WriteEntry(ctx, sessionId, utils.DATA_GENDER, []byte(gender)) | 	err = store.WriteEntry(ctx, sessionId, common.DATA_GENDER, []byte(gender)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, nil | 		return res, nil | ||||||
| 	} | 	} | ||||||
| @ -445,7 +445,7 @@ func (h *Handlers) SaveOfferings(ctx context.Context, sym string, input []byte) | |||||||
| 	if len(input) > 0 { | 	if len(input) > 0 { | ||||||
| 		offerings := string(input) | 		offerings := string(input) | ||||||
| 		store := h.userdataStore | 		store := h.userdataStore | ||||||
| 		err = store.WriteEntry(ctx, sessionId, utils.DATA_OFFERINGS, []byte(offerings)) | 		err = store.WriteEntry(ctx, sessionId, common.DATA_OFFERINGS, []byte(offerings)) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return res, nil | 			return res, nil | ||||||
| 		} | 		} | ||||||
| @ -481,7 +481,7 @@ func (h *Handlers) CheckIdentifier(ctx context.Context, sym string, input []byte | |||||||
| 		return res, fmt.Errorf("missing session") | 		return res, fmt.Errorf("missing session") | ||||||
| 	} | 	} | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	publicKey, _ := store.ReadEntry(ctx, sessionId, utils.DATA_PUBLIC_KEY) | 	publicKey, _ := store.ReadEntry(ctx, sessionId, common.DATA_PUBLIC_KEY) | ||||||
| 
 | 
 | ||||||
| 	res.Content = string(publicKey) | 	res.Content = string(publicKey) | ||||||
| 
 | 
 | ||||||
| @ -502,7 +502,7 @@ func (h *Handlers) Authorize(ctx context.Context, sym string, input []byte) (res | |||||||
| 	flag_allow_update, _ := h.flagManager.GetFlag("flag_allow_update") | 	flag_allow_update, _ := h.flagManager.GetFlag("flag_allow_update") | ||||||
| 
 | 
 | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	AccountPin, err := store.ReadEntry(ctx, sessionId, utils.DATA_ACCOUNT_PIN) | 	AccountPin, err := store.ReadEntry(ctx, sessionId, common.DATA_ACCOUNT_PIN) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| @ -548,7 +548,7 @@ func (h *Handlers) CheckAccountStatus(ctx context.Context, sym string, input []b | |||||||
| 		return res, fmt.Errorf("missing session") | 		return res, fmt.Errorf("missing session") | ||||||
| 	} | 	} | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	publicKey, err := store.ReadEntry(ctx, sessionId, utils.DATA_PUBLIC_KEY) | 	publicKey, err := store.ReadEntry(ctx, sessionId, common.DATA_PUBLIC_KEY) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| @ -654,7 +654,7 @@ func (h *Handlers) CheckBalance(ctx context.Context, sym string, input []byte) ( | |||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 
 | 
 | ||||||
| 	// 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, common.DATA_ACTIVE_SYM) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if db.IsNotFound(err) { | 		if db.IsNotFound(err) { | ||||||
| 			balance := "0.00" | 			balance := "0.00" | ||||||
| @ -665,7 +665,7 @@ func (h *Handlers) CheckBalance(ctx context.Context, sym string, input []byte) ( | |||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	activeBal, err := store.ReadEntry(ctx, sessionId, utils.DATA_ACTIVE_BAL) | 	activeBal, err := store.ReadEntry(ctx, sessionId, common.DATA_ACTIVE_BAL) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| @ -687,7 +687,7 @@ func (h *Handlers) FetchCustodialBalances(ctx context.Context, sym string, input | |||||||
| 	balanceType := strings.Split(symbol, "_")[0] | 	balanceType := strings.Split(symbol, "_")[0] | ||||||
| 
 | 
 | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	publicKey, err := store.ReadEntry(ctx, sessionId, utils.DATA_PUBLIC_KEY) | 	publicKey, err := store.ReadEntry(ctx, sessionId, common.DATA_PUBLIC_KEY) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| @ -737,7 +737,7 @@ func (h *Handlers) ValidateRecipient(ctx context.Context, sym string, input []by | |||||||
| 			return res, nil | 			return res, nil | ||||||
| 		} | 		} | ||||||
| 		store := h.userdataStore | 		store := h.userdataStore | ||||||
| 		err = store.WriteEntry(ctx, sessionId, utils.DATA_RECIPIENT, []byte(recipient)) | 		err = store.WriteEntry(ctx, sessionId, common.DATA_RECIPIENT, []byte(recipient)) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return res, nil | 			return res, nil | ||||||
| 		} | 		} | ||||||
| @ -760,12 +760,12 @@ func (h *Handlers) TransactionReset(ctx context.Context, sym string, input []byt | |||||||
| 	flag_invalid_recipient, _ := h.flagManager.GetFlag("flag_invalid_recipient") | 	flag_invalid_recipient, _ := h.flagManager.GetFlag("flag_invalid_recipient") | ||||||
| 	flag_invalid_recipient_with_invite, _ := h.flagManager.GetFlag("flag_invalid_recipient_with_invite") | 	flag_invalid_recipient_with_invite, _ := h.flagManager.GetFlag("flag_invalid_recipient_with_invite") | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	err = store.WriteEntry(ctx, sessionId, utils.DATA_AMOUNT, []byte("")) | 	err = store.WriteEntry(ctx, sessionId, common.DATA_AMOUNT, []byte("")) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, nil | 		return res, nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	err = store.WriteEntry(ctx, sessionId, utils.DATA_RECIPIENT, []byte("")) | 	err = store.WriteEntry(ctx, sessionId, common.DATA_RECIPIENT, []byte("")) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, nil | 		return res, nil | ||||||
| 	} | 	} | ||||||
| @ -787,7 +787,7 @@ func (h *Handlers) ResetTransactionAmount(ctx context.Context, sym string, input | |||||||
| 
 | 
 | ||||||
| 	flag_invalid_amount, _ := h.flagManager.GetFlag("flag_invalid_amount") | 	flag_invalid_amount, _ := h.flagManager.GetFlag("flag_invalid_amount") | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	err = store.WriteEntry(ctx, sessionId, utils.DATA_AMOUNT, []byte("")) | 	err = store.WriteEntry(ctx, sessionId, common.DATA_AMOUNT, []byte("")) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, nil | 		return res, nil | ||||||
| 	} | 	} | ||||||
| @ -809,7 +809,7 @@ func (h *Handlers) MaxAmount(ctx context.Context, sym string, input []byte) (res | |||||||
| 	} | 	} | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 
 | 
 | ||||||
| 	activeBal, err := store.ReadEntry(ctx, sessionId, utils.DATA_ACTIVE_BAL) | 	activeBal, err := store.ReadEntry(ctx, sessionId, common.DATA_ACTIVE_BAL) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| @ -834,7 +834,7 @@ func (h *Handlers) ValidateAmount(ctx context.Context, sym string, input []byte) | |||||||
| 	var balanceValue float64 | 	var balanceValue float64 | ||||||
| 
 | 
 | ||||||
| 	// retrieve the active balance
 | 	// retrieve the active balance
 | ||||||
| 	activeBal, err := store.ReadEntry(ctx, sessionId, utils.DATA_ACTIVE_BAL) | 	activeBal, err := store.ReadEntry(ctx, sessionId, common.DATA_ACTIVE_BAL) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| @ -860,7 +860,7 @@ func (h *Handlers) ValidateAmount(ctx context.Context, sym string, input []byte) | |||||||
| 
 | 
 | ||||||
| 	// Format the amount with 2 decimal places before saving
 | 	// Format the amount with 2 decimal places before saving
 | ||||||
| 	formattedAmount := fmt.Sprintf("%.2f", inputAmount) | 	formattedAmount := fmt.Sprintf("%.2f", inputAmount) | ||||||
| 	err = store.WriteEntry(ctx, sessionId, utils.DATA_AMOUNT, []byte(formattedAmount)) | 	err = store.WriteEntry(ctx, sessionId, common.DATA_AMOUNT, []byte(formattedAmount)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| @ -878,7 +878,7 @@ func (h *Handlers) GetRecipient(ctx context.Context, sym string, input []byte) ( | |||||||
| 		return res, fmt.Errorf("missing session") | 		return res, fmt.Errorf("missing session") | ||||||
| 	} | 	} | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	recipient, _ := store.ReadEntry(ctx, sessionId, utils.DATA_RECIPIENT) | 	recipient, _ := store.ReadEntry(ctx, sessionId, common.DATA_RECIPIENT) | ||||||
| 
 | 
 | ||||||
| 	res.Content = string(recipient) | 	res.Content = string(recipient) | ||||||
| 
 | 
 | ||||||
| @ -910,12 +910,12 @@ func (h *Handlers) GetAmount(ctx context.Context, sym string, input []byte) (res | |||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 
 | 
 | ||||||
| 	// retrieve the active symbol
 | 	// retrieve the active symbol
 | ||||||
| 	activeSym, err := store.ReadEntry(ctx, sessionId, utils.DATA_ACTIVE_SYM) | 	activeSym, err := store.ReadEntry(ctx, sessionId, common.DATA_ACTIVE_SYM) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	amount, _ := store.ReadEntry(ctx, sessionId, utils.DATA_AMOUNT) | 	amount, _ := store.ReadEntry(ctx, sessionId, common.DATA_AMOUNT) | ||||||
| 
 | 
 | ||||||
| 	res.Content = fmt.Sprintf("%s %s", string(amount), string(activeSym)) | 	res.Content = fmt.Sprintf("%s %s", string(amount), string(activeSym)) | ||||||
| 
 | 
 | ||||||
| @ -939,11 +939,11 @@ func (h *Handlers) InitiateTransaction(ctx context.Context, sym string, input [] | |||||||
| 	// Use the amount, recipient and sender to call the API and initialize the transaction
 | 	// Use the amount, recipient and sender to call the API and initialize the transaction
 | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 
 | 
 | ||||||
| 	amount, _ := store.ReadEntry(ctx, sessionId, utils.DATA_AMOUNT) | 	amount, _ := store.ReadEntry(ctx, sessionId, common.DATA_AMOUNT) | ||||||
| 
 | 
 | ||||||
| 	recipient, _ := store.ReadEntry(ctx, sessionId, utils.DATA_RECIPIENT) | 	recipient, _ := store.ReadEntry(ctx, sessionId, common.DATA_RECIPIENT) | ||||||
| 
 | 
 | ||||||
| 	activeSym, _ := store.ReadEntry(ctx, sessionId, utils.DATA_ACTIVE_SYM) | 	activeSym, _ := store.ReadEntry(ctx, sessionId, common.DATA_ACTIVE_SYM) | ||||||
| 
 | 
 | ||||||
| 	res.Content = l.Get("Your request has been sent. %s will receive %s %s from %s.", string(recipient), string(amount), string(activeSym), string(sessionId)) | 	res.Content = l.Get("Your request has been sent. %s will receive %s %s from %s.", string(recipient), string(amount), string(activeSym), string(sessionId)) | ||||||
| 
 | 
 | ||||||
| @ -983,12 +983,12 @@ func (h *Handlers) GetProfileInfo(ctx context.Context, sym string, input []byte) | |||||||
| 	} | 	} | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	// Retrieve user data as strings with fallback to defaultValue
 | 	// Retrieve user data as strings with fallback to defaultValue
 | ||||||
| 	firstName := getEntryOrDefault(store.ReadEntry(ctx, sessionId, utils.DATA_FIRST_NAME)) | 	firstName := getEntryOrDefault(store.ReadEntry(ctx, sessionId, common.DATA_FIRST_NAME)) | ||||||
| 	familyName := getEntryOrDefault(store.ReadEntry(ctx, sessionId, utils.DATA_FAMILY_NAME)) | 	familyName := getEntryOrDefault(store.ReadEntry(ctx, sessionId, common.DATA_FAMILY_NAME)) | ||||||
| 	yob := getEntryOrDefault(store.ReadEntry(ctx, sessionId, utils.DATA_YOB)) | 	yob := getEntryOrDefault(store.ReadEntry(ctx, sessionId, common.DATA_YOB)) | ||||||
| 	gender := getEntryOrDefault(store.ReadEntry(ctx, sessionId, utils.DATA_GENDER)) | 	gender := getEntryOrDefault(store.ReadEntry(ctx, sessionId, common.DATA_GENDER)) | ||||||
| 	location := getEntryOrDefault(store.ReadEntry(ctx, sessionId, utils.DATA_LOCATION)) | 	location := getEntryOrDefault(store.ReadEntry(ctx, sessionId, common.DATA_LOCATION)) | ||||||
| 	offerings := getEntryOrDefault(store.ReadEntry(ctx, sessionId, utils.DATA_OFFERINGS)) | 	offerings := getEntryOrDefault(store.ReadEntry(ctx, sessionId, common.DATA_OFFERINGS)) | ||||||
| 
 | 
 | ||||||
| 	// Construct the full name
 | 	// Construct the full name
 | ||||||
| 	name := defaultValue | 	name := defaultValue | ||||||
| @ -1045,11 +1045,11 @@ func (h *Handlers) SetDefaultVoucher(ctx context.Context, sym string, input []by | |||||||
| 	flag_no_active_voucher, _ := h.flagManager.GetFlag("flag_no_active_voucher") | 	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, common.DATA_ACTIVE_SYM) | ||||||
| 
 | 
 | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if db.IsNotFound(err) { | 		if db.IsNotFound(err) { | ||||||
| 			publicKey, err := store.ReadEntry(ctx, sessionId, utils.DATA_PUBLIC_KEY) | 			publicKey, err := store.ReadEntry(ctx, sessionId, common.DATA_PUBLIC_KEY) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return res, nil | 				return res, nil | ||||||
| 			} | 			} | ||||||
| @ -1072,12 +1072,12 @@ func (h *Handlers) SetDefaultVoucher(ctx context.Context, sym string, input []by | |||||||
| 			defaultBal := firstVoucher.Balance | 			defaultBal := firstVoucher.Balance | ||||||
| 
 | 
 | ||||||
| 			// set the active symbol
 | 			// set the active symbol
 | ||||||
| 			err = store.WriteEntry(ctx, sessionId, utils.DATA_ACTIVE_SYM, []byte(defaultSym)) | 			err = store.WriteEntry(ctx, sessionId, common.DATA_ACTIVE_SYM, []byte(defaultSym)) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return res, err | 				return res, err | ||||||
| 			} | 			} | ||||||
| 			// set the active balance
 | 			// set the active balance
 | ||||||
| 			err = store.WriteEntry(ctx, sessionId, utils.DATA_ACTIVE_BAL, []byte(defaultBal)) | 			err = store.WriteEntry(ctx, sessionId, common.DATA_ACTIVE_BAL, []byte(defaultBal)) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return res, err | 				return res, err | ||||||
| 			} | 			} | ||||||
| @ -1103,7 +1103,7 @@ func (h *Handlers) CheckVouchers(ctx context.Context, sym string, input []byte) | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	store := h.userdataStore | 	store := h.userdataStore | ||||||
| 	publicKey, err := store.ReadEntry(ctx, sessionId, utils.DATA_PUBLIC_KEY) | 	publicKey, err := store.ReadEntry(ctx, sessionId, common.DATA_PUBLIC_KEY) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, nil | 		return res, nil | ||||||
| 	} | 	} | ||||||
| @ -1207,11 +1207,11 @@ func (h *Handlers) ViewVoucher(ctx context.Context, sym string, input []byte) (r | |||||||
| 
 | 
 | ||||||
| 	// If a match is found, write the temporary sym and balance
 | 	// If a match is found, write the temporary sym and balance
 | ||||||
| 	if matchedSymbol != "" && matchedBalance != "" { | 	if matchedSymbol != "" && matchedBalance != "" { | ||||||
| 		err = store.WriteEntry(ctx, sessionId, utils.DATA_TEMPORARY_SYM, []byte(matchedSymbol)) | 		err = store.WriteEntry(ctx, sessionId, common.DATA_TEMPORARY_SYM, []byte(matchedSymbol)) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return res, err | 			return res, err | ||||||
| 		} | 		} | ||||||
| 		err = store.WriteEntry(ctx, sessionId, utils.DATA_TEMPORARY_BAL, []byte(matchedBalance)) | 		err = store.WriteEntry(ctx, sessionId, common.DATA_TEMPORARY_BAL, []byte(matchedBalance)) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return res, err | 			return res, err | ||||||
| 		} | 		} | ||||||
| @ -1269,34 +1269,34 @@ func (h *Handlers) SetVoucher(ctx context.Context, sym string, input []byte) (re | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// get the current temporary symbol
 | 	// get the current temporary symbol
 | ||||||
| 	temporarySym, err := store.ReadEntry(ctx, sessionId, utils.DATA_TEMPORARY_SYM) | 	temporarySym, err := store.ReadEntry(ctx, sessionId, common.DATA_TEMPORARY_SYM) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| 	// get the current temporary balance
 | 	// get the current temporary balance
 | ||||||
| 	temporaryBal, err := store.ReadEntry(ctx, sessionId, utils.DATA_TEMPORARY_BAL) | 	temporaryBal, err := store.ReadEntry(ctx, sessionId, common.DATA_TEMPORARY_BAL) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// set the active symbol
 | 	// set the active symbol
 | ||||||
| 	err = store.WriteEntry(ctx, sessionId, utils.DATA_ACTIVE_SYM, []byte(temporarySym)) | 	err = store.WriteEntry(ctx, sessionId, common.DATA_ACTIVE_SYM, []byte(temporarySym)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| 	// set the active balance
 | 	// set the active balance
 | ||||||
| 	err = store.WriteEntry(ctx, sessionId, utils.DATA_ACTIVE_BAL, []byte(temporaryBal)) | 	err = store.WriteEntry(ctx, sessionId, common.DATA_ACTIVE_BAL, []byte(temporaryBal)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// reset the temporary symbol
 | 	// reset the temporary symbol
 | ||||||
| 	err = store.WriteEntry(ctx, sessionId, utils.DATA_TEMPORARY_SYM, []byte("")) | 	err = store.WriteEntry(ctx, sessionId, common.DATA_TEMPORARY_SYM, []byte("")) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
| 	// reset the temporary balance
 | 	// reset the temporary balance
 | ||||||
| 	err = store.WriteEntry(ctx, sessionId, utils.DATA_TEMPORARY_BAL, []byte("")) | 	err = store.WriteEntry(ctx, sessionId, common.DATA_TEMPORARY_BAL, []byte("")) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return res, err | 		return res, err | ||||||
| 	} | 	} | ||||||
|  | |||||||
| @ -19,7 +19,6 @@ import ( | |||||||
| 	"git.grassecon.net/urdt/ussd/internal/testutil/mocks" | 	"git.grassecon.net/urdt/ussd/internal/testutil/mocks" | ||||||
| 	"git.grassecon.net/urdt/ussd/internal/testutil/testservice" | 	"git.grassecon.net/urdt/ussd/internal/testutil/testservice" | ||||||
| 
 | 
 | ||||||
| 	"git.grassecon.net/urdt/ussd/internal/utils" |  | ||||||
| 	"git.grassecon.net/urdt/ussd/common" | 	"git.grassecon.net/urdt/ussd/common" | ||||||
| 	"github.com/alecthomas/assert/v2" | 	"github.com/alecthomas/assert/v2" | ||||||
| 	"github.com/grassrootseconomics/eth-custodial/pkg/api" | 	"github.com/grassrootseconomics/eth-custodial/pkg/api" | ||||||
| @ -119,12 +118,12 @@ func TestCreateAccount(t *testing.T) { | |||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			publicKey := tt.serverResponse.Result["publicKey"].(string) | 			publicKey := tt.serverResponse.Result["publicKey"].(string) | ||||||
| 			data := map[utils.DataTyp]string{ | 			data := map[common.DataTyp]string{ | ||||||
| 				utils.DATA_TRACKING_ID: tt.serverResponse.Result["trackingId"].(string), | 				common.DATA_TRACKING_ID: tt.serverResponse.Result["trackingId"].(string), | ||||||
| 				utils.DATA_PUBLIC_KEY:  publicKey, | 				common.DATA_PUBLIC_KEY:  publicKey, | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_ACCOUNT_CREATED).Return([]byte(""), notFoundErr) | 			mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_ACCOUNT_CREATED).Return([]byte(""), notFoundErr) | ||||||
| 			mockCreateAccountService.On("CreateAccount").Return(tt.serverResponse, nil) | 			mockCreateAccountService.On("CreateAccount").Return(tt.serverResponse, nil) | ||||||
| 
 | 
 | ||||||
| 			for key, value := range data { | 			for key, value := range data { | ||||||
| @ -135,7 +134,7 @@ func TestCreateAccount(t *testing.T) { | |||||||
| 				t.Fatal(err) | 				t.Fatal(err) | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			mockDataStore.On("WriteEntry", ctx, publicKeyNormalized, utils.DATA_PUBLIC_KEY_REVERSE, []byte(sessionId)).Return(nil) | 			mockDataStore.On("WriteEntry", ctx, publicKeyNormalized, common.DATA_PUBLIC_KEY_REVERSE, []byte(sessionId)).Return(nil) | ||||||
| 
 | 
 | ||||||
| 			// Call the method you want to test
 | 			// Call the method you want to test
 | ||||||
| 			res, err := h.CreateAccount(ctx, "create_account", []byte("some-input")) | 			res, err := h.CreateAccount(ctx, "create_account", []byte("some-input")) | ||||||
| @ -181,7 +180,7 @@ func TestSaveFirstname(t *testing.T) { | |||||||
| 	ctx := context.WithValue(context.Background(), "SessionId", sessionId) | 	ctx := context.WithValue(context.Background(), "SessionId", sessionId) | ||||||
| 
 | 
 | ||||||
| 	// Set up the expected behavior of the mock
 | 	// Set up the expected behavior of the mock
 | ||||||
| 	mockStore.On("WriteEntry", ctx, sessionId, utils.DATA_FIRST_NAME, []byte(firstName)).Return(nil) | 	mockStore.On("WriteEntry", ctx, sessionId, common.DATA_FIRST_NAME, []byte(firstName)).Return(nil) | ||||||
| 
 | 
 | ||||||
| 	// Create the Handlers instance with the mock store
 | 	// Create the Handlers instance with the mock store
 | ||||||
| 	h := &Handlers{ | 	h := &Handlers{ | ||||||
| @ -209,7 +208,7 @@ func TestSaveFamilyname(t *testing.T) { | |||||||
| 	ctx := context.WithValue(context.Background(), "SessionId", sessionId) | 	ctx := context.WithValue(context.Background(), "SessionId", sessionId) | ||||||
| 
 | 
 | ||||||
| 	// Set up the expected behavior of the mock
 | 	// Set up the expected behavior of the mock
 | ||||||
| 	mockStore.On("WriteEntry", ctx, sessionId, utils.DATA_FAMILY_NAME, []byte(familyName)).Return(nil) | 	mockStore.On("WriteEntry", ctx, sessionId, common.DATA_FAMILY_NAME, []byte(familyName)).Return(nil) | ||||||
| 
 | 
 | ||||||
| 	// Create the Handlers instance with the mock store
 | 	// Create the Handlers instance with the mock store
 | ||||||
| 	h := &Handlers{ | 	h := &Handlers{ | ||||||
| @ -269,7 +268,7 @@ func TestSaveTemporaryPin(t *testing.T) { | |||||||
| 		t.Run(tt.name, func(t *testing.T) { | 		t.Run(tt.name, func(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 			// Set up the expected behavior of the mock
 | 			// Set up the expected behavior of the mock
 | ||||||
| 			mockStore.On("WriteEntry", ctx, sessionId, utils.DATA_TEMPORARY_PIN, []byte(tt.input)).Return(nil) | 			mockStore.On("WriteEntry", ctx, sessionId, common.DATA_TEMPORARY_PIN, []byte(tt.input)).Return(nil) | ||||||
| 
 | 
 | ||||||
| 			// Call the method
 | 			// Call the method
 | ||||||
| 			res, err := h.SaveTemporaryPin(ctx, "save_pin", tt.input) | 			res, err := h.SaveTemporaryPin(ctx, "save_pin", tt.input) | ||||||
| @ -295,7 +294,7 @@ func TestSaveYoB(t *testing.T) { | |||||||
| 	ctx := context.WithValue(context.Background(), "SessionId", sessionId) | 	ctx := context.WithValue(context.Background(), "SessionId", sessionId) | ||||||
| 
 | 
 | ||||||
| 	// Set up the expected behavior of the mock
 | 	// Set up the expected behavior of the mock
 | ||||||
| 	mockStore.On("WriteEntry", ctx, sessionId, utils.DATA_YOB, []byte(yob)).Return(nil) | 	mockStore.On("WriteEntry", ctx, sessionId, common.DATA_YOB, []byte(yob)).Return(nil) | ||||||
| 
 | 
 | ||||||
| 	// Create the Handlers instance with the mock store
 | 	// Create the Handlers instance with the mock store
 | ||||||
| 	h := &Handlers{ | 	h := &Handlers{ | ||||||
| @ -323,7 +322,7 @@ func TestSaveLocation(t *testing.T) { | |||||||
| 	ctx := context.WithValue(context.Background(), "SessionId", sessionId) | 	ctx := context.WithValue(context.Background(), "SessionId", sessionId) | ||||||
| 
 | 
 | ||||||
| 	// Set up the expected behavior of the mock
 | 	// Set up the expected behavior of the mock
 | ||||||
| 	mockStore.On("WriteEntry", ctx, sessionId, utils.DATA_LOCATION, []byte(yob)).Return(nil) | 	mockStore.On("WriteEntry", ctx, sessionId, common.DATA_LOCATION, []byte(yob)).Return(nil) | ||||||
| 
 | 
 | ||||||
| 	// Create the Handlers instance with the mock store
 | 	// Create the Handlers instance with the mock store
 | ||||||
| 	h := &Handlers{ | 	h := &Handlers{ | ||||||
| @ -351,7 +350,7 @@ func TestSaveOfferings(t *testing.T) { | |||||||
| 	ctx := context.WithValue(context.Background(), "SessionId", sessionId) | 	ctx := context.WithValue(context.Background(), "SessionId", sessionId) | ||||||
| 
 | 
 | ||||||
| 	// Set up the expected behavior of the mock
 | 	// Set up the expected behavior of the mock
 | ||||||
| 	mockStore.On("WriteEntry", ctx, sessionId, utils.DATA_OFFERINGS, []byte(offerings)).Return(nil) | 	mockStore.On("WriteEntry", ctx, sessionId, common.DATA_OFFERINGS, []byte(offerings)).Return(nil) | ||||||
| 
 | 
 | ||||||
| 	// Create the Handlers instance with the mock store
 | 	// Create the Handlers instance with the mock store
 | ||||||
| 	h := &Handlers{ | 	h := &Handlers{ | ||||||
| @ -413,10 +412,10 @@ func TestSaveGender(t *testing.T) { | |||||||
| 		t.Run(tt.name, func(t *testing.T) { | 		t.Run(tt.name, func(t *testing.T) { | ||||||
| 			// Set up expectations for the mock database
 | 			// Set up expectations for the mock database
 | ||||||
| 			if tt.expectCall { | 			if tt.expectCall { | ||||||
| 				expectedKey := utils.DATA_GENDER | 				expectedKey := common.DATA_GENDER | ||||||
| 				mockStore.On("WriteEntry", ctx, sessionId, expectedKey, []byte(tt.expectedGender)).Return(nil) | 				mockStore.On("WriteEntry", ctx, sessionId, expectedKey, []byte(tt.expectedGender)).Return(nil) | ||||||
| 			} else { | 			} else { | ||||||
| 				mockStore.On("WriteEntry", ctx, sessionId, utils.DATA_GENDER, []byte(tt.expectedGender)).Return(nil) | 				mockStore.On("WriteEntry", ctx, sessionId, common.DATA_GENDER, []byte(tt.expectedGender)).Return(nil) | ||||||
| 			} | 			} | ||||||
| 			mockState.ExecPath = append(mockState.ExecPath, tt.executingSymbol) | 			mockState.ExecPath = append(mockState.ExecPath, tt.executingSymbol) | ||||||
| 			// Create the Handlers instance with the mock store
 | 			// Create the Handlers instance with the mock store
 | ||||||
| @ -433,9 +432,9 @@ func TestSaveGender(t *testing.T) { | |||||||
| 
 | 
 | ||||||
| 			// Verify expectations
 | 			// Verify expectations
 | ||||||
| 			if tt.expectCall { | 			if tt.expectCall { | ||||||
| 				mockStore.AssertCalled(t, "WriteEntry", ctx, sessionId, utils.DATA_GENDER, []byte(tt.expectedGender)) | 				mockStore.AssertCalled(t, "WriteEntry", ctx, sessionId, common.DATA_GENDER, []byte(tt.expectedGender)) | ||||||
| 			} else { | 			} else { | ||||||
| 				mockStore.AssertNotCalled(t, "WriteEntry", ctx, sessionId, utils.DATA_GENDER, []byte(tt.expectedGender)) | 				mockStore.AssertNotCalled(t, "WriteEntry", ctx, sessionId, common.DATA_GENDER, []byte(tt.expectedGender)) | ||||||
| 			} | 			} | ||||||
| 		}) | 		}) | ||||||
| 	} | 	} | ||||||
| @ -469,7 +468,7 @@ func TestCheckIdentifier(t *testing.T) { | |||||||
| 	for _, tt := range tests { | 	for _, tt := range tests { | ||||||
| 		t.Run(tt.name, func(t *testing.T) { | 		t.Run(tt.name, func(t *testing.T) { | ||||||
| 			// Set up expectations for the mock database
 | 			// Set up expectations for the mock database
 | ||||||
| 			mockStore.On("ReadEntry", ctx, sessionId, utils.DATA_PUBLIC_KEY).Return(tt.mockPublicKey, tt.mockErr) | 			mockStore.On("ReadEntry", ctx, sessionId, common.DATA_PUBLIC_KEY).Return(tt.mockPublicKey, tt.mockErr) | ||||||
| 
 | 
 | ||||||
| 			// Create the Handlers instance with the mock store
 | 			// Create the Handlers instance with the mock store
 | ||||||
| 			h := &Handlers{ | 			h := &Handlers{ | ||||||
| @ -519,8 +518,8 @@ func TestGetAmount(t *testing.T) { | |||||||
| 	activeSym := "SRF" | 	activeSym := "SRF" | ||||||
| 
 | 
 | ||||||
| 	// Set up the expected behavior of the mock
 | 	// Set up the expected behavior of the mock
 | ||||||
| 	mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_ACTIVE_SYM).Return([]byte(activeSym), nil) | 	mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_ACTIVE_SYM).Return([]byte(activeSym), nil) | ||||||
| 	mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_AMOUNT).Return([]byte(amount), nil) | 	mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_AMOUNT).Return([]byte(amount), nil) | ||||||
| 
 | 
 | ||||||
| 	// Create the Handlers instance with the mock store
 | 	// Create the Handlers instance with the mock store
 | ||||||
| 	h := &Handlers{ | 	h := &Handlers{ | ||||||
| @ -546,7 +545,7 @@ func TestGetRecipient(t *testing.T) { | |||||||
| 	recepient := "0xcasgatweksalw1018221" | 	recepient := "0xcasgatweksalw1018221" | ||||||
| 
 | 
 | ||||||
| 	// Set up the expected behavior of the mock
 | 	// Set up the expected behavior of the mock
 | ||||||
| 	mockStore.On("ReadEntry", ctx, sessionId, utils.DATA_RECIPIENT).Return([]byte(recepient), nil) | 	mockStore.On("ReadEntry", ctx, sessionId, common.DATA_RECIPIENT).Return([]byte(recepient), nil) | ||||||
| 
 | 
 | ||||||
| 	// Create the Handlers instance with the mock store
 | 	// Create the Handlers instance with the mock store
 | ||||||
| 	h := &Handlers{ | 	h := &Handlers{ | ||||||
| @ -828,7 +827,7 @@ func TestAuthorize(t *testing.T) { | |||||||
| 
 | 
 | ||||||
| 	// Define session ID and mock data
 | 	// Define session ID and mock data
 | ||||||
| 	sessionId := "session123" | 	sessionId := "session123" | ||||||
| 	typ := utils.DATA_ACCOUNT_PIN | 	typ := common.DATA_ACCOUNT_PIN | ||||||
| 
 | 
 | ||||||
| 	h := &Handlers{ | 	h := &Handlers{ | ||||||
| 		userdataStore:  mockDataStore, | 		userdataStore:  mockDataStore, | ||||||
| @ -1011,7 +1010,7 @@ func TestVerifyCreatePin(t *testing.T) { | |||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	typ := utils.DATA_TEMPORARY_PIN | 	typ := common.DATA_TEMPORARY_PIN | ||||||
| 
 | 
 | ||||||
| 	for _, tt := range tests { | 	for _, tt := range tests { | ||||||
| 		t.Run(tt.name, func(t *testing.T) { | 		t.Run(tt.name, func(t *testing.T) { | ||||||
| @ -1020,7 +1019,7 @@ func TestVerifyCreatePin(t *testing.T) { | |||||||
| 			mockDataStore.On("ReadEntry", ctx, sessionId, typ).Return([]byte(firstSetPin), nil) | 			mockDataStore.On("ReadEntry", ctx, sessionId, typ).Return([]byte(firstSetPin), nil) | ||||||
| 
 | 
 | ||||||
| 			// Set up the expected behavior of the mock
 | 			// Set up the expected behavior of the mock
 | ||||||
| 			mockDataStore.On("WriteEntry", ctx, sessionId, utils.DATA_ACCOUNT_PIN, []byte(firstSetPin)).Return(nil) | 			mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_ACCOUNT_PIN, []byte(firstSetPin)).Return(nil) | ||||||
| 
 | 
 | ||||||
| 			// Call the method under test
 | 			// Call the method under test
 | ||||||
| 			res, err := h.VerifyCreatePin(ctx, "verify_create_pin", []byte(tt.input)) | 			res, err := h.VerifyCreatePin(ctx, "verify_create_pin", []byte(tt.input)) | ||||||
| @ -1141,11 +1140,11 @@ func TestCheckAccountStatus(t *testing.T) { | |||||||
| 
 | 
 | ||||||
| 			status := tt.response.Result.Transaction.Status | 			status := tt.response.Result.Transaction.Status | ||||||
| 			// Define expected interactions with the mock
 | 			// Define expected interactions with the mock
 | ||||||
| 			mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_PUBLIC_KEY).Return(tt.input, nil) | 			mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_PUBLIC_KEY).Return(tt.input, nil) | ||||||
| 
 | 
 | ||||||
| 			mockCreateAccountService.On("CheckAccountStatus", string(tt.input)).Return(tt.response, nil) | 			mockCreateAccountService.On("CheckAccountStatus", string(tt.input)).Return(tt.response, nil) | ||||||
| 			mockCreateAccountService.On("TrackAccountStatus", string(tt.input)).Return(tt.serverResponse, nil) | 			mockCreateAccountService.On("TrackAccountStatus", string(tt.input)).Return(tt.serverResponse, nil) | ||||||
| 			mockDataStore.On("WriteEntry", ctx, sessionId, utils.DATA_ACCOUNT_STATUS, []byte(status)).Return(nil).Maybe() | 			mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_ACCOUNT_STATUS, []byte(status)).Return(nil).Maybe() | ||||||
| 
 | 
 | ||||||
| 			// Call the method under test
 | 			// Call the method under test
 | ||||||
| 			res, _ := h.CheckAccountStatus(ctx, "check_account_status", tt.input) | 			res, _ := h.CheckAccountStatus(ctx, "check_account_status", tt.input) | ||||||
| @ -1201,8 +1200,8 @@ func TestTransactionReset(t *testing.T) { | |||||||
| 
 | 
 | ||||||
| 	for _, tt := range tests { | 	for _, tt := range tests { | ||||||
| 		t.Run(tt.name, func(t *testing.T) { | 		t.Run(tt.name, func(t *testing.T) { | ||||||
| 			mockDataStore.On("WriteEntry", ctx, sessionId, utils.DATA_AMOUNT, []byte("")).Return(nil) | 			mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_AMOUNT, []byte("")).Return(nil) | ||||||
| 			mockDataStore.On("WriteEntry", ctx, sessionId, utils.DATA_RECIPIENT, []byte("")).Return(nil) | 			mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_RECIPIENT, []byte("")).Return(nil) | ||||||
| 
 | 
 | ||||||
| 			// Call the method under test
 | 			// Call the method under test
 | ||||||
| 			res, _ := h.TransactionReset(ctx, "transaction_reset", tt.input) | 			res, _ := h.TransactionReset(ctx, "transaction_reset", tt.input) | ||||||
| @ -1257,7 +1256,7 @@ func TestResetInvalidAmount(t *testing.T) { | |||||||
| 	} | 	} | ||||||
| 	for _, tt := range tests { | 	for _, tt := range tests { | ||||||
| 		t.Run(tt.name, func(t *testing.T) { | 		t.Run(tt.name, func(t *testing.T) { | ||||||
| 			mockDataStore.On("WriteEntry", ctx, sessionId, utils.DATA_AMOUNT, []byte("")).Return(nil) | 			mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_AMOUNT, []byte("")).Return(nil) | ||||||
| 
 | 
 | ||||||
| 			// Call the method under test
 | 			// Call the method under test
 | ||||||
| 			res, _ := h.ResetTransactionAmount(ctx, "transaction_reset_amount", tt.input) | 			res, _ := h.ResetTransactionAmount(ctx, "transaction_reset_amount", tt.input) | ||||||
| @ -1320,9 +1319,9 @@ func TestInitiateTransaction(t *testing.T) { | |||||||
| 	for _, tt := range tests { | 	for _, tt := range tests { | ||||||
| 		t.Run(tt.name, func(t *testing.T) { | 		t.Run(tt.name, func(t *testing.T) { | ||||||
| 			// Define expected interactions with the mock
 | 			// Define expected interactions with the mock
 | ||||||
| 			mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_AMOUNT).Return(tt.Amount, nil) | 			mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_AMOUNT).Return(tt.Amount, nil) | ||||||
| 			mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_RECIPIENT).Return(tt.Recipient, nil) | 			mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_RECIPIENT).Return(tt.Recipient, nil) | ||||||
| 			mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_ACTIVE_SYM).Return(tt.ActiveSym, nil) | 			mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_ACTIVE_SYM).Return(tt.ActiveSym, nil) | ||||||
| 
 | 
 | ||||||
| 			// Call the method under test
 | 			// Call the method under test
 | ||||||
| 			res, _ := h.InitiateTransaction(ctx, "transaction_reset_amount", tt.input) | 			res, _ := h.InitiateTransaction(ctx, "transaction_reset_amount", tt.input) | ||||||
| @ -1502,10 +1501,10 @@ func TestValidateAmount(t *testing.T) { | |||||||
| 	for _, tt := range tests { | 	for _, tt := range tests { | ||||||
| 		t.Run(tt.name, func(t *testing.T) { | 		t.Run(tt.name, func(t *testing.T) { | ||||||
| 			// Mock behavior for active balance retrieval
 | 			// Mock behavior for active balance retrieval
 | ||||||
| 			mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_ACTIVE_BAL).Return(tt.activeBal, nil) | 			mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_ACTIVE_BAL).Return(tt.activeBal, nil) | ||||||
| 
 | 
 | ||||||
| 			// Mock behavior for storing the amount (if valid)
 | 			// Mock behavior for storing the amount (if valid)
 | ||||||
| 			mockDataStore.On("WriteEntry", ctx, sessionId, utils.DATA_AMOUNT, tt.input).Return(nil).Maybe() | 			mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_AMOUNT, tt.input).Return(nil).Maybe() | ||||||
| 
 | 
 | ||||||
| 			// Call the method under test
 | 			// Call the method under test
 | ||||||
| 			res, _ := h.ValidateAmount(ctx, "test_validate_amount", tt.input) | 			res, _ := h.ValidateAmount(ctx, "test_validate_amount", tt.input) | ||||||
| @ -1559,7 +1558,7 @@ func TestValidateRecipient(t *testing.T) { | |||||||
| 	for _, tt := range tests { | 	for _, tt := range tests { | ||||||
| 		t.Run(tt.name, func(t *testing.T) { | 		t.Run(tt.name, func(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 			mockDataStore.On("WriteEntry", ctx, sessionId, utils.DATA_RECIPIENT, tt.input).Return(nil) | 			mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_RECIPIENT, tt.input).Return(nil) | ||||||
| 
 | 
 | ||||||
| 			// Create the Handlers instance with the mock flag manager
 | 			// Create the Handlers instance with the mock flag manager
 | ||||||
| 			h := &Handlers{ | 			h := &Handlers{ | ||||||
| @ -1613,8 +1612,8 @@ func TestCheckBalance(t *testing.T) { | |||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			// Mock for user with active sym
 | 			// Mock for user with active sym
 | ||||||
| 			mockDataStore.On("ReadEntry", ctx, tt.sessionId, utils.DATA_ACTIVE_SYM).Return([]byte(tt.activeSym), nil) | 			mockDataStore.On("ReadEntry", ctx, tt.sessionId, common.DATA_ACTIVE_SYM).Return([]byte(tt.activeSym), nil) | ||||||
| 			mockDataStore.On("ReadEntry", ctx, tt.sessionId, utils.DATA_ACTIVE_BAL).Return([]byte(tt.activeBal), nil) | 			mockDataStore.On("ReadEntry", ctx, tt.sessionId, common.DATA_ACTIVE_BAL).Return([]byte(tt.activeBal), nil) | ||||||
| 
 | 
 | ||||||
| 			res, err := h.CheckBalance(ctx, "check_balance", []byte("")) | 			res, err := h.CheckBalance(ctx, "check_balance", []byte("")) | ||||||
| 
 | 
 | ||||||
| @ -1648,13 +1647,13 @@ func TestGetProfile(t *testing.T) { | |||||||
| 	tests := []struct { | 	tests := []struct { | ||||||
| 		name         string | 		name         string | ||||||
| 		languageCode string | 		languageCode string | ||||||
| 		keys         []utils.DataTyp | 		keys         []common.DataTyp | ||||||
| 		profileInfo  []string | 		profileInfo  []string | ||||||
| 		result       resource.Result | 		result       resource.Result | ||||||
| 	}{ | 	}{ | ||||||
| 		{ | 		{ | ||||||
| 			name:         "Test with full profile information in eng", | 			name:         "Test with full profile information in eng", | ||||||
| 			keys:         []utils.DataTyp{utils.DATA_FAMILY_NAME, utils.DATA_FIRST_NAME, utils.DATA_GENDER, utils.DATA_OFFERINGS, utils.DATA_LOCATION, utils.DATA_YOB}, | 			keys:         []common.DataTyp{common.DATA_FAMILY_NAME, common.DATA_FIRST_NAME, common.DATA_GENDER, common.DATA_OFFERINGS, common.DATA_LOCATION, common.DATA_YOB}, | ||||||
| 			profileInfo:  []string{"Doee", "John", "Male", "Bananas", "Kilifi", "1976"}, | 			profileInfo:  []string{"Doee", "John", "Male", "Bananas", "Kilifi", "1976"}, | ||||||
| 			languageCode: "eng", | 			languageCode: "eng", | ||||||
| 			result: resource.Result{ | 			result: resource.Result{ | ||||||
| @ -1666,7 +1665,7 @@ func TestGetProfile(t *testing.T) { | |||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name:         "Test with with profile information in swa ", | 			name:         "Test with with profile information in swa ", | ||||||
| 			keys:         []utils.DataTyp{utils.DATA_FAMILY_NAME, utils.DATA_FIRST_NAME, utils.DATA_GENDER, utils.DATA_OFFERINGS, utils.DATA_LOCATION, utils.DATA_YOB}, | 			keys:         []common.DataTyp{common.DATA_FAMILY_NAME, common.DATA_FIRST_NAME, common.DATA_GENDER, common.DATA_OFFERINGS, common.DATA_LOCATION, common.DATA_YOB}, | ||||||
| 			profileInfo:  []string{"Doee", "John", "Male", "Bananas", "Kilifi", "1976"}, | 			profileInfo:  []string{"Doee", "John", "Male", "Bananas", "Kilifi", "1976"}, | ||||||
| 			languageCode: "swa", | 			languageCode: "swa", | ||||||
| 			result: resource.Result{ | 			result: resource.Result{ | ||||||
| @ -1678,7 +1677,7 @@ func TestGetProfile(t *testing.T) { | |||||||
| 		}, | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name:         "Test with with profile information with language that is not yet supported", | 			name:         "Test with with profile information with language that is not yet supported", | ||||||
| 			keys:         []utils.DataTyp{utils.DATA_FAMILY_NAME, utils.DATA_FIRST_NAME, utils.DATA_GENDER, utils.DATA_OFFERINGS, utils.DATA_LOCATION, utils.DATA_YOB}, | 			keys:         []common.DataTyp{common.DATA_FAMILY_NAME, common.DATA_FIRST_NAME, common.DATA_GENDER, common.DATA_OFFERINGS, common.DATA_LOCATION, common.DATA_YOB}, | ||||||
| 			profileInfo:  []string{"Doee", "John", "Male", "Bananas", "Kilifi", "1976"}, | 			profileInfo:  []string{"Doee", "John", "Male", "Bananas", "Kilifi", "1976"}, | ||||||
| 			languageCode: "nor", | 			languageCode: "nor", | ||||||
| 			result: resource.Result{ | 			result: resource.Result{ | ||||||
| @ -1802,9 +1801,9 @@ func TestConfirmPin(t *testing.T) { | |||||||
| 	for _, tt := range tests { | 	for _, tt := range tests { | ||||||
| 		t.Run(tt.name, func(t *testing.T) { | 		t.Run(tt.name, func(t *testing.T) { | ||||||
| 			// Set up the expected behavior of the mock
 | 			// Set up the expected behavior of the mock
 | ||||||
| 			mockDataStore.On("WriteEntry", ctx, sessionId, utils.DATA_ACCOUNT_PIN, []byte(tt.temporarypin)).Return(nil) | 			mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_ACCOUNT_PIN, []byte(tt.temporarypin)).Return(nil) | ||||||
| 
 | 
 | ||||||
| 			mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_TEMPORARY_PIN).Return(tt.temporarypin, nil) | 			mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_TEMPORARY_PIN).Return(tt.temporarypin, nil) | ||||||
| 
 | 
 | ||||||
| 			//Call the function under test
 | 			//Call the function under test
 | ||||||
| 			res, _ := h.ConfirmPinChange(ctx, "confirm_pin_change", tt.temporarypin) | 			res, _ := h.ConfirmPinChange(ctx, "confirm_pin_change", tt.temporarypin) | ||||||
| @ -1829,12 +1828,12 @@ func TestSetVoucher(t *testing.T) { | |||||||
| 	temporaryBal := []byte("tempBal") | 	temporaryBal := []byte("tempBal") | ||||||
| 
 | 
 | ||||||
| 	// Set expectations for the mock data store
 | 	// Set expectations for the mock data store
 | ||||||
| 	mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_TEMPORARY_SYM).Return(temporarySym, nil) | 	mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_TEMPORARY_SYM).Return(temporarySym, nil) | ||||||
| 	mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_TEMPORARY_BAL).Return(temporaryBal, nil) | 	mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_TEMPORARY_BAL).Return(temporaryBal, nil) | ||||||
| 	mockDataStore.On("WriteEntry", ctx, sessionId, utils.DATA_ACTIVE_SYM, temporarySym).Return(nil) | 	mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_ACTIVE_SYM, temporarySym).Return(nil) | ||||||
| 	mockDataStore.On("WriteEntry", ctx, sessionId, utils.DATA_ACTIVE_BAL, temporaryBal).Return(nil) | 	mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_ACTIVE_BAL, temporaryBal).Return(nil) | ||||||
| 	mockDataStore.On("WriteEntry", ctx, sessionId, utils.DATA_TEMPORARY_SYM, []byte("")).Return(nil) | 	mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_TEMPORARY_SYM, []byte("")).Return(nil) | ||||||
| 	mockDataStore.On("WriteEntry", ctx, sessionId, utils.DATA_TEMPORARY_BAL, []byte("")).Return(nil) | 	mockDataStore.On("WriteEntry", ctx, sessionId, common.DATA_TEMPORARY_BAL, []byte("")).Return(nil) | ||||||
| 
 | 
 | ||||||
| 	h := &Handlers{ | 	h := &Handlers{ | ||||||
| 		userdataStore: mockDataStore, | 		userdataStore: mockDataStore, | ||||||
| @ -1919,7 +1918,7 @@ func TestFetchCustodialBalances(t *testing.T) { | |||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			// Set up the expected behavior of the mock
 | 			// Set up the expected behavior of the mock
 | ||||||
| 			mockDataStore.On("ReadEntry", ctx, sessionId, utils.DATA_PUBLIC_KEY).Return([]byte(publicKey), nil) | 			mockDataStore.On("ReadEntry", ctx, sessionId, common.DATA_PUBLIC_KEY).Return([]byte(publicKey), nil) | ||||||
| 			mockCreateAccountService.On("CheckBalance", string(publicKey)).Return(tt.balanceResonse, nil) | 			mockCreateAccountService.On("CheckBalance", string(publicKey)).Return(tt.balanceResonse, nil) | ||||||
| 
 | 
 | ||||||
| 			// Call the method
 | 			// Call the method
 | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ import ( | |||||||
| 	"context" | 	"context" | ||||||
| 
 | 
 | ||||||
| 	"git.defalsify.org/vise.git/db" | 	"git.defalsify.org/vise.git/db" | ||||||
| 	"git.grassecon.net/urdt/ussd/internal/utils" | 	"git.grassecon.net/urdt/ussd/common" | ||||||
| 	"github.com/stretchr/testify/mock" | 	"github.com/stretchr/testify/mock" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| @ -13,12 +13,12 @@ type MockUserDataStore struct { | |||||||
| 	mock.Mock | 	mock.Mock | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (m *MockUserDataStore) ReadEntry(ctx context.Context, sessionId string, typ utils.DataTyp) ([]byte, error) { | func (m *MockUserDataStore) ReadEntry(ctx context.Context, sessionId string, typ common.DataTyp) ([]byte, error) { | ||||||
| 	args := m.Called(ctx, sessionId, typ) | 	args := m.Called(ctx, sessionId, typ) | ||||||
| 	return args.Get(0).([]byte), args.Error(1) | 	return args.Get(0).([]byte), args.Error(1) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (m *MockUserDataStore) WriteEntry(ctx context.Context, sessionId string, typ utils.DataTyp, value []byte) error { | func (m *MockUserDataStore) WriteEntry(ctx context.Context, sessionId string, typ common.DataTyp, value []byte) error { | ||||||
| 	args := m.Called(ctx, sessionId, typ, value) | 	args := m.Called(ctx, sessionId, typ, value) | ||||||
| 	return args.Error(0) | 	return args.Error(0) | ||||||
| } | } | ||||||
|  | |||||||
| @ -3,13 +3,15 @@ package utils | |||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 
 | 
 | ||||||
|  | 	"git.grassecon.net/urdt/ussd/common" | ||||||
|  | 
 | ||||||
| 	"git.defalsify.org/vise.git/db" | 	"git.defalsify.org/vise.git/db" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| type DataStore interface { | type DataStore interface { | ||||||
| 	db.Db | 	db.Db | ||||||
| 	ReadEntry(ctx context.Context, sessionId string, typ DataTyp) ([]byte, error) | 	ReadEntry(ctx context.Context, sessionId string, typ common.DataTyp) ([]byte, error) | ||||||
| 	WriteEntry(ctx context.Context, sessionId string, typ DataTyp, value []byte) error | 	WriteEntry(ctx context.Context, sessionId string, typ common.DataTyp, value []byte) error | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type UserDataStore struct { | type UserDataStore struct { | ||||||
| @ -17,16 +19,16 @@ type UserDataStore struct { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ReadEntry retrieves an entry from the store based on the provided parameters.
 | // ReadEntry retrieves an entry from the store based on the provided parameters.
 | ||||||
| func (store *UserDataStore) ReadEntry(ctx context.Context, sessionId string, typ DataTyp) ([]byte, error) { | func (store *UserDataStore) ReadEntry(ctx context.Context, sessionId string, typ common.DataTyp) ([]byte, error) { | ||||||
| 	store.SetPrefix(db.DATATYPE_USERDATA) | 	store.SetPrefix(db.DATATYPE_USERDATA) | ||||||
| 	store.SetSession(sessionId) | 	store.SetSession(sessionId) | ||||||
| 	k := PackKey(typ, []byte(sessionId)) | 	k := common.PackKey(typ, []byte(sessionId)) | ||||||
| 	return store.Get(ctx, k) | 	return store.Get(ctx, k) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (store *UserDataStore) WriteEntry(ctx context.Context, sessionId string, typ DataTyp, value []byte) error { | func (store *UserDataStore) WriteEntry(ctx context.Context, sessionId string, typ common.DataTyp, value []byte) error { | ||||||
| 	store.SetPrefix(db.DATATYPE_USERDATA) | 	store.SetPrefix(db.DATATYPE_USERDATA) | ||||||
| 	store.SetSession(sessionId) | 	store.SetSession(sessionId) | ||||||
| 	k := PackKey(typ, []byte(sessionId)) | 	k := common.PackKey(typ, []byte(sessionId)) | ||||||
| 	return store.Put(ctx, k, value) | 	return store.Put(ctx, k, value) | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user