Exemplo n.º 1
0
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())
Exemplo n.º 2
0
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())
Exemplo n.º 3
0
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())
Exemplo n.º 4
0
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))
Exemplo n.º 5
0
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())
Exemplo n.º 6
0
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())
Exemplo n.º 7
0
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)
Exemplo n.º 8
0
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())
Exemplo n.º 9
0
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())