示例#1
0
def update_profile():
    global current_user
    if not current_user:
        add_output("You have to login first! \n")
        return
    temp = UserController.retrieve_user(UserFields.email.name,
                                        current_user.email)
    if temp == Errors.MISSING.name:
        add_output("No user with such credentials exists. \n")
        return
    elif temp == Errors.FAILURE.name:
        return_failure()
        return
    user_id = current_user.uid
    current_user = read_user()
    current_user.uid = user_id

    result = UserController.edit_user(current_user)
    if result == Errors.MISSING.name:
        add_output("No user with such credentials exists. \n")
        current_user = temp
    elif result == Errors.FAILURE.name:
        return_failure()
        current_user = temp
    elif result == Errors.DUPLICATE.name:
        add_output("A user with the same credentials already exists! \n")
        current_user = temp
    else:
        add_output("User updated. Email now at: " + current_user.email +
                   ". \n")
        current_user = UserController.retrieve_user(UserFields.userid.name,
                                                    result)
    UserController.print_user(current_user)
    return
示例#2
0
def test_retrieve_hit():
    user_one = UserModel('0',
                         'chengyun yu',
                         'yuche',
                         'male',
                         '*****@*****.**',
                         '0,0',
                         'sports, dining',
                         'i am a sports guy who likes to eat. '
                         )
    user_two = UserModel('0',
                         'chengyun yu',
                         'yuche',
                         'male',
                         '*****@*****.**',
                         '0,0',
                         'sports, dining',
                         'this is my new description. '
                         )
    user_three = UserModel('0',
                           'non existent',
                           'noext',
                           'male',
                           '*****@*****.**',
                           '0.0',
                           'sports, dining',
                           'i am a sports guy who does not exist. '
                           )

    print("Insert New: " + UserController.add_user(user_one))
    print("Insert Conflict: " + UserController.add_user(user_two))
    print("Update: " + UserController.edit_user(user_two))
    print("Retrieve Hit: " + UserController.retrieve_user(UserFields.email.name, user_two.email))
    print("Retrieve Miss: " + UserController.retrieve_user(UserFields.email.name, user_three.email))
    return 'Tests Finished'
示例#3
0
 def test_retrieve_user(self):
     UserController.delete_user('nickname_1', 'email_1')
     UserController.delete_user('nickname_2', 'email_2')
     UserController.add_user(self.user_1)
     self.assertIsInstance(UserController.retrieve_user('email', 'email_1'),
                           UserModel)
     self.assertEqual(UserController.retrieve_user('email', 'email_2'),
                      'MISSING')
     UserController.delete_user('nickname_1', 'email_1')
示例#4
0
 def test_edit_user_1(self):
     UserController.delete_user('nickname_3', 'email_2')
     UserController.delete_user('nickname_2', 'email_2')
     UserController.add_user(self.user_2)
     user_3 = UserController.retrieve_user('email', 'email_2')
     user_3.nickname = 'nickname_3'
     self.assertIsNot(UserController.edit_user(user_3), 'MISSING'
                      or 'DUPLICATE' or 'FAILURE')
     self.assertEqual(UserController.edit_user(user_3), 'MISSING')
     self.assertEqual(
         UserController.retrieve_user('email', 'email_2').nickname,
         'nickname_3')
     UserController.delete_user('nickname_3', 'email_2')
示例#5
0
def update_profile(data):
    user = UserModel(0, data['name'], data['nickname'],
                     data['gender'], data['email'], data['location'],
                     stringToEnum(data['tags']), data['description'], [], [],
                     data['image'], data['google_id'])
    result = UserController.edit_user(user)
    if result == Errors.MISSING.name:
        return result, None
    elif result == Errors.FAILURE.name:
        return result, None
    else:
        user = UserController.retrieve_user(UserFields.googleid.name,
                                            data['google_id'])
        data = {
            'id': user.uid,
            'name': user.name,
            'nickname': user.nickname,
            'email': user.email,
            'location': user.location,
            'description': user.description,
            'gender': user.gender,
            'image': user.image,
            'tags': user.tags,
            'google_id': user.google_id
        }
        return 'OK', data
示例#6
0
def group_email():
    global current_user
    global current_event
    if not current_user:
        add_output('You have to log in first. \n')
    event_id = event_id_input.get()
    current_event = EventController.retrieve_event(event_id)
    if current_event == Errors.MISSING.name:
        add_output('No such event. \n')
        current_event = None
        return
    elif current_event == Errors.FAILURE.name:
        return_failure()
        current_event = None
        return
    if current_user.uid != current_event.hosts:
        add_output('You have to be the host to send a group email. \n')
        current_event = None
        return

    message = email_message_input.get()
    user_list = current_event.attendees
    EventController.print_event(current_event)
    for user_id in user_list:
        sent = False
        try:
            temp_user = UserController.retrieve_user(UserFields.userid.name,
                                                     user_id)
            send_email(message, temp_user.email)
            sent = True
        finally:
            if not sent:
                add_output('Unable to send email to ' + temp_user.email +
                           '. \n')
    return
示例#7
0
def login():
    global current_user
    email = user_email_input.get()
    result = UserController.retrieve_user(UserFields.email.name, email)
    if result == Errors.MISSING.name:
        add_output("No user with such credential exists. \n")
        UserController.print_user(current_user)
        return
    elif result == Errors.FAILURE.name:
        add_output("Failed to login. Please try again. \n")
        UserController.print_user(current_user)
        return
    add_output("You logged in with email " + email + ". \n")
    current_user = UserController.retrieve_user(UserFields.email.name, email)
    UserController.print_user(current_user)
    return
示例#8
0
    def test_host_event(self):
        UserController.add_user(self.user_1)
        user_2 = UserController.retrieve_user('email', 'email_1')

        event_id = EventController.add_event(self.event_1)
        self.event_1.eventid = event_id

        self.assertIsNotNone(EventController.host_event(user_2, self.event_1))

        UserController.delete_user('nickname_1', 'email_1')
示例#9
0
def register():
    global current_user
    current_user = read_user()
    result = UserController.add_user(current_user)
    if result == Errors.DUPLICATE.name:
        add_output("A user with the same credentials already exists! \n")
        current_user = None
    elif result == Errors.FAILURE.name:
        return_failure()
        current_user = None
    else:
        add_output("User registered JoinMe with email " + current_user.email +
                   ". \n")
        current_user = UserController.retrieve_user(UserFields.email.name,
                                                    current_user.email)
    UserController.print_user(current_user)
    return
示例#10
0
def contact_friend():
    global current_user
    if not current_user:
        add_output('You have to log in first. \n')
    message = email_message_input.get()
    nickname = email_nickname_input.get()
    sent = False

    try:
        temp_user = UserController.retrieve_user(UserFields.nickname.name,
                                                 nickname)
        if temp_user == Errors.MISSING.name:
            add_output('No user with nickname ' + nickname +
                       '. Please check again. \n')
        else:
            send_email(message, temp_user.email)
        sent = True
    finally:
        if not sent:
            add_output('Unable to send email to ' + temp_user.email + '. \n')

    return
示例#11
0
def login(email):
    result = UserController.retrieve_user(UserFields.googleid.name, email)
    return result