public Response deleteByBusinessKey()

in src/main/java/com/google/gcs/sdrs/controller/RetentionRulesController.java [141:183]


  public Response deleteByBusinessKey(
      @QueryParam("type") String retentionRuleType,
      @QueryParam("projectId") String projectId,
      @QueryParam("dataStorageName") String dataStorageName) {
    try {

      Collection<ValidationResult> partialValidations =
          validateCompositeKey(retentionRuleType, projectId, dataStorageName);
      ValidationResult result = ValidationResult.compose(partialValidations);

      if (!result.isValid) {
        throw new ValidationException(result);
      }

      if (retentionRuleType.equalsIgnoreCase(RetentionRuleType.GLOBAL.toString())) {
        if (projectId == null) {
          projectId = SdrsApplication.getAppConfigProperty("sts.defaultProjectId");
        }
        if (dataStorageName == null) {
          dataStorageName = SdrsApplication.getAppConfigProperty("sts.defaultStorageName");
        }
      }

      Integer ruleId =
          service.deleteRetentionRuleByBusinessKey(
              projectId,
              dataStorageName,
              RetentionRuleType.valueOf(retentionRuleType.toUpperCase()));

      if (ruleId == null) {
        throw new ResourceNotFoundException(
            String.format(
                "Retention rule doesn't exist for projectId: %s, dataStorageName: %s",
                projectId, dataStorageName));
      } else {
        RetentionRuleDeleteResponse response = new RetentionRuleDeleteResponse();
        response.setRuleId(ruleId);
        return successResponse(response);
      }
    } catch (Exception exception) {
      return errorResponse(exception);
    }
  }