def get_departments(): """ List all departments """ page = request.args.get('page', 1, int) page_size = request.args.get('pageSize', DEFAULT_PAGE_SIZE, int) order_by = request.args.get('orderBy', 'id', str) term_id = request.args.get('term_id', None, str) query = request.args.get('query', '', str) highlights = request.args.get('highlights', False, bool) params = dict(query=query, page=page, page_size=page_size, order_by=order_by, term_id=term_id) operation = get_all_departments if query: operation = search_departments if not highlights else search_highlights_departments params.pop('term_id') params.pop('order_by') else: params.pop('query') results = operation(**params) # results = get_all_departments(page, page_size, order_by, term_id) return responsify(results), 200
def get_courses(): """ List many courses """ query = request.args.get('query', '', str) page = request.args.get('page', 1, int) page_size = request.args.get('pageSize', DEFAULT_PAGE_SIZE, int) order_by = request.args.get('orderBy', 'id', str) highlights = request.args.get('highlights', False, bool) facets = get_id_facets_from_request( ['department_id', 'instructor_id', 'term_id']) params = dict(query=query, page=page, page_size=page_size, order_by=order_by, facets=facets) operation = get_all_courses if query: operation = search_courses if not highlights else search_highlights_courses params.pop('order_by') else: params.pop('query') results = operation(**params) # jsonify made this slow :( return responsify(results), 200
def get_instructors(): """ List all instructors """ page = request.args.get('page', 1, int) page_size = request.args.get('pageSize', DEFAULT_PAGE_SIZE, int) order_by = request.args.get('orderBy', 'id', str) term_id = request.args.get('term_id', None, str) department_id = request.args.get('department_id', None, str) query = request.args.get('query', '', str) highlights = request.args.get('highlights', False, bool) params = dict(query=query, page=page, page_size=page_size, order_by=order_by, term_id=term_id, department_id=department_id) operation = get_all_instructors if query: operation = search_instructors if not highlights else search_highlights_instructors params = {k: v for k, v in params.items() if k not in ['order_by', 'term_id', 'department_id']} else: params.pop('query') results = operation(**params) return responsify(results), 200
def get_course(report_id): """ Get a course given its identifier """ report = get_single_course(report_id) if not report: flask.abort(404) else: return responsify(report), 200
def get_instructor(instructor_id): """ Get an instructor given its identifier """ instructor = get_single_instructor(instructor_id) if not instructor: flask.abort(404) else: return responsify(instructor), 200
def get_term(term_id): """ get a term given its identifier """ term = get_single_term(term_id) if not term: flask.abort(404) else: return responsify(term), 200
def get_department(department_id): """ get a department given its identifier """ department = get_single_department(department_id) if not department: flask.abort(404) else: return responsify(department), 200
def get_scores(report_id): """ Get a course report and scores given its identifier """ report = get_single_report(report_id) if not report: flask.abort(404) else: # Avoiding jsonify because it can be slow return responsify(report), 200
def get_terms(): """ List all terms """ page = request.args.get('page', 1) page_size = request.args.get('pageSize', DEFAULT_PAGE_SIZE) order_by = request.args.get('orderBy', 'id') results = get_all_terms(page, page_size, order_by) return responsify(results), 200
def get_categories(): """ get list of answerable questions """ page = request.args.get('page', 1) page_size = request.args.get('pageSize', DEFAULT_PAGE_SIZE) order_by = request.args.get('orderBy', 'id') results = get_all_categories(page, page_size, order_by) return responsify(results), 200
def get_questions(): """ get list of answerable questions """ page = request.args.get('page', 1) page_size = request.args.get('pageSize', DEFAULT_PAGE_SIZE) order_by = request.args.get('orderBy', 'id') facets = get_id_facets_from_request(['category_id']) results = get_all_questions(page, page_size, order_by, facets) return responsify(results), 200