/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package net.paulgray.bbrest.enrollment; import blackboard.admin.persist.course.EnrollmentLoader; import blackboard.admin.persist.course.impl.EnrollmentDbLoader; import blackboard.persist.DbLoaderFactory; import blackboard.persist.PersistenceException; import net.paulgray.bbrest.BlackboardUtilities; import net.paulgray.bbrest.course.BbCourseService; import net.paulgray.lmsrest.course.Course; import net.paulgray.lmsrest.enrollment.Enrollment; import net.paulgray.lmsrest.enrollment.EnrollmentService; import net.paulgray.lmsrest.user.User; import java.util.LinkedList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import org.springframework.security.access.AccessDeniedException; /** * * @author pfgray */ public class BbEnrollmentService implements EnrollmentService { @Override public Enrollment getEnrollmentForId(String id) { try { EnrollmentLoader enrollmentDbLoader = EnrollmentDbLoader.Default.getInstance(); blackboard.admin.data.course.Enrollment template = new blackboard.admin.data.course.Enrollment(); template.setId(BlackboardUtilities.getIdFromPk(id, blackboard.admin.data.course.Enrollment.class)); return new BbEnrollment(enrollmentDbLoader.load(template).get(0)); } catch (PersistenceException ex) { Logger.getLogger(BbCourseService.class.getName()).log(Level.SEVERE, null, ex); return null; } } @Override public List<Enrollment> getEnrollmentsForCourse(Course course) { try { if (!BbCourseService.currentUserCanViewCourse(course.getId())) { throw new AccessDeniedException("User cannot view course: " + course.getId()); } EnrollmentLoader enrollmentDbLoader = EnrollmentDbLoader.Default.getInstance(); blackboard.admin.data.course.Enrollment template = new blackboard.admin.data.course.Enrollment(); template.setCourseId(BlackboardUtilities.getIdFromPk(course.getId(), blackboard.data.course.Course.class)); List<blackboard.admin.data.course.Enrollment> enrollments = enrollmentDbLoader.load(template); List<Enrollment> toReturn = new LinkedList<Enrollment>(); for (blackboard.admin.data.course.Enrollment enrollment : enrollments) { toReturn.add(new BbEnrollment(enrollment)); } return toReturn; } catch (PersistenceException ex) { Logger.getLogger(BbCourseService.class.getName()).log(Level.SEVERE, null, ex); return null; } } @Override public List<Enrollment> getEnrollmentsForUser(User user) { try { EnrollmentLoader enrollmentDbLoader = EnrollmentDbLoader.Default.getInstance(); blackboard.admin.data.course.Enrollment template = new blackboard.admin.data.course.Enrollment(); template.setUserId(BlackboardUtilities.getIdFromPk(user.getId(), blackboard.data.user.User.class)); List<blackboard.admin.data.course.Enrollment> enrollments = enrollmentDbLoader.load(template); List<Enrollment> toReturn = new LinkedList<Enrollment>(); for (blackboard.admin.data.course.Enrollment enrollment : enrollments) { toReturn.add(new BbEnrollment(enrollment)); } return toReturn; } catch (PersistenceException ex) { Logger.getLogger(BbCourseService.class.getName()).log(Level.SEVERE, null, ex); return null; } } }