Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
</parent>
<groupId>com.cloud</groupId>
<artifactId>NetworkCloudDrive</artifactId>
<version>0.4.8</version>
<version>0.4.6-SNAPSHOT</version>
<!-- <version>0.4.4</version>-->
<name>NetworkCloudDrive</name>
<description>NetworkCloudDrive project built with Spring Boot</description>
<url/>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.cloud.NetworkCloudDrive.Controllers.Tasks;

public class RecycleBinController {
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ public IgnoreFileListProperties() {
//ignore thumbnails folder in user dir
".thumbnails",
//ignore compression folder in user dir
".compression"
".compression",
//ignore recycle bin folder in user dir
".recyclebin"
);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.cloud.NetworkCloudDrive.Repositories.Tasks;

import org.springframework.stereotype.Repository;

import java.io.IOException;
import java.util.List;
import java.util.Map;

@Repository
public interface RecycleBinRepository {
Map<String, List<?>> getRecyclingList() throws IOException;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package com.cloud.NetworkCloudDrive.Services.Tasks;

import com.cloud.NetworkCloudDrive.DAO.SQLiteDAO;
import com.cloud.NetworkCloudDrive.Repositories.Services.UserRepository;
import com.cloud.NetworkCloudDrive.Repositories.Tasks.RecycleBinRepository;
import com.cloud.NetworkCloudDrive.Repositories.Tasks.ThumbnailRepository;
import com.cloud.NetworkCloudDrive.Sessions.UserSession;
import com.cloud.NetworkCloudDrive.Utilities.FileUtility;
import com.cloud.NetworkCloudDrive.Utilities.PathUtility;
import com.cloud.NetworkCloudDrive.Utilities.UserUtility;
import org.springframework.stereotype.Service;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import java.util.UUID;

@Service
public class RecycleBinService implements RecycleBinRepository {
private final UserRepository userRepository;
private final SQLiteDAO sqLiteDAO;
private final PathUtility pathUtility;
private final UserSession userSession;
private final FileUtility fileUtility;
private final UserUtility userUtility;

public RecycleBinService(
UserRepository userRepository,
UserSession userSession,
SQLiteDAO sqLiteDAO,
PathUtility pathUtility,
FileUtility fileUtility,
UserUtility userUtility) {
this.userRepository = userRepository;
this.sqLiteDAO = sqLiteDAO;
this.userSession = userSession;
this.pathUtility = pathUtility;
this.fileUtility = fileUtility;
this.userUtility = userUtility;
}

@Override
public Map<String, List<?>> getRecyclingList() throws IOException {
Path userPath = userUtility.returnUserFolderasPath();
return Map.of();
}

public Path moveFileToRecycleBin(long fileId) throws IOException, SQLException {
Path fileToMove =
Path.of(
pathUtility
.resolvePathFromIdString(
sqLiteDAO
.getIdPath(
sqLiteDAO
.queryFileMetadata(fileId, userSession.getId()).getFolderId())));

if (!Files.exists(fileToMove)) {
throw new IOException("File does not exist: " + fileToMove.toString());
}

Path destination = Path.of(generateUUIDFolders().toString(), fileToMove.toString());

return Files.move(fileToMove, destination);
}

private Path generateUUIDFolders() throws IOException {
UUID uuid = UUID.randomUUID();
Path recyclePath = pathUtility.getRecycleBinPath();
return Files.createDirectories(Path.of(recyclePath.toString(), uuid.toString()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import java.io.File;
import java.io.IOException;
import java.nio.file.FileSystemException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.sql.SQLException;
Expand Down Expand Up @@ -243,4 +244,14 @@ public String generateIdPaths(String filePath, String startingIdPath) throws IOE
idPath.setLength(idPath.length() - 1);
return idPath.toString();
}

public Path getRecycleBinPath() throws IOException {
Path userPath = userUtility.returnUserFolderasPath();
Path recycleBinPath = Path.of(userPath.toString(), ".recyclebin");
if (Files.exists(recycleBinPath)) {
return recycleBinPath;
}
Files.createDirectory(recycleBinPath);
return recycleBinPath;
}
}
Loading