def find_courses(): params = request.get_json() term_id = params.get('termId') filter_ = params.get('filter', 'Not Invited') if filter_ not in get_search_filter_options() or not term_id: raise BadRequestError('One or more required params are missing or invalid') if filter_ == 'Do Not Email': courses = SisSection.get_courses_opted_out(term_id) elif filter_ == 'Invited': courses = SisSection.get_courses_invited(term_id) elif filter_ == 'Not Invited': courses = SisSection.get_eligible_courses_not_invited(term_id) elif filter_ == 'Partially Approved': courses = SisSection.get_courses_partially_approved(term_id) elif filter_ == 'Scheduled': courses = SisSection.get_courses_scheduled(term_id) else: raise BadRequestError(f'Invalid filter: {filter_}') return tolerant_jsonify(courses)
def _get_courses_per_filter(filter_, term_id): if filter_ not in get_search_filter_options() or not term_id: raise BadRequestError('One or more required params are missing or invalid') if filter_ == 'All': courses = SisSection.get_courses(term_id) elif filter_ == 'Do Not Email': courses = SisSection.get_courses_opted_out(term_id) elif filter_ == 'Invited': courses = SisSection.get_courses_invited(term_id) elif filter_ == 'Not Invited': courses = SisSection.get_eligible_courses_not_invited(term_id) elif filter_ == 'Partially Approved': courses = SisSection.get_courses_partially_approved(term_id) elif filter_ == 'Queued for Scheduling': courses = SisSection.get_courses_queued_for_scheduling(term_id) elif filter_ == 'Scheduled': courses = SisSection.get_courses_scheduled_standard_dates(term_id) elif filter_ == 'Scheduled (Nonstandard Dates)': courses = SisSection.get_courses_scheduled_nonstandard_dates(term_id) else: raise BadRequestError(f'Invalid filter: {filter_}') return courses