Skip to content

Commit fafb564

Browse files
File delete implemented
1 parent 238ffa3 commit fafb564

File tree

20 files changed

+110
-33
lines changed

20 files changed

+110
-33
lines changed

app/src/main/java/com/github/code/gambit/data/local/CacheDataSource.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ interface CacheDataSource {
88

99
suspend fun insertFiles(files: List<File>): Long
1010
suspend fun getFiles(): List<File>
11+
suspend fun deleteFile(fileId: String): Int
1112
suspend fun insertUrls(urls: List<Url>): Long
1213
suspend fun getUrls(fileId: String): List<Url>
1314
suspend fun insertFileMetaData(fileMetaData: FileMetaData, uuid: String)

app/src/main/java/com/github/code/gambit/data/local/CacheDataSourceImpl.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ constructor(
3232
return c
3333
}
3434

35+
override suspend fun deleteFile(fileId: String): Int {
36+
return fileDao.deleteFile(fileId)
37+
}
38+
3539
override suspend fun insertUrls(urls: List<Url>): Long {
3640
val res = urlDao.insertUrls(urlCacheMapper.mapToEntityList(urls))
3741
return res.size.toLong()

app/src/main/java/com/github/code/gambit/data/local/FileDao.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,7 @@ interface FileDao {
1717

1818
@Query("SELECT * FROM files WHERE id = :id")
1919
suspend fun getFile(id: String): List<FileCacheEntity>
20+
21+
@Query("DELETE FROM files WHERE id = :id")
22+
suspend fun deleteFile(id: String): Int
2023
}

app/src/main/java/com/github/code/gambit/data/remote/NetworkDataSource.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ interface NetworkDataSource {
99
suspend fun searchFiles(searchParam: String): List<File>
1010
suspend fun filterFiles(start: String, end: String): List<File>
1111
suspend fun uploadFile(file: File): File
12-
suspend fun deleteFile(fileId: String): File
12+
suspend fun deleteFile(fileId: String): Boolean
1313

1414
suspend fun getUrls(fileId: String): List<Url>
1515
suspend fun generateUrl(url: Url): Url

app/src/main/java/com/github/code/gambit/data/remote/NetworkDataSourceImpl.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ class NetworkDataSourceImpl(
3535
return fileNetworkMapper.mapFromEntity(fileService.uploadFile(fileNetworkMapper.mapToEntity(file)))
3636
}
3737

38-
override suspend fun deleteFile(fileId: String): File {
39-
return fileNetworkMapper.mapFromEntity(fileService.deleteFile(fileId))
38+
override suspend fun deleteFile(fileId: String): Boolean {
39+
return fileService.deleteFile(fileId)
4040
}
4141

4242
override suspend fun getUrls(fileId: String): List<Url> {

app/src/main/java/com/github/code/gambit/data/remote/services/ApiService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ interface ApiService {
4747
suspend fun uploadFiles(@Path("userId") userId: String, @Body fileNetworkEntity: FileNetworkEntity): Response<FileNetworkEntity>
4848

4949
@DELETE("user/{${AppConstant.API_PATH.USER_ID}}/file/{${AppConstant.API_PATH.FILE_ID}}")
50-
suspend fun deleteFile(@Path(AppConstant.API_PATH.USER_ID) userId: String, @Path(AppConstant.API_PATH.FILE_ID) fileId: String): Response<FileNetworkEntity>
50+
suspend fun deleteFile(@Path(AppConstant.API_PATH.USER_ID) userId: String, @Path(AppConstant.API_PATH.FILE_ID) fileId: String): Response<String>
5151

5252
@GET("file/{${AppConstant.API_PATH.FILE_ID}}/url")
5353
suspend fun getUrls(@Path(AppConstant.API_PATH.FILE_ID) fileId: String): ListResponse<UrlNetworkEntity>

app/src/main/java/com/github/code/gambit/data/remote/services/file/FileService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ interface FileService {
88
suspend fun searchFile(searchParam: String): List<FileNetworkEntity>
99
suspend fun filterFiles(start: String, end: String): List<FileNetworkEntity>
1010
suspend fun uploadFile(fileNetworkEntity: FileNetworkEntity): FileNetworkEntity
11-
suspend fun deleteFile(fileId: String): FileNetworkEntity
11+
suspend fun deleteFile(fileId: String): Boolean
1212
}

app/src/main/java/com/github/code/gambit/data/remote/services/file/FileServiceImpl.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ class FileServiceImpl(
4040
return apiService.uploadFiles(userId, fileNetworkEntity).body
4141
}
4242

43-
override suspend fun deleteFile(fileId: String): FileNetworkEntity {
44-
return apiService.deleteFile(userId, fileId).body
43+
override suspend fun deleteFile(fileId: String): Boolean {
44+
var id = fileId
45+
if (fileId.contains("FILE#")) {
46+
id = fileId.split("#")[1]
47+
}
48+
return apiService.deleteFile(userId, id).statusCode == 200
4549
}
4650
}

app/src/main/java/com/github/code/gambit/repositories/home/HomeRepository.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ interface HomeRepository {
1111
suspend fun getFiles(): Flow<ServiceResult<List<File>>>
1212
suspend fun searchFile(searchString: String): Flow<ServiceResult<List<File>>>
1313
suspend fun searchFileByFilter(filter: Filter): Flow<ServiceResult<List<File>>>
14+
suspend fun deleteFile(file: File): Flow<ServiceResult<Boolean>>
1415
suspend fun generateUrl(file: File): Flow<ServiceResult<Url>>
1516
suspend fun getUrls(fileId: String): Flow<ServiceResult<List<Url>>>
1617
}

app/src/main/java/com/github/code/gambit/repositories/home/HomeRepositoryImpl.kt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,28 @@ constructor(
6666
}
6767
}
6868

69+
override suspend fun deleteFile(file: File): Flow<ServiceResult<Boolean>> {
70+
return flow {
71+
try {
72+
val success = networkDataSource.deleteFile(file.id)
73+
if (success) {
74+
val dels = cacheDataSource.deleteFile(file.id)
75+
if (dels == 1) {
76+
emit(ServiceResult.Success(true))
77+
} else {
78+
emit(ServiceResult.Success(false))
79+
}
80+
} else {
81+
emit(ServiceResult.Success(false))
82+
}
83+
} catch (internet: NoInternetException) {
84+
emit(ServiceResult.Error(internet))
85+
} catch (exception: Exception) {
86+
emit(ServiceResult.Error(exception))
87+
}
88+
}
89+
}
90+
6991
override suspend fun generateUrl(file: File): Flow<ServiceResult<Url>> {
7092
val url = Url("", file.id, file.hash, "", true, 50)
7193
return flow {

0 commit comments

Comments
 (0)