Exemplo n.º 1
0
  @Override
  @Transactional(
      readOnly = false,
      propagation = Propagation.REQUIRED,
      rollbackFor = Exception.class)
  public void inviteUserForClass(List<String> emails, final String classUid, final User user) {
    final UserClass userClass = this.getClassRepository().getClassById(classUid);
    rejectIfNull(userClass, GL0056, 404, CLASS);
    // To Do, Fix me

    CustomTableValue status =
        this.getCustomTableRepository().getCustomTableValue(INVITE_USER_STATUS, PENDING);
    List<String> emailIds = new ArrayList<String>();
    User creator = getUserRepository().findByGooruId(userClass.getUserUid());
    for (String email : emails) {
      InviteUser inviteUser =
          this.getInviteRepository().findInviteUserById(email, userClass.getPartyUid(), null);
      if (inviteUser == null) {
        inviteUser = new InviteUser(email, userClass.getPartyUid(), CLASS, user, status);
        this.getInviteRepository().save(inviteUser);
        emailIds.add(email);
      }
      try {
        String courseGooruOid = null;
        if (userClass.getCourseContentId() != null) {
          Content content =
              this.getContentRepository().findByContent(userClass.getCourseContentId());
          if (content != null) {
            courseGooruOid = content.getGooruOid();
          }
        }
        if (userClass.getVisibility() != null && !userClass.getVisibility()) {
          this.getMailHandler()
              .sendMailToInviteUser(
                  email,
                  userClass.getPartyUid(),
                  creator,
                  userClass.getName(),
                  user.getUsername(),
                  userClass.getGroupCode(),
                  courseGooruOid);
        } else {
          this.getMailHandler()
              .sendMailToOpenClassUser(
                  email,
                  userClass.getPartyUid(),
                  creator,
                  userClass.getName(),
                  user.getUsername(),
                  userClass.getGroupCode(),
                  courseGooruOid);
        }
      } catch (Exception e) {
        LOGGER.error(ERROR, e);
      }
    }
  }