@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 void classpageUserRemove(String code, List<String> mailIds, User apiCaller) throws Exception { UserGroup userGroup = this.getUserGroupService().findUserGroupByGroupCode(code); Classpage classpage = this.getCollectionRepository().getClasspageByCode(code); if (userGroup != null && classpage != null) { for (String mailId : mailIds) { Identity identity = this.getUserRepository().findByEmailIdOrUserName(mailId, true, false); if (identity != null) { UserGroupAssociation userGroupAssociation = this.getUserRepository() .getUserGroupMemebrByGroupUid( userGroup.getPartyUid(), identity.getUser().getPartyUid()); if (userGroupAssociation != null) { this.getUserGroupRepository().remove(userGroupAssociation); } InviteUser inviteUser = this.getInviteRepository().findInviteUserById(mailId, classpage.getGooruOid()); if (inviteUser != null) { this.getInviteRepository().remove(inviteUser); } } } } }
@Override public List<Map<String, Object>> classpageUserJoin( String code, List<String> mailIds, User apiCaller) throws Exception { List<Map<String, Object>> classpageMember = new ArrayList<Map<String, Object>>(); UserGroup userGroup = this.getUserGroupService().findUserGroupByGroupCode(code); Classpage classpage = this.getCollectionRepository().getClasspageByCode(code); if (userGroup != null && classpage != null) { for (String mailId : mailIds) { Identity identity = this.getUserRepository().findByEmailIdOrUserName(mailId, true, false); if (identity != null) { InviteUser inviteUser = this.getInviteRepository().findInviteUserById(mailId, classpage.getGooruOid()); if (inviteUser != null) { inviteUser.setStatus( this.getCustomTableRepository().getCustomTableValue(INVITE_USER_STATUS, ACTIVE)); inviteUser.setJoinedDate(new Date(System.currentTimeMillis())); this.getInviteRepository().save(inviteUser); } if (this.getUserRepository() .getUserGroupMemebrByGroupUid( userGroup.getPartyUid(), identity.getUser().getPartyUid()) == null) { UserGroupAssociation groupAssociation = new UserGroupAssociation(); groupAssociation.setIsGroupOwner(0); groupAssociation.setUser(identity.getUser()); groupAssociation.setUserGroup(userGroup); this.getUserRepository().save(groupAssociation); classpageMember.add(setMemberResponse(groupAssociation, ACTIVE)); } } } } return classpageMember; }
@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); }
@Override public Classpage getClasspage(String classpageCode, User user) throws Exception { Classpage classpage = this.getCollectionRepository().getClasspageByCode(classpageCode); if (classpage == null) { throw new NotFoundException("Class not found"); } return getClasspage(classpage.getGooruOid(), user, PERMISSIONS); }
@Override public List<Map<String, String>> inviteUserForClass( List<String> emails, String classCode, User apiCaller) { Classpage classPage = this.getCollectionRepository().getClasspageByCode(classCode); if (classPage == null) { throw new NotFoundException(generateErrorMessage(GL0006, CLASS)); } List<Map<String, String>> invites = new ArrayList<Map<String, String>>(); List<InviteUser> inviteUsers = null; for (String email : emails) { InviteUser inviteUser = this.getInviteRepository().findInviteUserById(email, classPage.getGooruOid(), null); inviteUsers = new ArrayList<InviteUser>(); if (inviteUser == null) { inviteUsers.add(createInviteUserObj(email, classPage.getGooruOid(), CLASS, apiCaller)); } Map<String, String> inviteMap = new HashMap<String, String>(); inviteMap.put(EMAIL_ID, email); inviteMap.put(GOORU_OID, classPage.getGooruOid()); inviteMap.put(STATUS, PENDING); invites.add(inviteMap); Profile profile = this.getUserRepository().getProfile(classPage.getUser(), false); String gender = ""; String noun = ""; if (profile.getGender() != null) { if (profile.getGender().getName().equalsIgnoreCase(FEMALE)) { gender = MS; noun = HER; } else if (profile.getGender().getName().equalsIgnoreCase(MALE)) { gender = MR; noun = HIS; } } this.getMailHandler() .sendMailToInviteUser(inviteMap, classPage.getUser(), classPage.getTitle(), gender, noun); } if (inviteUsers != null) { this.getInviteRepository().saveAll(inviteUsers); } return invites; }
private List<Map<String, Object>> getPendingMemberList(String code) { Classpage classpage = this.getCollectionRepository().getClasspageByCode(code); if (classpage == null) { throw new NotFoundException("Class not found!!!"); } List<InviteUser> inviteUsers = this.getInviteRepository().getInviteUsersById(classpage.getGooruOid()); List<Map<String, Object>> pendingList = new ArrayList<Map<String, Object>>(); if (inviteUsers != null) { for (InviteUser inviteUser : inviteUsers) { pendingList.add(this.setInviteMember(inviteUser, PENDING)); } } return pendingList; }