package no.niths.application.rest.school.interfaces;
import no.niths.application.rest.interfaces.GenericRESTController;
import no.niths.domain.school.Committee;
/**
* Controller for committee
* has the basic CRUD methods and
* methods too add and remove leader
* and event
*
* For the URL too get Committee add /committees
* after the {@value no.niths.common.constants.MiscConstants#NITHS_BASE_DOMAIN}
*/
public interface CommitteeController extends GenericRESTController<Committee> {
/**
* Adds a leader to a committee.
*
* Too add leader add /{committeeId}/leader/{studentId}
* too the URL
*
* Use the POST method
*
* @param committeeId the id of the committee
* @param studentId the id of the student
*/
public void addLeader(Long committeeId, Long studentId);
/**
* Removes a leader from a committee
*
* Too remove leader add /{committeeId}/leader/{studentId}
* too the URL
*
* Use the DELETE method
*
* @param committeeId the id of the committee
* @param studentId the id of the student
*/
public void removeLeader(Long committeeId, Long studentId);
/**
* Ads an event to a committee
*
* Too add event add /{committeeId}/event/{eventId}
* too the URL
*
* Use the POST method
*
* @param committeeId id of the committee
* @param eventId if of the event
*/
public void addEvent(Long committeeId, Long eventId);
/**
* Removes an event from a committee
*
* Too remove event add /{committeeId}/event/{eventId}
* too the URL
*
* Use the DELETE method
*
* @param committeeId id of the committee
* @param eventId if of the event
*/
public void removeEvent(Long committeeId, Long eventId);
}