use of org.motechproject.mots.domain.Course in project mots by motech-implementations.
the class ModuleService method createCourse.
/**
* Create new Course.
* @return Created Course
*/
@Transactional
@PreAuthorize(RoleNames.HAS_MANAGE_MODULES_ROLE)
public Course createCourse() {
List<Course> courses = courseRepository.findByStatus(Status.DRAFT);
if (courses != null && !courses.isEmpty()) {
throw new MotsException("Only one draft course allowed at a time");
}
Course releasedCourse = getReleasedCourseIfExists();
Course course;
if (releasedCourse == null) {
course = Course.initialize();
} else {
course = releasedCourse.copyAsNewDraft();
}
return courseRepository.save(course);
}
use of org.motechproject.mots.domain.Course in project mots by motech-implementations.
the class ModuleService method updateCourse.
/**
* Update existing Course.
* @param id id of Course to be updated
* @param courseDto Course DTO
* @return updated Course
*/
@PreAuthorize(RoleNames.HAS_MANAGE_MODULES_ROLE)
public Course updateCourse(UUID id, CourseDto courseDto) {
Course course = findCourseById(id);
if (!Status.DRAFT.equals(course.getStatus())) {
throw new MotsException("Only Course draft can be updated");
}
moduleMapper.updateCourseFromDto(courseDto, course);
return courseRepository.save(course);
}
use of org.motechproject.mots.domain.Course in project mots by motech-implementations.
the class ModuleService method updateModule.
/**
* Update existing Module.
* @param id id of Module to be updated
* @param moduleDto Module DTO
* @return updated Module
*/
@PreAuthorize(RoleNames.HAS_MANAGE_MODULES_ROLE)
public ModuleDto updateModule(UUID id, ModuleDto moduleDto) {
Course course = getDraftCourse();
CourseModule courseModule = course.findCourseModuleByModuleId(id);
Module module = courseModule.getModule();
if (!Status.DRAFT.equals(module.getStatus())) {
throw new MotsException("Only Module draft can be updated");
}
moduleMapper.updateCourseModuleFromDto(moduleDto, courseModule);
courseModule = courseModuleRepository.save(courseModule);
return moduleMapper.toDto(courseModule);
}
use of org.motechproject.mots.domain.Course in project mots by motech-implementations.
the class ModuleService method copyModule.
/**
* Copy Module as a new draft.
* @param id id of module to be copied
* @return copied module draft
*/
@PreAuthorize(RoleNames.HAS_MANAGE_MODULES_ROLE)
public ModuleDto copyModule(UUID id) {
Course course = getDraftCourse();
CourseModule courseModule = course.findCourseModuleByModuleId(id);
if (!Status.RELEASED.equals(courseModule.getModule().getStatus())) {
throw new MotsException("Only released Module can be copied");
}
Module moduleCopy = courseModule.getModule().copyAsNewDraft();
courseModule.setModule(moduleCopy);
courseModule = courseModuleRepository.save(courseModule);
return moduleMapper.toDto(courseModule);
}
use of org.motechproject.mots.domain.Course in project mots by motech-implementations.
the class ModuleService method createModule.
/**
* Create new Module.
* @param moduleDto DTO of Module to be created
* @return Created Module
*/
@Transactional
@PreAuthorize(RoleNames.HAS_MANAGE_MODULES_ROLE)
public ModuleDto createModule(ModuleDto moduleDto) {
Course course = getDraftCourse();
CourseModule courseModule = new CourseModule(course, Module.initialize(), course.getModules().size());
moduleMapper.updateCourseModuleFromDto(moduleDto, courseModule);
courseModule = courseModuleRepository.save(courseModule);
return moduleMapper.toDto(courseModule);
}
Aggregations