Compare commits
4 Commits
ade236747c
...
0274133d48
Author | SHA1 | Date | |
---|---|---|---|
0274133d48 | |||
5ff2e794ff | |||
08deeca500 | |||
cea920c1f5 |
2
go.mod
2
go.mod
@ -5,7 +5,7 @@ go 1.23.4
|
||||
require (
|
||||
git.defalsify.org/vise.git v0.3.2-0.20250401123711-d481b04a6805
|
||||
git.grassecon.net/grassrootseconomics/common v0.9.0-beta.1.0.20250417111317-2953f4c2f32e
|
||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250411080608-34957e5b6ff8
|
||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250417201442-5c0ed48e678c
|
||||
git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.2
|
||||
git.grassecon.net/grassrootseconomics/visedriver-africastalking v0.0.0-20250129070628-5a539172c694
|
||||
github.com/alecthomas/assert/v2 v2.2.2
|
||||
|
8
go.sum
8
go.sum
@ -16,6 +16,14 @@ git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250401122510-
|
||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250401122510-441e289854ad/go.mod h1:gOn89ipaDcDvmQXRMQYKUqcw/sJcwVOPVt2eC6Geip8=
|
||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250411080608-34957e5b6ff8 h1:Emesd0rybSLhPwZwqdvLsk/P9ZsT+7CQwQV/mrjQp3o=
|
||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250411080608-34957e5b6ff8/go.mod h1:gOn89ipaDcDvmQXRMQYKUqcw/sJcwVOPVt2eC6Geip8=
|
||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250417155812-58366274c3e1 h1:Yt9S+9JtCB4Y6jw6Xo1WGoVVu591n3/tSRIwM3kw1uY=
|
||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250417155812-58366274c3e1/go.mod h1:gOn89ipaDcDvmQXRMQYKUqcw/sJcwVOPVt2eC6Geip8=
|
||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250417191830-86cfb9c02028 h1:HuIL9BClNieD7QCikCW1sJ9HyIo9iqRDFqULJGHxbrM=
|
||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250417191830-86cfb9c02028/go.mod h1:gOn89ipaDcDvmQXRMQYKUqcw/sJcwVOPVt2eC6Geip8=
|
||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250417200733-5ff139b6494b h1:0Ldq9SKqu+oNljNaKpQFyUgl3cOi6LJulGZwf5vXuWo=
|
||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250417200733-5ff139b6494b/go.mod h1:gOn89ipaDcDvmQXRMQYKUqcw/sJcwVOPVt2eC6Geip8=
|
||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250417201442-5c0ed48e678c h1:fO8NGQ/sLdwpbi3UWzZZxqOXGrEzMVXyxER5ziGuZLI=
|
||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250417201442-5c0ed48e678c/go.mod h1:gOn89ipaDcDvmQXRMQYKUqcw/sJcwVOPVt2eC6Geip8=
|
||||
git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.2 h1:YFztSsexCUgFo6M0tbngRwYdgJd3LQV3RO/Jw09u3+k=
|
||||
git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.2/go.mod h1:6B6ByxXOiRY0NR7K02Bf3fEu7z+2c/6q8PFVNjC5G8w=
|
||||
git.grassecon.net/grassrootseconomics/visedriver-africastalking v0.0.0-20250129070628-5a539172c694 h1:DjJlBSz0S13acft5XZDWk7ZYnzElym0xLMYEVgyNJ+E=
|
||||
|
@ -524,7 +524,15 @@ func (h *MenuHandlers) ResetOthersPin(ctx context.Context, sym string, input []b
|
||||
logg.ErrorCtxf(ctx, "failed to reset incorrect PIN attempts", "key", storedb.DATA_INCORRECT_PIN_ATTEMPTS, "error", err)
|
||||
return res, err
|
||||
}
|
||||
|
||||
blockedPhoneStr := string(blockedPhonenumber)
|
||||
//Trigger an SMS to inform a user that the blocked account has been reset
|
||||
if phone.IsValidPhoneNumber(blockedPhoneStr) {
|
||||
err = h.sendPINResetSMS(ctx, sessionId, blockedPhoneStr)
|
||||
if err != nil {
|
||||
logg.DebugCtxf(ctx, "Failed to send PIN reset SMS", "error", err)
|
||||
return res, nil
|
||||
}
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
@ -2491,3 +2499,63 @@ func (h *MenuHandlers) ClearTemporaryValue(ctx context.Context, sym string, inpu
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// SendAddressSMS will triger an SMS when a user navigates to the my address node.The SMS will be sent to the associated phonenumber.
|
||||
func (h *MenuHandlers) SendAddressSMS(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
||||
var res resource.Result
|
||||
store := h.userdataStore
|
||||
|
||||
sessionId, ok := ctx.Value("SessionId").(string)
|
||||
if !ok {
|
||||
return res, fmt.Errorf("missing session")
|
||||
}
|
||||
|
||||
publicKey, err := store.ReadEntry(ctx, sessionId, storedb.DATA_PUBLIC_KEY)
|
||||
if err != nil {
|
||||
logg.ErrorCtxf(ctx, "failed to read publicKey entry with", "key", storedb.DATA_PUBLIC_KEY, "error", err)
|
||||
return res, err
|
||||
}
|
||||
originPhone, err := phone.FormatPhoneNumber(sessionId)
|
||||
if err != nil {
|
||||
logg.DebugCtxf(ctx, "Failed to format origin phonenumber", "sessionid", sessionId)
|
||||
return res, nil
|
||||
}
|
||||
|
||||
if !phone.IsValidPhoneNumber(originPhone) {
|
||||
logg.InfoCtxf(ctx, "Invalid origin phone number", "sessionid:", sessionId)
|
||||
return res, nil
|
||||
}
|
||||
err = h.accountService.SendAddressSMS(ctx, string(publicKey), sessionId)
|
||||
if err != nil {
|
||||
logg.DebugCtxf(ctx, "Failed to send address sms", "error", err)
|
||||
return res, nil
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// sendPINResetSMS will send an SMS to a user's phonenumber in the event that the associated account's PIN has been reset.
|
||||
func (h *MenuHandlers) sendPINResetSMS(ctx context.Context, adminPhoneNumber, blockedPhoneNumber string) error {
|
||||
formattedAdminPhone, err := phone.FormatPhoneNumber(adminPhoneNumber)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to format admin phone number: %w", err)
|
||||
}
|
||||
|
||||
formattedBlockedPhone, err := phone.FormatPhoneNumber(blockedPhoneNumber)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to format blocked phone number: %w", err)
|
||||
}
|
||||
|
||||
if !phone.IsValidPhoneNumber(formattedAdminPhone) {
|
||||
return fmt.Errorf("invalid admin phone number")
|
||||
}
|
||||
if !phone.IsValidPhoneNumber(formattedBlockedPhone) {
|
||||
return fmt.Errorf("invalid blocked phone number")
|
||||
}
|
||||
|
||||
err = h.accountService.SendPINResetSMS(ctx, formattedAdminPhone, formattedBlockedPhone)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to send pin reset sms: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -124,6 +124,7 @@ func (ls *LocalHandlerService) GetHandler(accountService remote.AccountService)
|
||||
ls.DbRs.AddLocalFunc("get_suggested_alias", appHandlers.GetSuggestedAlias)
|
||||
ls.DbRs.AddLocalFunc("confirm_new_alias", appHandlers.ConfirmNewAlias)
|
||||
ls.DbRs.AddLocalFunc("check_account_created", appHandlers.CheckAccountCreated)
|
||||
ls.DbRs.AddLocalFunc("send_address_sms", appHandlers.SendAddressSMS)
|
||||
|
||||
ls.first = appHandlers.Init
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
LOAD send_address_sms 16
|
||||
LOAD check_identifier 0
|
||||
RELOAD check_identifier
|
||||
MAP check_identifier
|
||||
|
Loading…
Reference in New Issue
Block a user