/**
 * Courses API
 */

import { restGet, restPost, restDelete, restPatch } from './restConsumer.js'

/**
 * Create a new course
 */
export async function createCourse(name, credits, teacher){
	return restPost("/course", {title: name, credits: credits, owner: teacher} )
}

/**
 * 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);
}
