class UserService:
    def __init__(self):
        self.user_dao = UserDao()

    def insert_user(self, name, email, country):

        existing_user = self.user_dao.get_user(email)
        if existing_user:
            existing_user.set_name(name)
            existing_user.set_country(country)
            return self.user_dao.update_user(existing_user)
        else:
            user = User(uuid.uuid4(), name, email, country)
            return self.user_dao.add_user(user)

    def insert_score(self, email, score):

        existing_user = self.user_dao.get_user(email)
        if not existing_user:
            raise UserNotExist
        else:
            existing_user.set_score(score)
            return self.user_dao.update_user(existing_user)

    def search_user(self, search_criteria):
        return self.user_dao.search_user(search_criteria)