diff --git a/cmd/africastalking/main.go b/cmd/africastalking/main.go index bc834d4..408448d 100644 --- a/cmd/africastalking/main.go +++ b/cmd/africastalking/main.go @@ -116,6 +116,7 @@ func getHandler(appFlags *asm.FlagParser, rs *resource.DbResource, userdataStore rs.AddLocalFunc("reset_incorrect_date_format", ussdHandlers.ResetIncorrectYob) rs.AddLocalFunc("set_reset_single_edit", ussdHandlers.SetResetSingleEdit) rs.AddLocalFunc("initiate_transaction", ussdHandlers.InitiateTransaction) + rs.AddLocalFunc("set_new_language", ussdHandlers.SetNewLanguage) return ussdHandlers, nil } diff --git a/cmd/async/main.go b/cmd/async/main.go index b40f29f..3c6307d 100644 --- a/cmd/async/main.go +++ b/cmd/async/main.go @@ -86,6 +86,7 @@ func getHandler(appFlags *asm.FlagParser, rs *resource.DbResource, userdataStore rs.AddLocalFunc("reset_incorrect_date_format", ussdHandlers.ResetIncorrectYob) rs.AddLocalFunc("set_reset_single_edit", ussdHandlers.SetResetSingleEdit) rs.AddLocalFunc("initiate_transaction", ussdHandlers.InitiateTransaction) + rs.AddLocalFunc("set_new_language", ussdHandlers.SetNewLanguage) return ussdHandlers, nil } diff --git a/cmd/http/main.go b/cmd/http/main.go index 1e132b4..49c009a 100644 --- a/cmd/http/main.go +++ b/cmd/http/main.go @@ -76,6 +76,7 @@ func getHandler(appFlags *asm.FlagParser, rs *resource.DbResource, userdataStore rs.AddLocalFunc("reset_incorrect_date_format", ussdHandlers.ResetIncorrectYob) rs.AddLocalFunc("set_reset_single_edit", ussdHandlers.SetResetSingleEdit) rs.AddLocalFunc("initiate_transaction", ussdHandlers.InitiateTransaction) + rs.AddLocalFunc("set_new_language", ussdHandlers.SetNewLanguage) return ussdHandlers, nil } diff --git a/cmd/main.go b/cmd/main.go index 1cad0db..c464908 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -75,6 +75,7 @@ func getHandler(appFlags *asm.FlagParser, rs *resource.DbResource, pe *persist.P rs.AddLocalFunc("verify_new_pin", ussdHandlers.VerifyNewPin) rs.AddLocalFunc("confirm_pin_change", ussdHandlers.ConfirmPinChange) rs.AddLocalFunc("quit_with_help",ussdHandlers.QuitWithHelp) + rs.AddLocalFunc("set_new_language", ussdHandlers.SetNewLanguage) return ussdHandlers, nil } diff --git a/internal/handlers/ussd/menuhandler.go b/internal/handlers/ussd/menuhandler.go index d326fbd..832ba3e 100644 --- a/internal/handlers/ussd/menuhandler.go +++ b/internal/handlers/ussd/menuhandler.go @@ -1045,3 +1045,22 @@ func (h *Handlers) GetProfileInfo(ctx context.Context, sym string, input []byte) return res, nil } + +// SetNewLanguage sets the new language based on user input +func (h *Handlers) SetNewLanguage(ctx context.Context, sym string, input []byte) (resource.Result, error) { + var res resource.Result + + inputStr := string(input) + + switch inputStr { + case "0": + res.FlagSet = append(res.FlagSet, state.FLAG_LANG) + res.Content = "eng" + case "1": + res.FlagSet = append(res.FlagSet, state.FLAG_LANG) + res.Content = "swa" + default: + } + + return res, nil +}