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 9222c13..8ede09c 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -71,6 +71,7 @@ func getHandler(appFlags *asm.FlagParser, rs *resource.DbResource, pe *persist.P 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/internal/handlers/ussd/menuhandler.go b/internal/handlers/ussd/menuhandler.go index 89ced5a..be3802b 100644 --- a/internal/handlers/ussd/menuhandler.go +++ b/internal/handlers/ussd/menuhandler.go @@ -968,3 +968,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 +}