فهرست منبع

update portfolio cleanup

Daniel Bohry 8 ماه پیش
والد
کامیت
e7663a0589

+ 4 - 1
src/main/java/com/danielbohry/stocks/api/portfolio/PortfolioController.java

@@ -48,7 +48,10 @@ public class PortfolioController {
     @Hidden
     @DeleteMapping
     public ResponseEntity<Void> cleanup() {
-        service.cleanup();
+        if (UserContextHolder.isAdmin()) {
+            service.cleanup();
+        }
+
         return ResponseEntity.ok().build();
     }
 

+ 0 - 4
src/main/java/com/danielbohry/stocks/repository/PortfolioRepository.java

@@ -2,7 +2,6 @@ package com.danielbohry.stocks.repository;
 
 import org.springframework.data.mongodb.repository.Aggregation;
 import org.springframework.data.mongodb.repository.MongoRepository;
-import org.springframework.data.mongodb.repository.Query;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -10,9 +9,6 @@ import java.util.List;
 @Repository
 public interface PortfolioRepository extends MongoRepository<PortfolioEntity, String> {
 
-    @Query("{ 'stocks': { $size: 0 } }")
-    List<PortfolioEntity> findAllByEmptyStocks();
-
     List<PortfolioEntity> findAllByUsername(String username);
 
     @Aggregation(pipeline = {

+ 5 - 2
src/main/java/com/danielbohry/stocks/service/PortfolioService.java

@@ -12,6 +12,7 @@ import com.danielbohry.stocks.repository.PortfolioRepository;
 import com.danielbohry.stocks.service.ExchangeService.ExchangeRateResponse;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -126,8 +127,10 @@ public class PortfolioService {
     }
 
     public void cleanup() {
-        repository.findAllByEmptyStocks().forEach(portfolio -> {
-            if (portfolio.getStocks().isEmpty()) {
+        repository.findAll().forEach(portfolio -> {
+            if ((ObjectUtils.isEmpty(portfolio.getEncryptedStocks()) && ObjectUtils.isEmpty(portfolio.getStocks().isEmpty()))
+                || portfolio.getUsername() == null
+                || portfolio.getUsername().contains("test")) {
                 log.info("Removing empty portfolio [{}]", portfolio.getId());
                 repository.deleteById(portfolio.getId());
             }