Browse Source

Override DAO method for post delete actions

pull/61/head
Kristijan Mitrovic 4 years ago
parent
commit
887c50b061
2 changed files with 32 additions and 5 deletions
  1. +32
    -0
      bubble-server/src/main/java/bubble/dao/cloud/CloudServiceDAO.java
  2. +0
    -5
      bubble-server/src/main/java/bubble/model/cloud/CloudService.java

+ 32
- 0
bubble-server/src/main/java/bubble/dao/cloud/CloudServiceDAO.java View File

@@ -12,13 +12,18 @@ import bubble.model.account.Account;
import bubble.model.cloud.BubbleNetwork; import bubble.model.cloud.BubbleNetwork;
import bubble.model.cloud.CloudService; import bubble.model.cloud.CloudService;
import bubble.server.BubbleConfiguration; import bubble.server.BubbleConfiguration;
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.cobbzilla.wizard.validation.ValidationResult; import org.cobbzilla.wizard.validation.ValidationResult;
import org.hibernate.criterion.Order; import org.hibernate.criterion.Order;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;


import javax.annotation.Nullable;
import javax.transaction.Transactional;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map;


import static bubble.ApiConstants.ROOT_NETWORK_UUID; import static bubble.ApiConstants.ROOT_NETWORK_UUID;
import static bubble.cloud.NoopCloud.NOOP_CLOUD; import static bubble.cloud.NoopCloud.NOOP_CLOUD;
@@ -144,4 +149,31 @@ public class CloudServiceDAO extends AccountOwnedTemplateDAO<CloudService> {
if (admin == null) return false; if (admin == null) return false;
return !findPublicTemplatesByType(admin.getUuid(), CloudServiceType.payment).isEmpty(); return !findPublicTemplatesByType(admin.getUuid(), CloudServiceType.payment).isEmpty();
} }

@Override
public int bulkDeleteWhere(@NonNull String whereClause, @Nullable Map<String, Object> parameters) {
// TODO for these maybe an outside cron would be better solution. BulkDelete is used here to be fast.
log.warn("Not calling postServiceDelete for services deleted in this way");
return super.bulkDeleteWhere(whereClause, parameters);
}

@Transactional @Override public void delete(String uuid) {
if (empty(uuid)) return;

final CloudService cs = findByUuid(uuid);
if (cs == null) return;
cs.getDriver().postServiceDelete(cs);

super.delete(uuid);
}

@Override public void delete(Collection<CloudService> entities) {
if (empty(entities)) return;

for (final CloudService cs : entities) {
cs.getDriver().postServiceDelete(cs);
}

super.delete(entities);
}
} }

+ 0
- 5
bubble-server/src/main/java/bubble/model/cloud/CloudService.java View File

@@ -25,7 +25,6 @@ import com.fasterxml.jackson.databind.node.JsonNodeType;
import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.ObjectNode;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.Setter; import lombok.Setter;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import org.cobbzilla.util.collection.ArrayUtil; import org.cobbzilla.util.collection.ArrayUtil;
@@ -343,8 +342,4 @@ public class CloudService extends IdentifiableBaseParentEntity implements Accoun
} }
return errors; return errors;
} }

@PostRemove void onPostRemove(@NonNull final CloudService service) {
service.getDriver().postServiceDelete(service);
}
} }

Loading…
Cancel
Save