Exemplo n.º 1
0
def create_curated_group():
    params = request.get_json()
    name = params.get('name', None)
    if not name:
        raise BadRequestError('Curated group creation requires \'name\'')
    curated_group = CuratedGroup.create(current_user.get_id(), name)
    # Optionally, add students
    if 'sids' in params:
        sids = [sid for sid in set(params.get('sids')) if sid.isdigit()]
        CuratedGroup.add_students(curated_group_id=curated_group.id, sids=sids)
    return tolerant_jsonify(curated_group.to_api_json())
Exemplo n.º 2
0
def create_curated_group():
    params = request.get_json()
    domain = get_param(params, 'domain', 'default')
    if is_unauthorized_domain(domain):
        raise ForbiddenRequestError(
            f'You are unauthorized to use the \'{domain}\' domain')
    name = params.get('name', None)
    if not name:
        raise BadRequestError('Curated group creation requires \'name\'')
    curated_group = CuratedGroup.create(domain=domain,
                                        name=name,
                                        owner_id=current_user.get_id())
    # Optionally, add students
    if 'sids' in params:
        sids = [sid for sid in set(params.get('sids')) if sid.isdigit()]
        CuratedGroup.add_students(curated_group_id=curated_group.id, sids=sids)
    return tolerant_jsonify(curated_group.to_api_json(include_students=True))
Exemplo n.º 3
0
def add_students_to_curated_group():
    params = request.get_json()
    curated_group_id = params.get('curatedGroupId')
    return_student_profiles = params.get('returnStudentProfiles')
    sids = [sid for sid in set(params.get('sids')) if sid.isdigit()]
    if not curated_group_id or not len(sids):
        raise BadRequestError(
            'The required parameters are \'curatedGroupId\' and \'sids\'.')
    curated_group = CuratedGroup.find_by_id(curated_group_id)
    if not curated_group:
        raise ResourceNotFoundError(
            f'No curated group found where id={curated_group_id}')
    if curated_group.owner_id != current_user.get_id():
        raise ForbiddenRequestError(
            f'Current user, {current_user.get_uid()}, does not own curated group {curated_group.id}'
        )
    CuratedGroup.add_students(curated_group_id=curated_group_id, sids=sids)
    if return_student_profiles:
        return tolerant_jsonify(
            _curated_group_with_complete_student_profiles(
                curated_group_id=curated_group_id))
    else:
        group = CuratedGroup.find_by_id(curated_group_id)
        return tolerant_jsonify(group.to_api_json(include_students=False))