80 lines
1.5 KiB
JavaScript
80 lines
1.5 KiB
JavaScript
/**
|
|
* Courses API
|
|
*/
|
|
|
|
import { restGet, restPost, restDelete, restPatch } from './restConsumer.js'
|
|
|
|
/**
|
|
* Create a new course
|
|
*/
|
|
export async function createCourse(name, credits, owner){
|
|
return restPost("/course", {title: name, credits: credits, owner} )
|
|
}
|
|
|
|
/**
|
|
* Delete the specified course
|
|
*/
|
|
export async function deleteCourse(id){
|
|
return restDelete("/course/" + id);
|
|
}
|
|
|
|
/**
|
|
* Get informations on a particular course
|
|
*
|
|
* @param id identification of the course
|
|
*
|
|
* @return all atribute of the specified course
|
|
* - name
|
|
* - credits
|
|
* - faculty
|
|
* - teacher
|
|
* - assistants : list
|
|
*/
|
|
export async function getCourse(id){
|
|
return restGet("/course/" + id);
|
|
}
|
|
|
|
/**
|
|
* Get the list of courses to display on secretary's option
|
|
*
|
|
* @return list of courses of the form
|
|
* - id
|
|
* - name
|
|
* - credits
|
|
* - facutly
|
|
* - teacher
|
|
* - Assistants
|
|
*/
|
|
export async function getCourses(role){
|
|
if(role==="Teacher"){
|
|
return restGet("/courses/owned")
|
|
}
|
|
return restGet("/courses")
|
|
}
|
|
|
|
|
|
/**
|
|
* Change the options of a course
|
|
*
|
|
* @param id the id of the course
|
|
* @param changes Object with value to changes
|
|
*
|
|
* The changes object can contain:
|
|
* - name
|
|
* - credits
|
|
* - faculty
|
|
* - teacher
|
|
* - assistants: should be a list and will replace all assistants
|
|
*/
|
|
export async function alterCourse(id, changes){
|
|
return restPatch("/course/" + id, changes);
|
|
}
|
|
|
|
/**
|
|
* Return a list containing all the actual courses of a user
|
|
*/
|
|
|
|
export async function getUserActualCourses(){
|
|
return restGet("/usercourses")
|
|
}
|