/*
   * Guaranteed to throw an exception no matter what the data integrity issue
   * is.
   */
  private void handleOfficeDataIntegrityIssues(
      final JsonCommand command, DataIntegrityViolationException dve) {

    Throwable realCause = dve.getMostSpecificCause();
    if (realCause.getMessage().contains("externalid_org")) {
      final String externalId = command.stringValueOfParameterNamed("externalId");
      throw new PlatformDataIntegrityException(
          "error.msg.office.duplicate.externalId",
          "Office with externalId `" + externalId + "` already exists",
          "externalId",
          externalId);
    } else if (realCause.getMessage().contains("name_org")) {
      final String name = command.stringValueOfParameterNamed("name");
      throw new PlatformDataIntegrityException(
          "error.msg.office.duplicate.name",
          "Office with name `" + name + "` already exists",
          "name",
          name);
    }

    logger.error(dve.getMessage(), dve);
    throw new PlatformDataIntegrityException(
        "error.msg.office.unknown.data.integrity.issue",
        "Unknown data integrity issue with resource.");
  }
  private void handleDataIntegrityIssues(
      final JsonCommand command, final DataIntegrityViolationException dve) {

    Throwable realCause = dve.getMostSpecificCause();
    if (realCause.getMessage().contains("external_id")) {

      final String externalId = command.stringValueOfParameterNamed("externalId");
      throw new PlatformDataIntegrityException(
          "error.msg.client.duplicate.externalId",
          "Client with externalId `" + externalId + "` already exists",
          "externalId",
          externalId);
    } else if (realCause.getMessage().contains("account_no_UNIQUE")) {
      final String accountNo = command.stringValueOfParameterNamed("accountNo");
      throw new PlatformDataIntegrityException(
          "error.msg.client.duplicate.accountNo",
          "Client with accountNo `" + accountNo + "` already exists",
          "accountNo",
          accountNo);
    } else if (realCause.getMessage().contains("email_key")) {
      final String email = command.stringValueOfParameterNamed("email");
      throw new PlatformDataIntegrityException(
          "error.msg.client.duplicate.email",
          "Client with email `" + email + "` already exists",
          "email",
          email);
    }

    logAsErrorUnexpectedDataIntegrityException(dve);
    throw new PlatformDataIntegrityException(
        "error.msg.client.unknown.data.integrity.issue",
        "Unknown data integrity issue with resource.");
  }
 private void handleCodeDataIntegrityIssues(
     JsonCommand command, DataIntegrityViolationException dve) {
   Throwable realCause = dve.getMostSpecificCause();
   LOGGER.error(dve.getMessage(), dve);
   throw new PlatformDataIntegrityException(
       "error.msg.cund.unknown.data.integrity.issue",
       "Unknown data integrity issue with resource: " + realCause.getMessage());
 }
  private void handleCodeDataIntegrityIssues(
      JsonCommand command, DataIntegrityViolationException dve) {

    Throwable realCause = dve.getMostSpecificCause();
    if (realCause.getMessage().contains("title_UNIQUE")) {
      throw new PlatformDataIntegrityException(
          "game already exist", "game already exist", "game already exist", "");
    }
  }
  private void handleDataIntegrityIssues(
      final JsonCommand element, final DataIntegrityViolationException dve) {

    Throwable realCause = dve.getMostSpecificCause();
    if (realCause.getMessage().contains("UK_PRICING_COMPKEY")) {
      throw new PlatformDataIntegrityException(
          "event.pricing.price.already.exist",
          "event.pricing.price.already.exist",
          "event.pricing.price.already.exist",
          "");
    }

    logger.error(dve.getMessage(), dve);
  }
  private void handleDataIntegrityIssues(
      final JsonCommand element, final DataIntegrityViolationException dve) {

    Throwable realCause = dve.getMostSpecificCause();
    if (realCause.getMessage().contains("serial_no_constraint")) {
      throw new PlatformDataIntegrityException(
          "validation.error.msg.inventory.item.duplicate.serialNumber",
          "validation.error.msg.inventory.item.duplicate.serialNumber",
          "validation.error.msg.inventory.item.duplicate.serialNumber",
          "");
    }

    LOGGER.error(dve.getMessage(), dve);
  }
  /**
   * @param command
   * @param dve
   */
  private void handleGLClosureIntegrityIssues(
      final JsonCommand command, final DataIntegrityViolationException dve) {
    final Throwable realCause = dve.getMostSpecificCause();
    if (realCause.getMessage().contains("office_id_closing_date")) {
      throw new GLClosureDuplicateException(
          command.longValueOfParameterNamed(GLClosureJsonInputParams.OFFICE_ID.getValue()),
          new LocalDate(
              command.DateValueOfParameterNamed(GLClosureJsonInputParams.CLOSING_DATE.getValue())));
    }

    logger.error(dve.getMessage(), dve);
    throw new PlatformDataIntegrityException(
        "error.msg.glClosure.unknown.data.integrity.issue",
        "Unknown data integrity issue with resource GL Closure: " + realCause.getMessage());
  }
  private void handleHookDataIntegrityIssues(
      final JsonCommand command, final DataIntegrityViolationException dve) {
    final Throwable realCause = dve.getMostSpecificCause();
    if (realCause.getMessage().contains("hook_name")) {
      final String name = command.stringValueOfParameterNamed("name");
      throw new PlatformDataIntegrityException(
          "error.msg.hook.duplicate.name",
          "A hook with name '" + name + "' already exists",
          "name",
          name);
    }

    throw new PlatformDataIntegrityException(
        "error.msg.unknown.data.integrity.issue",
        "Unknown data integrity issue with resource: " + realCause.getMessage());
  }
  /*
   * Guaranteed to throw an exception no matter what the data integrity issue
   * is.
   */
  private void handleDataIntegrityIssues(
      final DepositAccountCommand command, final DataIntegrityViolationException dve) {

    Throwable realCause = dve.getMostSpecificCause();
    if (realCause.getMessage().contains("deposit_acc_external_id")) {
      throw new PlatformDataIntegrityException(
          "error.msg.desposit.account.duplicate.externalId",
          "Deposit account with externalId " + command.getExternalId() + " already exists",
          "externalId",
          command.getExternalId());
    }

    logger.error(dve.getMessage(), dve);
    throw new PlatformDataIntegrityException(
        "error.msg.deposit.account.unknown.data.integrity.issue",
        "Unknown data integrity issue with resource.");
  }
  private void handleDataIntegrityIssues(
      final JsonCommand command, final DataIntegrityViolationException dve) {
    final Throwable realCause = dve.getMostSpecificCause();
    if (realCause.getMessage().contains("holiday_name")) {
      final String name = command.stringValueOfParameterNamed("name");
      throw new PlatformDataIntegrityException(
          "error.msg.holiday.duplicate.name",
          "Holiday with name `" + name + "` already exists",
          "name",
          name);
    }

    logger.error(dve.getMessage(), dve);
    throw new PlatformDataIntegrityException(
        "error.msg.office.unknown.data.integrity.issue",
        "Unknown data integrity issue with resource.");
  }
  @Transactional
  @Override
  @CacheEvict(value = "hooks", allEntries = true)
  public CommandProcessingResult deleteHook(final Long hookId) {

    this.context.authenticatedUser();

    final Hook hook = retrieveHookBy(hookId);

    try {
      this.hookRepository.delete(hook);
      this.hookRepository.flush();
    } catch (final DataIntegrityViolationException e) {
      throw new PlatformDataIntegrityException(
          "error.msg.unknown.data.integrity.issue",
          "Unknown data integrity issue with resource: " + e.getMostSpecificCause());
    }
    return new CommandProcessingResultBuilder().withEntityId(hookId).build();
  }
コード例 #12
0
  private void handleDataIntegrityIssues(
      final JsonCommand command, final DataIntegrityViolationException dve) {

    final Throwable realCause = dve.getMostSpecificCause();

    LOGGER.error(dve.getMessage(), dve);
    if (realCause.getMessage().contains("taxcode")) {
      throw new PlatformDataIntegrityException(
          "validation.error.msg.taxmap.taxcode.duplicate",
          "A taxcode with name'"
              + command.stringValueOfParameterNamed("taxCode")
              + "'already exists",
          command.stringValueOfParameterNamed("taxCode"));
    } else {
      throw new PlatformDataIntegrityException(
          "error.msg.could.unknown.data.integrity.issue",
          "Unknown data integrity issue with resource: " + dve.getMessage());
    }
  }
  /*
   * Guaranteed to throw an exception no matter what the data integrity issue
   * is.
   */
  private void handleDataIntegrityIssues(
      final JsonCommand command, final DataIntegrityViolationException dve) {

    final Throwable realCause = dve.getMostSpecificCause();
    if (realCause.getMessage().contains("username_org")) {
      final String username = command.stringValueOfParameterNamed("username");
      final StringBuilder defaultMessageBuilder =
          new StringBuilder("User with username ").append(username).append(" already exists.");
      throw new PlatformDataIntegrityException(
          "error.msg.user.duplicate.username",
          defaultMessageBuilder.toString(),
          "username",
          username);
    }

    logger.error(dve.getMessage(), dve);
    throw new PlatformDataIntegrityException(
        "error.msg.unknown.data.integrity.issue", "Unknown data integrity issue with resource.");
  }
コード例 #14
0
  @Transactional
  @Override
  public void registerDatatable(final String dataTableName, final String applicationTableName) {

    // FIXME - KW - hardcoded supported app tables are m_loan or m_client?
    validateAppTable(applicationTableName);

    final String registerDatatableSql =
        "insert into x_registered_table (registered_table_name, application_table_name) values ('"
            + dataTableName
            + "', '"
            + applicationTableName
            + "')";

    final String createPermission = "'CREATE_" + dataTableName + "'";
    final String createPermissionChecker = "'CREATE_" + dataTableName + "_CHECKER'";
    final String readPermission = "'READ_" + dataTableName + "'";
    final String updatePermission = "'UPDATE_" + dataTableName + "'";
    final String updatePermissionChecker = "'UPDATE_" + dataTableName + "_CHECKER'";
    final String deletePermission = "'DELETE_" + dataTableName + "'";
    final String deletePermissionChecker = "'DELETE_" + dataTableName + "_CHECKER'";

    final String permissionsSql =
        "insert into m_permission (grouping, code, action_name, entity_name, can_maker_checker) values "
            + "('datatable', "
            + createPermission
            + ", 'CREATE', '"
            + dataTableName
            + "', true),"
            + "('datatable', "
            + createPermissionChecker
            + ", 'CREATE', '"
            + dataTableName
            + "', false),"
            + "('datatable', "
            + readPermission
            + ", 'READ', '"
            + dataTableName
            + "', false),"
            + "('datatable', "
            + updatePermission
            + ", 'UPDATE', '"
            + dataTableName
            + "', true),"
            + "('datatable', "
            + updatePermissionChecker
            + ", 'UPDATE', '"
            + dataTableName
            + "', false),"
            + "('datatable', "
            + deletePermission
            + ", 'DELETE', '"
            + dataTableName
            + "', true),"
            + "('datatable', "
            + deletePermissionChecker
            + ", 'DELETE', '"
            + dataTableName
            + "', false)";

    try {
      String[] sqlArray = {registerDatatableSql, permissionsSql};
      this.jdbcTemplate.batchUpdate(sqlArray);

    } catch (DataIntegrityViolationException dve) {
      Throwable realCause = dve.getMostSpecificCause();
      // even if duplicate is only due to permission duplicate, okay to show duplicate datatable
      // error msg
      if (realCause.getMessage().contains("Duplicate entry")) {
        throw new PlatformDataIntegrityException(
            "error.msg.datatable.registered",
            "Datatable `" + dataTableName + "` is already registered against an application table.",
            "dataTableName",
            dataTableName);
      }

      logAsErrorUnexpectedDataIntegrityException(dve);
      throw new PlatformDataIntegrityException(
          "error.msg.unknown.data.integrity.issue", "Unknown data integrity issue with resource.");
    }
  }