import * as C from '../api/courseAPITypes'; import {canvas, Match} from '../request/requestBuidler'; import {Permission} from '../api/permissionTypes'; export async function createCourse( accountId: Match, courseInfo: Match ) { return canvas({ uri: "/api/v1/accounts/:account_id/courses", uriParams: accountId, method: "POST", param: courseInfo, }); } export async function getCourse( courseId: Match["id"], includes: Match["include"], teacherLimit?: number, ) { return canvas({ uri: "/api/v1/courses/:id", uriParams: {id: courseId}, method: "GET", param: { include: Array.from(new Set(includes)), teacher_limit: teacherLimit, } }) } export async function getCourses( param: Match ) { return canvas({ uri: "/api/v1/courses", method: "GET", param, }); } export async function getCoursesByUser( userId: number | "self", param: Match ) { return canvas({ uri: "/api/v1/users/:user_id/courses", uriParams: {user_id: userId}, method: "GET", param, }) } export async function getCourseByUser(userId: Match["user_id"], config: Match, ) { return canvas({ uri: "/api/v1/users/:user_id/courses", uriParams: {user_id: userId}, method: "GET", param: config }) } export async function getUsersInCourse( courseId: Match["course_id"], config: Match ) { return canvas({ uri: "/api/v1/courses/:course_id/users", uriParams: {course_id: courseId}, method: "GET", param: config, }); } export async function getStudentsInCourse( courseId: Match["course_id"], ) { return canvas({ uri: "/api/v1/courses/:course_id/students", uriParams: {course_id: courseId}, method: "GET", param: {}, }); } export async function getCourseEffectiveDueDates( courseId: Match["course_id"], config: Match, ) { return canvas({ uri: "/api/v1/courses/:course_id/effective_due_dates", uriParams: {course_id: courseId}, method: "GET", param: config, }); } export async function getCoursePermission( courseId: Match["course_id"], permissions: Permission[], ) { return canvas({ uri: "/api/v1/courses/:course_id/permissions", uriParams: {course_id: courseId}, method: "GET", param: {permissions}, }); }