Ejemplo n.º 1
0
def join(group_id):
    id_request = request_user_id(request)
    group = db.find_by_id('group', group_id)
    if not group:
        return res_error(400, 'Group do not exists.')

    group_users = group.get('users')
    group_requests = group.get('requests')
    group_invites = group.get('invites')

    if id_request in group_users:
        return res_success(200, 'User already in group.')

    if id_request in group_requests:
        return res_success(200, 'Request already send.')

    if id_request in group_invites:
        updated_group = manage_group('add', group_id, 'users', id_request)
        updated_group_2 = manage_group('remove', group_id, 'invites',
                                       id_request)
        updated_user = manage_user('add', id_request, 'groups', group_id)
        updated_user_2 = manage_user('remove', id_request, 'invites', group_id)
        return res_success(200, 'Joined.')
    else:
        updated_group = manage_group('add', group_id, 'invites', id_request)
        return res_success(200, 'Request send.')
Ejemplo n.º 2
0
def add_user(group_id, user_id):
    id_request = request_user_id(request)
    group = db.find_by_id('group', group_id)
    if not group:
        return res_error(400, 'Group do not exists.')

    if group.get('owner_id') != id_request:
        return res_error(401, 'Unauthorized.')

    group_users = group.get('users')
    group_requests = group.get('requests')
    group_invites = group.get('invites')

    if user_id in group_users:
        return res_success(200, 'User already a member.')

    if user_id in group_invites:
        return res_success(200, 'User already invited.')

    if user_id in group_requests:
        # adicionar no grupo
        updated_user = manage_user('add', user_id, 'groups', group_id)
        updated_group = manage_group('add', group_id, 'users', user_id)
        updated_group_2 = manage_group('remove', group_id, 'requests', user_id)
        return res_success(200, 'User accepted.')
    else:
        updated_user = manage_user('add', user_id, 'invites', group_id)
        updated_group = manage_group('add', group_id, 'invites', user_id)
        return res_success(200, 'User invited.')
Ejemplo n.º 3
0
def user_groups():
    id_request = request_user_id(request)
    print(id_request)
    all_groups = db.find_many('group', 'owner_id',
                              [id_request]) if id_request else []
    return res_success(200, {
        'groups':
        list(map(lambda group: dissoc(group, 'owner_id'), all_groups))
    })
Ejemplo n.º 4
0
def get(id):
    id_request = request_user_id(request)
    group = db.find_by_id('group', id)

    authorized = id_request == group.get(
        'owner_id') or id_request in group.get('users')
    if authorized:
        return res_success(200, group)
    else:
        return res_success(200)
Ejemplo n.º 5
0
def get(id):
    user_id = request_user_id(request)
    user = User.objects(_id=user_id)

    if not user:
        return res_success(200)

    if id == user_id:
        return res_success(200, user)
    else:
        data = {'id': str(user.get('_id')), 'email': user.get('email')}
        return res_success(200, data)
Ejemplo n.º 6
0
def groups(id):
    user_id = request_user_id(request)
    if user_id != id:
        return res_error(401, 'Unauthorized.')

    user = db.find_by_id('user', user_id)
    if not user:
        return res_error(400, 'User do not exists.')

    id_list = list(map(lambda id: ObjectId(id), user.get('groups')))
    groups = db.find_many('group', '_id', id_list)
    if len(groups):
        return res_success(200, groups)
    else:
        return res_error(400, 'Group do not exists.')
Ejemplo n.º 7
0
def insert():
    valid_group = validate_group(request.json)
    error = valid_group.get('error')
    if error:
        return res_error(400, error)

    id_request = request_user_id(request)
    data = valid_group.get('data')
    data.update(owner_id=id_request)
    new_group = db.insert('group', data)

    if not new_group:
        res_error(500, 'Error in registration.')

    updated_user = manage_user('add', id_request, 'groups', new_group)
    return res_success(200, {'id': new_group}) if updated_user else res_error(
        500, 'Error in registration.')