def post_user(parameters): user = users.get_current_user() user_account = user_info.get_user_account() to_join = Group.get_by_name(parameters['groupName']) if not to_join: return json.dumps(error_obj('No group with this name exists.')) if to_join.key in user_account.group_keys: return json.dumps(error_obj('User already in this group.')) user_account.group_keys.append(to_join.key) user_account.put() # Making the new group member user_member = GroupMembers(email=user_account.email, status=0, name=user_account.name) user_member.blurb = parameters['blurb'] user_member.name = user_account.name #added this in to add name with group_user user_member.group_key = to_join.key user_member.put() # Updating the group to_join.members.append(user_member.key) to_join.put() return json.dumps(success_obj())
def post_group(parameters): if len(parameters['blurb']) > 50: return json.dumps(error_obj('Blurb cannot be longer than 50 chars')) if GroupModel.get_by_name(parameters['groupName']): return json.dumps(error_obj('Group with this name already exists.')) user = users.get_current_user() user_account = user_info.get_user_account() new_group = GroupModel(name=parameters['groupName'], blurb=parameters['blurb']) new_group.admin_email = user.email() # Making the creator a member creator_member = GroupMembers(status=0, group_key=new_group.key, email=user.email(), name=user_account.name) creator_member.blurb = 'Let there be a group.' creator_member.put() new_group.members.append(creator_member.key) new_group.put() # Putting the group in the member's group list user_account.group_keys.append(new_group.key) user_account.put() return json.dumps(success_obj())
def post_member(parameters): user = users.get_current_user() user_account = user_info.get_user_account() group = Group.get_by_name(parameters['groupName']) if not group: return json.dumps(error_obj('No group with this name exists.')) if not group.admin_email == user_account.email: return json.dumps(error_obj('User not the admin of this group.')) new_user = user_info.get_by_email(parameters['email']) if not new_user: return json.dumps(error_obj('This email not associated with a user.')) # Making the new member member = GroupMembers(email=new_user.email, status=0, blurb="Just got added!") member.group_key = group.key member.put() # Updating the group group.members.append(member.key) group.put() # Updating the account new_user.group_keys.append(group.key) new_user.put() return json.dumps(success_obj())
def get_group(parameters): user = users.get_current_user() group = GroupModel.get_by_name(parameters['groupName']) if not group: return json.dumps(error_obj('No group with this name exists.')) user_account = user_info.get_user_account() if not group.key in user_account.group_keys: return json.dumps(error_obj('The user is not in this group.')) return json.dumps(group_info(group))
def delete_group(parameters): user = users.get_current_user() to_delete = GroupModel.get_by_name(parameters['groupName']) if not to_delete: return json.dumps(error_obj('No group with this name exists.')) user_account = user_info.get_user_account() if not to_delete.admin_email == user_account.email: return json.dumps(error_obj('You are not the admin of this group')) to_delete.clean_delete() return json.dumps(success_obj())
def put_user(parameters): user = users.get_current_user() to_update = Group.get_by_name(parameters['groupName']) if not to_update: return json.dumps(error_obj('No group with this name exists.')) user_account = user_info.get_user_account() if not to_update.key in user_account.group_keys: return json.dumps(error_obj('You are not in this group')) user_member = to_update.get_member(user_account.email) if not user_member: return json.dumps(error_obj('Server error.')) user_member.blurb = parameters['blurb'] user_member.status = int(parameters['status']) #workaround? user_member.put() #save dis shiz return json.dumps(success_obj())
def get_user(parameters): user = users.get_current_user() group = Group.get_by_name(parameters['groupName']) if not group: return json.dumps(error_obj('No group with this name exists.')) user_account = user_info.get_user_account() if not group.key in user_account.group_keys: return json.dumps(error_obj('The user is not in this group.')) member = group.get_member(user_account.email) info = { 'email': member.email, 'status': member.status, 'blurb': member.blurb, 'name': user_account.name, 'groupName': group.name } return json.dumps(info)
def delete_user(parameters): """Leave a group""" user = users.get_current_user() to_leave = Group.get_by_name(parameters['groupName']) if not to_leave: return json.dumps(error_obj('No group with this name exists.')) user_account = user_info.get_user_account() if not to_leave.key in user_account.group_keys: return json.dumps(error_obj('You are not the in this group')) if user_account.email == to_leave.admin_email: return json.dumps(error_obj('You are the admin of this group.')) user_member = GroupMembers.query( ndb.AND(GroupMembers.group_key == to_leave.key, GroupMembers.email == user.email())).get() to_leave.members.remove(user_member.key) to_leave.put() user_account.group_keys.remove(to_leave.key) user_account.put() user_member.key.delete() return json.dumps(success_obj())
def delete_user(parameters): user = users.get_current_user() user_account = user_info.get_user_account() group = Group.get_by_name(parameters['groupName']) if not group: return json.dumps(error_obj('No group with this name exists.')) if not group.admin_email == user_account.email: return json.dumps(error_obj('User not the admin of this group.')) del_user = group.get_member(parameters['email']) if not del_user: return json.dumps(error_obj('This email not associated with a user in the group.')) del_account = user_info.get_by_email(parameters['email']) if not del_account: return json.dumps(error_obj('Database error.')) del_account.group_keys.remove(group.key) del_account.put() group.members.remove(del_user.key) group.put() del_user.key.delete() return json.dumps(success_obj())