Compare commits
	
		
			31 Commits
		
	
	
		
			4c33945081
			...
			60134f14e9
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 60134f14e9 | |||
| 
						 | 
					4ee241714b | ||
| 
						 | 
					d7dc743fa2 | ||
| 
						 | 
					c220cbb767 | ||
| 0dc322729f | |||
| 726d6dd338 | |||
| a8b202bd79 | |||
| 6dbd250694 | |||
| cc760e7698 | |||
| 8648ea599c | |||
| 77e4c5d43a | |||
| b15ba367c4 | |||
| 4db862bc97 | |||
| 6ad67f6adc | |||
| 0dea34daab | |||
| 8057313c78 | |||
| 1bd96d0689 | |||
| bbfe46f162 | |||
| eff2cbde8b | |||
| 5c85ecffd1 | |||
| 
						 | 
					ad1f9233ca | ||
| 
						 | 
					c18c40b1b8 | ||
| 
						 | 
					a07fce527f | ||
| 
						 | 
					ddc8f6dad1 | ||
| 
						 | 
					c2b68231f5 | ||
| 
						 | 
					3f3dbf414c | ||
| 
						 | 
					e4c3e9f015 | ||
| 
						 | 
					9b71244391 | ||
| 
						 | 
					ada1f26b68 | ||
| 
						 | 
					935b777e57 | ||
| 
						 | 
					19372c17f4 | 
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -4,3 +4,5 @@ go.work*
 | 
			
		||||
**/*/*.bin
 | 
			
		||||
**/*/.state/
 | 
			
		||||
cmd/.state/
 | 
			
		||||
id_*
 | 
			
		||||
*.gdbm
 | 
			
		||||
 | 
			
		||||
@ -88,7 +88,6 @@ func (ls *LocalHandlerService) GetHandler() (*ussd.Handlers, error) {
 | 
			
		||||
	ls.DbRs.AddLocalFunc("get_profile_info", ussdHandlers.GetProfileInfo)
 | 
			
		||||
	ls.DbRs.AddLocalFunc("verify_yob", ussdHandlers.VerifyYob)
 | 
			
		||||
	ls.DbRs.AddLocalFunc("reset_incorrect_date_format", ussdHandlers.ResetIncorrectYob)
 | 
			
		||||
	ls.DbRs.AddLocalFunc("set_reset_single_edit", ussdHandlers.SetResetSingleEdit)
 | 
			
		||||
	ls.DbRs.AddLocalFunc("initiate_transaction", ussdHandlers.InitiateTransaction)
 | 
			
		||||
	ls.DbRs.AddLocalFunc("save_temporary_pin", ussdHandlers.SaveTemporaryPin)
 | 
			
		||||
	ls.DbRs.AddLocalFunc("verify_new_pin", ussdHandlers.VerifyNewPin)
 | 
			
		||||
 | 
			
		||||
@ -117,17 +117,14 @@ func (h *Handlers) Init(ctx context.Context, sym string, input []byte) (resource
 | 
			
		||||
func (h *Handlers) SetLanguage(ctx context.Context, sym string, input []byte) (resource.Result, error) {
 | 
			
		||||
	var res resource.Result
 | 
			
		||||
 | 
			
		||||
	sym, _ = h.st.Where()
 | 
			
		||||
	symbol, _ := h.st.Where()
 | 
			
		||||
	code := strings.Split(symbol, "_")[1]
 | 
			
		||||
 | 
			
		||||
	switch sym {
 | 
			
		||||
	case "set_default":
 | 
			
		||||
		res.FlagSet = append(res.FlagSet, state.FLAG_LANG)
 | 
			
		||||
		res.Content = "eng"
 | 
			
		||||
	case "set_swa":
 | 
			
		||||
		res.FlagSet = append(res.FlagSet, state.FLAG_LANG)
 | 
			
		||||
		res.Content = "swa"
 | 
			
		||||
	default:
 | 
			
		||||
	if !utils.IsValidISO639(code) {
 | 
			
		||||
		return res, nil
 | 
			
		||||
	}
 | 
			
		||||
	res.FlagSet = append(res.FlagSet, state.FLAG_LANG)
 | 
			
		||||
	res.Content = code
 | 
			
		||||
 | 
			
		||||
	languageSetFlag, err := h.flagManager.GetFlag("flag_language_set")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@ -316,32 +313,6 @@ func (h *Handlers) ConfirmPinChange(ctx context.Context, sym string, input []byt
 | 
			
		||||
	return res, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SetResetSingleEdit sets and resets  flags to allow gradual editing of profile information.
 | 
			
		||||
func (h *Handlers) SetResetSingleEdit(ctx context.Context, sym string, input []byte) (resource.Result, error) {
 | 
			
		||||
	var res resource.Result
 | 
			
		||||
 | 
			
		||||
	menuOption := string(input)
 | 
			
		||||
 | 
			
		||||
	flag_allow_update, _ := h.flagManager.GetFlag("flag_allow_update")
 | 
			
		||||
	flag_single_edit, _ := h.flagManager.GetFlag("flag_single_edit")
 | 
			
		||||
 | 
			
		||||
	switch menuOption {
 | 
			
		||||
	case "2":
 | 
			
		||||
		res.FlagReset = append(res.FlagReset, flag_allow_update)
 | 
			
		||||
		res.FlagSet = append(res.FlagSet, flag_single_edit)
 | 
			
		||||
	case "3":
 | 
			
		||||
		res.FlagReset = append(res.FlagReset, flag_allow_update)
 | 
			
		||||
		res.FlagSet = append(res.FlagSet, flag_single_edit)
 | 
			
		||||
	case "4":
 | 
			
		||||
		res.FlagReset = append(res.FlagReset, flag_allow_update)
 | 
			
		||||
		res.FlagSet = append(res.FlagSet, flag_single_edit)
 | 
			
		||||
	default:
 | 
			
		||||
		res.FlagReset = append(res.FlagReset, flag_single_edit)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return res, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// VerifyPin checks whether the confirmation PIN is similar to the account PIN
 | 
			
		||||
// If similar, it sets the USERFLAG_PIN_SET flag allowing the user
 | 
			
		||||
// to access the main menu
 | 
			
		||||
@ -472,6 +443,7 @@ func (h *Handlers) SaveLocation(ctx context.Context, sym string, input []byte) (
 | 
			
		||||
 | 
			
		||||
// SaveGender updates the gender in the gdbm with the provided input.
 | 
			
		||||
func (h *Handlers) SaveGender(ctx context.Context, sym string, input []byte) (resource.Result, error) {
 | 
			
		||||
	symbol, _ := h.st.Where()
 | 
			
		||||
	var res resource.Result
 | 
			
		||||
	var err error
 | 
			
		||||
	sessionId, ok := ctx.Value("SessionId").(string)
 | 
			
		||||
@ -479,21 +451,11 @@ func (h *Handlers) SaveGender(ctx context.Context, sym string, input []byte) (re
 | 
			
		||||
		return res, fmt.Errorf("missing session")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if len(input) > 0 {
 | 
			
		||||
		gender := string(input)
 | 
			
		||||
		switch gender {
 | 
			
		||||
		case "1":
 | 
			
		||||
			gender = "Male"
 | 
			
		||||
		case "2":
 | 
			
		||||
			gender = "Female"
 | 
			
		||||
		case "3":
 | 
			
		||||
			gender = "Unspecified"
 | 
			
		||||
		}
 | 
			
		||||
		store := h.userdataStore
 | 
			
		||||
		err = store.WriteEntry(ctx, sessionId, utils.DATA_GENDER, []byte(gender))
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return res, nil
 | 
			
		||||
		}
 | 
			
		||||
	gender := strings.Split(symbol, "_")[1]
 | 
			
		||||
	store := h.userdataStore
 | 
			
		||||
	err = store.WriteEntry(ctx, sessionId, utils.DATA_GENDER, []byte(gender))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return res, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return res, nil
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										11
									
								
								internal/utils/isocode.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								internal/utils/isocode.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
package utils
 | 
			
		||||
 | 
			
		||||
var isoCodes = map[string]bool{
 | 
			
		||||
	"eng": true, // English
 | 
			
		||||
	"swa": true, // Swahili
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func IsValidISO639(code string) bool {
 | 
			
		||||
	return isoCodes[code]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								services/registration/_catch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								services/registration/_catch
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
Something went wrong.Please try again
 | 
			
		||||
							
								
								
									
										1
									
								
								services/registration/_catch.vis
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								services/registration/_catch.vis
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
HALT
 | 
			
		||||
@ -11,8 +11,6 @@ MOUT view 7
 | 
			
		||||
MOUT back 0
 | 
			
		||||
HALT
 | 
			
		||||
INCMP my_account 0
 | 
			
		||||
LOAD set_reset_single_edit 0
 | 
			
		||||
RELOAD set_reset_single_edit
 | 
			
		||||
INCMP enter_name 1
 | 
			
		||||
INCMP enter_familyname 2
 | 
			
		||||
INCMP select_gender 3
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,15 @@
 | 
			
		||||
CATCH incorrect_pin flag_incorrect_pin 1
 | 
			
		||||
CATCH profile_update_success flag_allow_update 1
 | 
			
		||||
LOAD save_gender 0
 | 
			
		||||
MOUT male 1
 | 
			
		||||
MOUT female 2
 | 
			
		||||
MOUT unspecified 3
 | 
			
		||||
MOUT back 0
 | 
			
		||||
HALT
 | 
			
		||||
RELOAD save_gender
 | 
			
		||||
INCMP _ 0
 | 
			
		||||
INCMP pin_entry *
 | 
			
		||||
INCMP set_male 1
 | 
			
		||||
INCMP set_female 2
 | 
			
		||||
INCMP set_unspecified 3
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
MOUT english 0
 | 
			
		||||
MOUT kiswahili 1
 | 
			
		||||
HALT
 | 
			
		||||
INCMP set_default 0
 | 
			
		||||
INCMP set_eng 0
 | 
			
		||||
INCMP set_swa 1
 | 
			
		||||
INCMP . *
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								services/registration/set_female.vis
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								services/registration/set_female.vis
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
LOAD save_gender 0
 | 
			
		||||
CATCH incorrect_pin flag_incorrect_pin 1
 | 
			
		||||
CATCH profile_update_success flag_allow_update 1
 | 
			
		||||
MOVE pin_entry
 | 
			
		||||
							
								
								
									
										4
									
								
								services/registration/set_male.vis
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								services/registration/set_male.vis
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
LOAD save_gender 0
 | 
			
		||||
CATCH incorrect_pin flag_incorrect_pin 1
 | 
			
		||||
CATCH profile_update_success flag_allow_update 1
 | 
			
		||||
MOVE pin_entry
 | 
			
		||||
							
								
								
									
										4
									
								
								services/registration/set_unspecified.vis
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								services/registration/set_unspecified.vis
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
LOAD save_gender 0
 | 
			
		||||
CATCH incorrect_pin flag_incorrect_pin 1
 | 
			
		||||
CATCH profile_update_success flag_allow_update 1
 | 
			
		||||
MOVE pin_entry
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user