Compare commits
	
		
			No commits in common. "a3f410875a18ac5a0b57764775a3e126a2d6bdc3" and "660f8b7aa201c43da8db23e0b84c6f0ccb3776c3" have entirely different histories.
		
	
	
		
			a3f410875a
			...
			660f8b7aa2
		
	
		
@ -71,9 +71,6 @@ func getHandler(appFlags *asm.FlagParser, rs *resource.DbResource, pe *persist.P
 | 
				
			|||||||
	rs.AddLocalFunc("reset_incorrect_date_format", ussdHandlers.ResetIncorrectYob)
 | 
						rs.AddLocalFunc("reset_incorrect_date_format", ussdHandlers.ResetIncorrectYob)
 | 
				
			||||||
	rs.AddLocalFunc("set_reset_single_edit", ussdHandlers.SetResetSingleEdit)
 | 
						rs.AddLocalFunc("set_reset_single_edit", ussdHandlers.SetResetSingleEdit)
 | 
				
			||||||
	rs.AddLocalFunc("initiate_transaction", ussdHandlers.InitiateTransaction)
 | 
						rs.AddLocalFunc("initiate_transaction", ussdHandlers.InitiateTransaction)
 | 
				
			||||||
	rs.AddLocalFunc("save_temporary_pin", ussdHandlers.SaveTemporaryPin)
 | 
					 | 
				
			||||||
	rs.AddLocalFunc("verify_new_pin", ussdHandlers.VerifyNewPin)
 | 
					 | 
				
			||||||
	rs.AddLocalFunc("confirm_pin_change", ussdHandlers.ConfirmPinChange)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return ussdHandlers, nil
 | 
						return ussdHandlers, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -216,74 +216,6 @@ func (h *Handlers) SavePin(ctx context.Context, sym string, input []byte) (resou
 | 
				
			|||||||
	return res, nil
 | 
						return res, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *Handlers) VerifyNewPin(ctx context.Context, sym string, input []byte) (resource.Result, error) {
 | 
					 | 
				
			||||||
	res := resource.Result{}
 | 
					 | 
				
			||||||
	_, ok := ctx.Value("SessionId").(string)
 | 
					 | 
				
			||||||
	if !ok {
 | 
					 | 
				
			||||||
		return res, fmt.Errorf("missing session")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	flag_valid_pin, _ := h.flagManager.GetFlag("flag_valid_pin")
 | 
					 | 
				
			||||||
	pinInput := string(input)
 | 
					 | 
				
			||||||
	// Validate that the PIN is a 4-digit number
 | 
					 | 
				
			||||||
	if isValidPIN(pinInput) {
 | 
					 | 
				
			||||||
		res.FlagSet = append(res.FlagSet, flag_valid_pin)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		res.FlagReset = append(res.FlagReset, flag_valid_pin)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return res, nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (h *Handlers) SaveTemporaryPin(ctx context.Context, sym string, input []byte) (resource.Result, error) {
 | 
					 | 
				
			||||||
	var res resource.Result
 | 
					 | 
				
			||||||
	var err error
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	sessionId, ok := ctx.Value("SessionId").(string)
 | 
					 | 
				
			||||||
	if !ok {
 | 
					 | 
				
			||||||
		return res, fmt.Errorf("missing session")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	flag_incorrect_pin, _ := h.flagManager.GetFlag("flag_incorrect_pin")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	accountPIN := string(input)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Validate that the PIN is a 4-digit number
 | 
					 | 
				
			||||||
	if !isValidPIN(accountPIN) {
 | 
					 | 
				
			||||||
		res.FlagSet = append(res.FlagSet, flag_incorrect_pin)
 | 
					 | 
				
			||||||
		return res, nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	store := h.userdataStore
 | 
					 | 
				
			||||||
	err = store.WriteEntry(ctx, sessionId, utils.DATA_TEMPORARY_PIN, []byte(accountPIN))
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return res, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return res, nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (h *Handlers) ConfirmPinChange(ctx context.Context, sym string, input []byte) (resource.Result, error) {
 | 
					 | 
				
			||||||
	var res resource.Result
 | 
					 | 
				
			||||||
	sessionId, ok := ctx.Value("SessionId").(string)
 | 
					 | 
				
			||||||
	if !ok {
 | 
					 | 
				
			||||||
		return res, fmt.Errorf("missing session")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	flag_pin_mismatch, _ := h.flagManager.GetFlag("flag_pin_mismatch")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	store := h.userdataStore
 | 
					 | 
				
			||||||
	temporaryPin, err := store.ReadEntry(ctx, sessionId, utils.DATA_TEMPORARY_PIN)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return res, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if bytes.Equal(temporaryPin, input) {
 | 
					 | 
				
			||||||
		res.FlagReset = append(res.FlagReset, flag_pin_mismatch)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		res.FlagSet = append(res.FlagSet, flag_pin_mismatch)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	err = store.WriteEntry(ctx, sessionId, utils.DATA_ACCOUNT_PIN, []byte(temporaryPin))
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return res, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return res, nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// SetResetSingleEdit sets and resets  flags to allow gradual editing of profile information.
 | 
					// 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) {
 | 
					func (h *Handlers) SetResetSingleEdit(ctx context.Context, sym string, input []byte) (resource.Result, error) {
 | 
				
			||||||
	var res resource.Result
 | 
						var res resource.Result
 | 
				
			||||||
@ -390,6 +322,9 @@ func (h *Handlers) SaveFamilyname(ctx context.Context, sym string, input []byte)
 | 
				
			|||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return res, err
 | 
								return res, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return res, nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		return res, fmt.Errorf("a family name cannot be less than one character")
 | 
							return res, fmt.Errorf("a family name cannot be less than one character")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@ -546,6 +481,8 @@ func (h *Handlers) Authorize(ctx context.Context, sym string, input []byte) (res
 | 
				
			|||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return res, err
 | 
							return res, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err == nil {
 | 
				
			||||||
		if len(input) == 4 {
 | 
							if len(input) == 4 {
 | 
				
			||||||
			if bytes.Equal(input, AccountPin) {
 | 
								if bytes.Equal(input, AccountPin) {
 | 
				
			||||||
				if h.st.MatchFlag(flag_account_authorized, false) {
 | 
									if h.st.MatchFlag(flag_account_authorized, false) {
 | 
				
			||||||
@ -560,9 +497,11 @@ func (h *Handlers) Authorize(ctx context.Context, sym string, input []byte) (res
 | 
				
			|||||||
				res.FlagReset = append(res.FlagReset, flag_account_authorized)
 | 
									res.FlagReset = append(res.FlagReset, flag_account_authorized)
 | 
				
			||||||
				return res, nil
 | 
									return res, nil
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		return res, nil
 | 
							return res, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return res, nil
 | 
						return res, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,6 @@ const (
 | 
				
			|||||||
	DATA_OFFERINGS
 | 
						DATA_OFFERINGS
 | 
				
			||||||
	DATA_RECIPIENT
 | 
						DATA_RECIPIENT
 | 
				
			||||||
	DATA_AMOUNT
 | 
						DATA_AMOUNT
 | 
				
			||||||
	DATA_TEMPORARY_PIN
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func typToBytes(typ DataTyp) []byte {
 | 
					func typToBytes(typ DataTyp) []byte {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user