package fi.otavanopisto.pyramus.rest.controller; import java.util.Date; import java.util.List; import javax.ejb.Stateless; import javax.enterprise.context.Dependent; import javax.inject.Inject; import fi.otavanopisto.pyramus.dao.base.AcademicTermDAO; import fi.otavanopisto.pyramus.dao.courses.CourseDAO; import fi.otavanopisto.pyramus.domainmodel.base.AcademicTerm; import fi.otavanopisto.pyramus.domainmodel.courses.Course; import fi.otavanopisto.pyramus.domainmodel.users.User; import fi.otavanopisto.pyramus.persistence.search.SearchResult; import fi.otavanopisto.pyramus.persistence.search.SearchTimeFilterMode; @Dependent @Stateless public class CalendarController { @Inject private AcademicTermDAO academicTermDAO; @Inject private CourseDAO courseDAO; public AcademicTerm createAcademicTerm(String name, Date startDate, Date endDate) { AcademicTerm academicTerm = academicTermDAO.create(name, startDate, endDate); return academicTerm; } public List<AcademicTerm> listAcademicTerms() { List<AcademicTerm> academicTerms = academicTermDAO.listAll(); return academicTerms; } public List<AcademicTerm> listUnarchivedAcademicTerms() { List<AcademicTerm> academicTerms = academicTermDAO.listUnarchived(); return academicTerms; } public AcademicTerm findAcademicTermById(Long id) { AcademicTerm academicTerm = academicTermDAO.findById(id); return academicTerm; } public SearchResult<Course> findCoursesByTerm(int resultsPerPage, int page, SearchTimeFilterMode timeFilterMode, Date timeframeStart, Date timeframeEnd, boolean filterArchived) { SearchResult<Course> courses = courseDAO.searchCourses(resultsPerPage, page, null, null, null, null, null, null, timeFilterMode, timeframeStart, timeframeEnd, filterArchived); return courses; } public AcademicTerm updateAcademicTerm(AcademicTerm term, String name, Date startDate, Date endDate) { academicTermDAO.update(term, name, startDate, endDate); return term; } public AcademicTerm archiveAcademicTerm(AcademicTerm academicTerm, User user) { academicTermDAO.archive(academicTerm, user); return academicTerm; } public AcademicTerm unarchiveAcademicTerm(AcademicTerm academicTerm, User user) { academicTermDAO.unarchive(academicTerm, user); return academicTerm; } public void deleteAcademicTerm(AcademicTerm academicTerm) { academicTermDAO.delete(academicTerm); } }