@Override public ActionResponseDTO<Classpage> createClasspage( Classpage classpage, boolean addToUserClasspage, String assignmentId) throws Exception { Errors errors = validateClasspage(classpage); if (!errors.hasErrors()) { this.getCollectionRepository().save(classpage); if (assignmentId != null && !assignmentId.isEmpty()) { CollectionItem collectionItem = new CollectionItem(); collectionItem.setItemType(ShelfType.AddedType.ADDED.getAddedType()); collectionItem = this.createClasspageItem( assignmentId, classpage.getGooruOid(), collectionItem, classpage.getUser(), CollectionType.CLASSPAGE.getCollectionType()) .getModel(); Set<CollectionItem> collectionItems = new TreeSet<CollectionItem>(); collectionItems.add(collectionItem); classpage.setCollectionItems(collectionItems); } if (addToUserClasspage) { CollectionItem collectionItem = new CollectionItem(); collectionItem.setItemType(ShelfType.AddedType.ADDED.getAddedType()); this.createClasspageItem( classpage.getGooruOid(), null, collectionItem, classpage.getUser(), CollectionType.USER_CLASSPAGE.getCollectionType()); } this.getCollectionRepository().save(classpage); } return new ActionResponseDTO<Classpage>(classpage, errors); }
@Override public ActionResponseDTO<Classpage> createClasspage( Classpage newClasspage, CollectionItem newCollectionItem, String gooruOid, User user) throws Exception { Errors errors = validateClasspage(newClasspage); if (!errors.hasErrors()) { this.getCollectionRepository().save(newClasspage); this.getUserGroupService() .createGroup( newClasspage.getTitle(), newClasspage.getClasspageCode(), "System", user, null); if (gooruOid != null && !gooruOid.isEmpty() && newCollectionItem != null) { CollectionItem collectionItem = new CollectionItem(); collectionItem.setItemType(ShelfType.AddedType.ADDED.getAddedType()); collectionItem.setPlannedEndDate(newCollectionItem.getPlannedEndDate()); collectionItem.setNarration(newCollectionItem.getNarration()); collectionItem = this.createCollectionItem( gooruOid, newClasspage.getGooruOid(), collectionItem, newClasspage.getUser(), CollectionType.COLLECTION.getCollectionType(), false) .getModel(); Set<CollectionItem> collectionItems = new TreeSet<CollectionItem>(); collectionItems.add(collectionItem); newClasspage.setCollectionItems(collectionItems); this.getCollectionRepository().save(newClasspage); } } return new ActionResponseDTO<Classpage>(newClasspage, errors); }
private String moveCollection(String collectionId, Collection targetCollection, User user) { CollectionItem sourceCollectionItem = getCollectionDao().getCollectionItemById(collectionId, user); rejectIfNull(sourceCollectionItem, GL0056, 404, COLLECTION); // need to put validation for collaborator CollectionItem collectionItem = new CollectionItem(); if (sourceCollectionItem.getItemType() != null) { collectionItem.setItemType(sourceCollectionItem.getItemType()); } String collectionType = getParentCollection( sourceCollectionItem.getContent().getContentId(), sourceCollectionItem.getContent().getContentType().getName(), collectionId, targetCollection); String contentType = null; if (collectionType.equalsIgnoreCase(LESSON)) { contentType = sourceCollectionItem.getContent().getContentType().getName(); } createCollectionItem(collectionItem, targetCollection, sourceCollectionItem.getContent(), user); resetSequence( sourceCollectionItem.getCollection().getGooruOid(), sourceCollectionItem.getCollectionItemId(), user.getPartyUid(), COLLECTION); getCollectionDao().remove(sourceCollectionItem); getAsyncExecutor().deleteFromCache(V2_ORGANIZE_DATA + user.getPartyUid() + "*"); return contentType; }
@Override @Transactional( readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public ActionResponseDTO<CollectionItem> createResource( String collectionId, CollectionItem collectionItem, User user) { Resource resource = collectionItem.getResource(); final Errors errors = validateResource(resource); if (!errors.hasErrors()) { Collection collection = getCollectionDao().getCollectionByType(collectionId, COLLECTION_TYPES); rejectIfNull(collection, GL0056, 404, COLLECTION); resource.setSharing(collection.getSharing()); resource = getResourceBoService().createResource(resource, user); collectionItem.setItemType(ADDED); collectionItem = createCollectionItem(collectionItem, collection, resource, user); getCollectionEventLog() .collectionItemEventLog( collectionId, collectionItem, user.getPartyUid(), RESOURCE, collectionItem, ADD); updateCollectionMetaDataSummary(collection.getContentId(), RESOURCE, ADD); Map<String, Object> data = generateResourceMetaData(resource, collectionItem.getResource(), user); createContentMeta(resource, data); } return new ActionResponseDTO<CollectionItem>(collectionItem, errors); }
@Override @Transactional( readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public CollectionItem addResource(String collectionId, String resourceId, User user) { Collection collection = getCollectionDao().getCollectionByType(collectionId, COLLECTION_TYPES); rejectIfNull(collection, GL0056, 404, COLLECTION); Resource resource = getResourceBoService().getResource(resourceId); rejectIfNull(resource, GL0056, 404, RESOURCE); reject(!resource.getContentType().getName().equalsIgnoreCase(QUESTION), GL0056, 404, RESOURCE); updateCollectionMetaDataSummary(collection.getContentId(), RESOURCE, ADD); CollectionItem collectionItem = new CollectionItem(); getCollectionEventLog() .collectionItemEventLog( collectionId, collectionItem, user.getPartyUid(), RESOURCE, null, ADD); collectionItem.setItemType(ADDED); return createCollectionItem(collectionItem, collection, resource, user); }
private Collection copyLesson(Collection lesson, Collection unit, User user) { Collection newLesson = new Collection(); newLesson.setTitle(lesson.getTitle()); newLesson.setCopiedCollectionId(lesson.getGooruOid()); newLesson.setCollectionType(lesson.getCollectionType()); newLesson.setDescription(lesson.getDescription()); newLesson.setNotes(lesson.getNotes()); newLesson.setLanguage(lesson.getLanguage()); newLesson.setImagePath(lesson.getImagePath()); newLesson.setGooruOid(UUID.randomUUID().toString()); newLesson.setContentType(lesson.getContentType()); newLesson.setLastModified(new Date(System.currentTimeMillis())); newLesson.setCreatedOn(new Date(System.currentTimeMillis())); newLesson.setIsRepresentative(0); newLesson.setSharing(lesson.getSharing()); newLesson.setUser(user); newLesson.setOrganization(lesson.getOrganization()); newLesson.setCreator(lesson.getCreator()); newLesson.setUrl(lesson.getUrl()); this.getCollectionDao().save(newLesson); // copy lesson items to collection lessonCopyItems(lesson.getGooruOid(), newLesson, user); copyContentTaxonomyCourse(lesson.getContentId(), newLesson); copyContentMetaAssoc(lesson.getContentId(), newLesson); copyContentClassification(lesson.getContentId(), newLesson); copyCollectionRepoStorage(lesson, newLesson); // copy content meta details ContentMeta contentMeta = this.getContentRepository().getContentMeta(lesson.getContentId()); ContentMeta newContentMeta = new ContentMeta(); if (contentMeta != null) { newContentMeta.setContent(newLesson); newContentMeta.setMetaData(contentMeta.getMetaData()); this.getContentRepository().save(newContentMeta); } // associating the copied collection to lesson CollectionItem newCollectionItem = new CollectionItem(); newCollectionItem.setItemType(ADDED); createCollectionItem(newCollectionItem, unit, newLesson, user); return newLesson; }
@Override @Transactional( readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public CollectionItem addQuestion(String collectionId, String questionId, User user) { Collection collection = getCollectionDao().getCollectionByType(collectionId, COLLECTION_TYPES); rejectIfNull(collection, GL0056, 404, COLLECTION); AssessmentQuestion question = this.getQuestionService().getQuestion(questionId); rejectIfNull(question, GL0056, 404, QUESTION); AssessmentQuestion copyQuestion = this.getQuestionService().copyQuestion(question, user); CollectionItem collectionItem = new CollectionItem(); getCollectionEventLog() .collectionItemEventLog( collectionId, collectionItem, user.getPartyUid(), QUESTION, null, ADD); collectionItem.setItemType(ADDED); collectionItem = createCollectionItem(collectionItem, collection, copyQuestion, user); updateCollectionMetaDataSummary(collection.getContentId(), QUESTION, ADD); Map<String, Object> metaData = generateQuestionMetaData(copyQuestion, copyQuestion, user); createContentMeta(copyQuestion, metaData); return collectionItem; }
@Override public ActionResponseDTO<CollectionItem> createClasspageItem( String assignmentGooruOid, String classpageGooruOid, CollectionItem collectionItem, User user, String type) throws Exception { Classpage classpage = null; if (type != null && type.equalsIgnoreCase(CollectionType.USER_CLASSPAGE.getCollectionType())) { if (classpageGooruOid != null) { classpage = this.getClasspage(classpageGooruOid, null, null); } else { classpage = this.getCollectionRepository() .getUserShelfByClasspageGooruUid( user.getGooruUId(), CollectionType.USER_CLASSPAGE.getCollectionType()); } if (classpage == null) { classpage = new Classpage(); classpage.setTitle(MY_CLASSPAGE); classpage.setCollectionType(CollectionType.USER_CLASSPAGE.getCollectionType()); classpage.setClasspageCode(BaseUtil.base48Encode(7)); classpage.setGooruOid(UUID.randomUUID().toString()); ContentType contentType = (ContentType) this.getCollectionRepository().get(ContentType.class, ContentType.RESOURCE); classpage.setContentType(contentType); ResourceType resourceType = (ResourceType) this.getCollectionRepository() .get(ResourceType.class, ResourceType.Type.CLASSPAGE.getType()); classpage.setResourceType(resourceType); classpage.setLastModified(new Date(System.currentTimeMillis())); classpage.setCreatedOn(new Date(System.currentTimeMillis())); classpage.setSharing(Sharing.PRIVATE.getSharing()); classpage.setUser(user); classpage.setOrganization(user.getPrimaryOrganization()); classpage.setCreator(user); classpage.setDistinguish(Short.valueOf(ZERO)); classpage.setRecordSource(NOT_ADDED); classpage.setIsFeatured(0); this.getCollectionRepository().save(classpage); } collectionItem.setItemType(ShelfType.AddedType.SUBSCRIBED.getAddedType()); } else { classpage = this.getClasspage(classpageGooruOid, null, null); collectionItem.setItemType(ShelfType.AddedType.ADDED.getAddedType()); } Collection collection = this.getCollectionRepository() .getCollectionByGooruOid(assignmentGooruOid, classpage.getUser().getGooruUId()); Errors errors = validateClasspageItem(classpage, collection, collectionItem); if (collection != null) { if (!errors.hasErrors()) { collectionItem.setCollection(classpage); collectionItem.setResource(collection); int sequence = collectionItem.getCollection().getCollectionItems() != null ? collectionItem.getCollection().getCollectionItems().size() + 1 : 1; collectionItem.setItemSequence(sequence); this.getCollectionRepository().save(collectionItem); } } else { throw new Exception("invalid assignmentId -" + assignmentGooruOid); } return new ActionResponseDTO<CollectionItem>(collectionItem, errors); }