lash/export-to-term #157
| @ -35,6 +35,12 @@ var ( | |||||||
| 	backOption     = []byte("0") | 	backOption     = []byte("0") | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | // Define the regex patterns as  constants
 | ||||||
|  | const ( | ||||||
|  | 	phoneRegex = `(\(\d{3}\)\s?|\d{3}[-.\s]?)?\d{3}[-.\s]?\d{4}` | ||||||
|  | 	pinPattern = `^\d{4}$` | ||||||
|  | ) | ||||||
|  | 
 | ||||||
| // FlagManager handles centralized flag management
 | // FlagManager handles centralized flag management
 | ||||||
| type FlagManager struct { | type FlagManager struct { | ||||||
| 	parser *asm.FlagParser | 	parser *asm.FlagParser | ||||||
| @ -82,15 +88,17 @@ func NewHandlers(appFlags *asm.FlagParser, userdataStore db.Db, accountService s | |||||||
| 	return h, nil | 	return h, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Define the regex pattern as a constant
 |  | ||||||
| const pinPattern = `^\d{4}$` |  | ||||||
| 
 |  | ||||||
| // isValidPIN checks whether the given input is a 4 digit number
 | // isValidPIN checks whether the given input is a 4 digit number
 | ||||||
| func isValidPIN(pin string) bool { | func isValidPIN(pin string) bool { | ||||||
| 	match, _ := regexp.MatchString(pinPattern, pin) | 	match, _ := regexp.MatchString(pinPattern, pin) | ||||||
| 	return match | 	return match | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func isValidPhoneNumber(phonenumber string) bool { | ||||||
|  | 	match, _ := regexp.MatchString(phoneRegex, phonenumber) | ||||||
|  | 	return match | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func (h *Handlers) WithPersister(pe *persist.Persister) *Handlers { | func (h *Handlers) WithPersister(pe *persist.Persister) *Handlers { | ||||||
| 	if h.pe != nil { | 	if h.pe != nil { | ||||||
| 		panic("persister already set") | 		panic("persister already set") | ||||||
| @ -255,7 +263,6 @@ func (h *Handlers) SaveTemporaryPin(ctx context.Context, sym string, input []byt | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	flag_incorrect_pin, _ := h.flagManager.GetFlag("flag_incorrect_pin") | 	flag_incorrect_pin, _ := h.flagManager.GetFlag("flag_incorrect_pin") | ||||||
| 
 |  | ||||||
| 	accountPIN := string(input) | 	accountPIN := string(input) | ||||||
| 
 | 
 | ||||||
| 	// Validate that the PIN is a 4-digit number
 | 	// Validate that the PIN is a 4-digit number
 | ||||||
| @ -768,6 +775,9 @@ func (h *Handlers) ValidateBlockedNumber(ctx context.Context, sym string, input | |||||||
| 	} | 	} | ||||||
| 	blockedNumber := string(input) | 	blockedNumber := string(input) | ||||||
| 	_, err = store.ReadEntry(ctx, blockedNumber, utils.DATA_PUBLIC_KEY) | 	_, err = store.ReadEntry(ctx, blockedNumber, utils.DATA_PUBLIC_KEY) | ||||||
|  | 	if !isValidPhoneNumber(blockedNumber) { | ||||||
|  | 		return res, nil | ||||||
|  | 	} | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if db.IsNotFound(err) { | 		if db.IsNotFound(err) { | ||||||
| 			logg.Printf(logging.LVL_INFO, "Invalid or unregistered number") | 			logg.Printf(logging.LVL_INFO, "Invalid or unregistered number") | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user