69 lines
2.8 KiB
Python
69 lines
2.8 KiB
Python
# standard imports
|
|
import logging
|
|
import re
|
|
from typing import Tuple
|
|
|
|
# local imports
|
|
from cic_ussd.db.models.user import User
|
|
|
|
logg = logging.getLogger()
|
|
|
|
|
|
def has_complete_profile_data(state_machine_data: Tuple[str, dict, User]):
|
|
"""This function checks whether the attributes of the user's metadata constituting a profile are filled out.
|
|
:param state_machine_data: A tuple containing user input, a ussd session and user object.
|
|
:type state_machine_data: str
|
|
"""
|
|
user_input, ussd_session, user = state_machine_data
|
|
logg.debug('This section requires implementation of user metadata.')
|
|
|
|
|
|
def has_empty_username_data(state_machine_data: Tuple[str, dict, User]):
|
|
"""This function checks whether the aspects of the user's name metadata is filled out.
|
|
:param state_machine_data: A tuple containing user input, a ussd session and user object.
|
|
:type state_machine_data: str
|
|
"""
|
|
user_input, ussd_session, user = state_machine_data
|
|
logg.debug('This section requires implementation of user metadata.')
|
|
|
|
|
|
def has_empty_gender_data(state_machine_data: Tuple[str, dict, User]):
|
|
"""This function checks whether the aspects of the user's gender metadata is filled out.
|
|
:param state_machine_data: A tuple containing user input, a ussd session and user object.
|
|
:type state_machine_data: str
|
|
"""
|
|
user_input, ussd_session, user = state_machine_data
|
|
logg.debug('This section requires implementation of user metadata.')
|
|
|
|
|
|
def has_empty_location_data(state_machine_data: Tuple[str, dict, User]):
|
|
"""This function checks whether the aspects of the user's location metadata is filled out.
|
|
:param state_machine_data: A tuple containing user input, a ussd session and user object.
|
|
:type state_machine_data: str
|
|
"""
|
|
user_input, ussd_session, user = state_machine_data
|
|
logg.debug('This section requires implementation of user metadata.')
|
|
|
|
|
|
def has_empty_business_profile_data(state_machine_data: Tuple[str, dict, User]):
|
|
"""This function checks whether the aspects of the user's business profile metadata is filled out.
|
|
:param state_machine_data: A tuple containing user input, a ussd session and user object.
|
|
:type state_machine_data: str
|
|
"""
|
|
user_input, ussd_session, user = state_machine_data
|
|
logg.debug('This section requires implementation of user metadata.')
|
|
|
|
|
|
def is_valid_name(state_machine_data: Tuple[str, dict, User]):
|
|
"""This function checks that a user provided name is valid
|
|
:param state_machine_data: A tuple containing user input, a ussd session and user object.
|
|
:type state_machine_data: str
|
|
"""
|
|
user_input, ussd_session, user = state_machine_data
|
|
name_matcher = "^[a-zA-Z]+$"
|
|
valid_name = re.match(name_matcher, user_input)
|
|
if valid_name:
|
|
return True
|
|
else:
|
|
return False
|