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
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'
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')
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')
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
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
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
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')
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
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
def login(email): result = UserController.retrieve_user(UserFields.googleid.name, email) return result