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 put(self):
        """Set your status and blurb."""
        user = users.get_current_user()
        if not user:
            self.response.out.write(
                json.dumps(error_obj('User not logged in.')))
            return
        user_account = user_info.get_user_account()
        new_status = self.request.get('status')
        new_blurb = self.request.get('blurb')

        name = self.request.get(
            'name'
        )  #and here is where we'd check if username is already taken!
        if name:
            user_account.name = name
            user_account.put()
            self.response.out.write(json.dumps(success_obj()))
            return

        if not new_status or not new_blurb:
            self.response.out.write(
                json.dumps(
                    error_obj('Request must include status and blurb.')))
            return
        if len(new_blurb) > 50:
            self.response.out.write(
                json.dumps(
                    error_obj('Blurb cannot be more than 50 characters.')))
        user_account.status = int(new_status)
        user_account.availability = new_status
        user_account.message = new_blurb
        user_account.put()
        self.response.out.write(json.dumps(success_obj()))
Exemplo n.º 3
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.º 4
0
 def post(self):
     """Add a friend"""
     user = users.get_current_user()
     if not user:
         self.response.out.write(json.dumps(error_obj('User not logged in.')))
         return
         
         
     friend = self.request.get('email')
     if not friend:
         self.response.out.write(json.dumps(error_obj('Must provide email of friend to add.')))
         return
         
     #added in for fun
     account = user_info.get_user_account()
     if friend in account.friend_list:
         self.response.out.write(json.dumps(error_obj('You are already friends with this user.')))
         return
     #/added in for fun  
         
     friend_account = user_info.get_by_email(friend)
     if not friend_account:
         self.response.out.write(json.dumps(error_obj('There is no account for this email.')))
         return
     account.friend_list.append(friend)
     account.put()
     self.response.out.write(json.dumps(success_obj()))
Exemplo n.º 5
0
 def get(self):
     user = users.get_current_user()
     if user:
         info = user_info.get_user_account()
         self.response.out.write(json.dumps(friend_list(info)))
     else:
         self.response.out.write(json.dumps(error_obj('User not logged in.')))
Exemplo n.º 6
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.º 7
0
 def get(self):
     """Get your status and blurb."""
     user = users.get_current_user()
     if user:
         user_account = user_info.get_user_account()
         self.response.out.write(json.dumps(account_info(user_account)))
     else:
         self.response.out.write(
             json.dumps(error_obj('User not logged in.')))
Exemplo n.º 8
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.º 9
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.º 10
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.º 11
0
 def get(self):
     """Get a global friend's availability and blurb."""
     user = users.get_current_user()
     if not user:
         self.response.out.write(json.dumps(error_obj('User not logged in.')))
         return
     friend = self.request.get('email')
     if not friend:
         self.response.out.write(json.dumps(error_obj('Must provide email of friend to add.')))
         return
     account = user_info.get_user_account()
     if not friend in account.friend_list:
         self.response.out.write(json.dumps(error_obj('This email is not in your friends list.')))
         return
     friend_account = user_info.get_by_email(friend)
     self.response.out.write(json.dumps(account_info(friend_account)))
Exemplo n.º 12
0
 def delete(self):
     """Remove a friend."""
     user = users.get_current_user()
     if not user:
         self.response.out.write(json.dumps(error_obj('User not logged in.')))
         return
     friend = self.request.get('email')
     if not friend:
         self.response.out.write(json.dumps(error_obj('Must provide email of friend to add.')))
         return
     account = user_info.get_user_account()
     if not friend in account.friend_list:
         self.response.out.write(json.dumps(error_obj('This email is not in your friends list.')))
         return
     account.friend_list.remove(friend)
     account.put()
     self.response.out.write(json.dumps(success_obj()))
Exemplo n.º 13
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.º 14
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.º 15
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())