Skip to content

Commit ad070d8

Browse files
committed
Refactor import statements across multiple files to align with the updated domain structure, enhancing code clarity and consistency. Update test assertions to utilize generic types for Either, improving type safety in test cases.
1 parent 0cae370 commit ad070d8

118 files changed

Lines changed: 888 additions & 234 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

backend/api/src/main/kotlin/com/vaultstadio/api/config/Koin.kt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55
package com.vaultstadio.api.config
66

77
import com.vaultstadio.api.plugins.PluginManagerImpl
8+
import com.vaultstadio.api.routes.storage.S3Operations
9+
import com.vaultstadio.api.routes.storage.WebDAVOperations
10+
import com.vaultstadio.api.service.InMemoryThumbnailCache
11+
import com.vaultstadio.api.service.InMemoryUploadSessionManager
12+
import com.vaultstadio.api.service.ThumbnailCache
813
import com.vaultstadio.application.di.applicationActivityModule
914
import com.vaultstadio.application.di.applicationAdminModule
1015
import com.vaultstadio.application.di.applicationAiModule
@@ -18,13 +23,6 @@ import com.vaultstadio.application.di.applicationStorageModule
1823
import com.vaultstadio.application.di.applicationSyncModule
1924
import com.vaultstadio.application.di.applicationUserModule
2025
import com.vaultstadio.application.di.applicationVersionModule
21-
import com.vaultstadio.plugins.api.PluginManager
22-
import com.vaultstadio.api.routes.storage.S3Operations
23-
import com.vaultstadio.api.routes.storage.WebDAVOperations
24-
import com.vaultstadio.api.service.InMemoryThumbnailCache
25-
import com.vaultstadio.api.service.InMemoryUploadSessionManager
26-
import com.vaultstadio.api.service.ThumbnailCache
27-
import com.vaultstadio.core.domain.service.UploadSessionManager
2826
import com.vaultstadio.core.ai.AIService
2927
import com.vaultstadio.core.ai.AIServiceImpl
3028
import com.vaultstadio.core.domain.event.EventBus
@@ -34,12 +32,6 @@ import com.vaultstadio.core.domain.repository.FederationRepository
3432
import com.vaultstadio.core.domain.repository.FileVersionRepository
3533
import com.vaultstadio.core.domain.repository.MetadataRepository
3634
import com.vaultstadio.core.domain.repository.SyncRepository
37-
import com.vaultstadio.domain.activity.repository.ActivityRepository
38-
import com.vaultstadio.domain.auth.repository.ApiKeyRepository
39-
import com.vaultstadio.domain.auth.repository.SessionRepository
40-
import com.vaultstadio.domain.auth.repository.UserRepository
41-
import com.vaultstadio.domain.share.repository.ShareRepository
42-
import com.vaultstadio.domain.storage.repository.StorageItemRepository
4335
import com.vaultstadio.core.domain.service.ActivityLogger
4436
import com.vaultstadio.core.domain.service.CollaborationService
4537
import com.vaultstadio.core.domain.service.FederationCryptoService
@@ -56,7 +48,14 @@ import com.vaultstadio.core.domain.service.StorageBackend
5648
import com.vaultstadio.core.domain.service.StorageService
5749
import com.vaultstadio.core.domain.service.SyncService
5850
import com.vaultstadio.core.domain.service.TransactionManager
51+
import com.vaultstadio.core.domain.service.UploadSessionManager
5952
import com.vaultstadio.core.domain.service.UserService
53+
import com.vaultstadio.domain.activity.repository.ActivityRepository
54+
import com.vaultstadio.domain.auth.repository.ApiKeyRepository
55+
import com.vaultstadio.domain.auth.repository.SessionRepository
56+
import com.vaultstadio.domain.auth.repository.UserRepository
57+
import com.vaultstadio.domain.share.repository.ShareRepository
58+
import com.vaultstadio.domain.storage.repository.StorageItemRepository
6059
import com.vaultstadio.infrastructure.persistence.ExposedActivityRepository
6160
import com.vaultstadio.infrastructure.persistence.ExposedApiKeyRepository
6261
import com.vaultstadio.infrastructure.persistence.ExposedCollaborationRepository
@@ -73,6 +72,7 @@ import com.vaultstadio.infrastructure.security.BCryptPasswordHasher
7372
import com.vaultstadio.infrastructure.storage.LocalStorageBackend
7473
import com.vaultstadio.infrastructure.storage.S3StorageBackend
7574
import com.vaultstadio.infrastructure.storage.S3StorageConfig
75+
import com.vaultstadio.plugins.api.PluginManager
7676
import io.github.oshai.kotlinlogging.KotlinLogging
7777
import io.ktor.server.application.Application
7878
import io.ktor.server.application.install

backend/api/src/main/kotlin/com/vaultstadio/api/config/Security.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
package com.vaultstadio.api.config
66

7-
import com.vaultstadio.domain.auth.model.User
87
import com.vaultstadio.core.domain.service.LoginInput
98
import com.vaultstadio.core.domain.service.UserService
9+
import com.vaultstadio.domain.auth.model.User
1010
import io.ktor.http.HttpHeaders
1111
import io.ktor.http.HttpStatusCode
1212
import io.ktor.server.application.Application

backend/api/src/main/kotlin/com/vaultstadio/api/plugins/PluginManager.kt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
package com.vaultstadio.api.plugins
66

77
import arrow.core.Either
8-
import com.vaultstadio.plugins.api.PluginManager
98
import arrow.core.left
109
import arrow.core.right
1110
import com.vaultstadio.core.ai.AIService
1211
import com.vaultstadio.core.domain.event.EventBus
1312
import com.vaultstadio.core.domain.model.StorageItemMetadata
1413
import com.vaultstadio.core.domain.repository.MetadataRepository
1514
import com.vaultstadio.core.domain.service.StorageBackend
15+
import com.vaultstadio.domain.auth.repository.UserRepository
1616
import com.vaultstadio.domain.common.exception.ItemNotFoundException
1717
import com.vaultstadio.domain.common.exception.PluginException
1818
import com.vaultstadio.domain.common.exception.PluginLoadException
@@ -21,8 +21,8 @@ import com.vaultstadio.domain.common.exception.StorageBackendException
2121
import com.vaultstadio.domain.common.exception.StorageException
2222
import com.vaultstadio.domain.storage.repository.StorageItemQuery
2323
import com.vaultstadio.domain.storage.repository.StorageItemRepository
24-
import com.vaultstadio.domain.auth.repository.UserRepository
2524
import com.vaultstadio.plugins.api.Plugin
25+
import com.vaultstadio.plugins.api.PluginManager
2626
import com.vaultstadio.plugins.api.PluginState
2727
import com.vaultstadio.plugins.context.AIApi
2828
import com.vaultstadio.plugins.context.AIResult
@@ -292,13 +292,16 @@ class PluginContextImpl(
292292
return itemResult.fold(
293293
{ error -> error.left() },
294294
{ item ->
295-
if (item == null) ItemNotFoundException(itemId).left()
296-
else when {
297-
item.storageKey == null -> StorageBackendException(
298-
"plugin",
299-
"Item has no storage key",
300-
).left()
301-
else -> storageBackend.retrieve(item.storageKey!!)
295+
if (item == null) {
296+
ItemNotFoundException(itemId).left()
297+
} else {
298+
when {
299+
item.storageKey == null -> StorageBackendException(
300+
"plugin",
301+
"Item has no storage key",
302+
).left()
303+
else -> storageBackend.retrieve(item.storageKey!!)
304+
}
302305
}
303306
},
304307
)

backend/api/src/main/kotlin/com/vaultstadio/api/routes/admin/AdminRoutes.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import com.vaultstadio.api.dto.ApiError
99
import com.vaultstadio.api.dto.ApiResponse
1010
import com.vaultstadio.api.dto.PaginatedResponse
1111
import com.vaultstadio.api.dto.toAdminResponse
12-
import com.vaultstadio.domain.auth.model.UserRole
1312
import com.vaultstadio.application.usecase.admin.DeleteUserUseCase
1413
import com.vaultstadio.application.usecase.admin.GetAdminStatisticsUseCase
1514
import com.vaultstadio.application.usecase.admin.ListUsersUseCase
1615
import com.vaultstadio.application.usecase.admin.UpdateQuotaUseCase
16+
import com.vaultstadio.domain.auth.model.UserRole
1717
import com.vaultstadio.domain.auth.repository.UserQuery
1818
import io.ktor.http.HttpStatusCode
1919
import io.ktor.server.application.call

backend/api/src/main/kotlin/com/vaultstadio/api/routes/ai/AIHandlers.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@ package com.vaultstadio.api.routes.ai
88
import com.vaultstadio.api.config.user
99
import com.vaultstadio.api.dto.ApiError
1010
import com.vaultstadio.api.dto.ApiResponse
11+
import com.vaultstadio.application.usecase.ai.AIServiceUseCase
1112
import com.vaultstadio.core.ai.AIError
1213
import com.vaultstadio.core.ai.AIMessage
13-
import com.vaultstadio.application.usecase.ai.AIServiceUseCase
1414
import com.vaultstadio.core.ai.AIProviderConfig
1515
import com.vaultstadio.core.ai.AIProviderType
1616
import com.vaultstadio.core.ai.AIRequest
1717
import com.vaultstadio.domain.auth.model.UserRole
18-
import org.koin.ktor.ext.get as koinGet
1918
import io.ktor.http.HttpStatusCode
2019
import io.ktor.server.application.ApplicationCall
2120
import io.ktor.server.request.receive
2221
import io.ktor.server.response.respond
22+
import org.koin.ktor.ext.get as koinGet
2323

2424
internal suspend fun handleGetProviders(call: ApplicationCall) {
2525
val aiUseCase: AIServiceUseCase = call.application.koinGet()

backend/api/src/main/kotlin/com/vaultstadio/api/routes/metadata/SearchRoutes.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ import com.vaultstadio.api.dto.PaginatedResponse
1414
import com.vaultstadio.api.dto.SearchRequest
1515
import com.vaultstadio.api.dto.toResponse
1616
import com.vaultstadio.application.usecase.storage.SearchUseCase
17-
import com.vaultstadio.plugins.api.PluginManager
1817
import com.vaultstadio.core.domain.repository.MetadataRepository
1918
import com.vaultstadio.core.domain.service.StorageService
19+
import com.vaultstadio.plugins.api.PluginManager
2020
import io.ktor.http.HttpStatusCode
2121
import io.ktor.server.application.call
2222
import io.ktor.server.request.receive

backend/api/src/main/kotlin/com/vaultstadio/api/routes/plugin/PluginRoutes.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ package com.vaultstadio.api.routes.plugin
99
import com.vaultstadio.api.config.user
1010
import com.vaultstadio.api.dto.ApiError
1111
import com.vaultstadio.api.dto.ApiResponse
12+
import com.vaultstadio.api.dto.PluginConfigResponse
13+
import com.vaultstadio.api.dto.PluginInfoResponse
1214
import com.vaultstadio.application.usecase.plugin.DisablePluginUseCase
1315
import com.vaultstadio.application.usecase.plugin.EnablePluginUseCase
1416
import com.vaultstadio.application.usecase.plugin.GetPluginEndpointsUseCase
1517
import com.vaultstadio.application.usecase.plugin.GetPluginStateUseCase
1618
import com.vaultstadio.application.usecase.plugin.GetPluginUseCase
1719
import com.vaultstadio.application.usecase.plugin.HandlePluginEndpointUseCase
1820
import com.vaultstadio.application.usecase.plugin.ListPluginsUseCase
19-
import com.vaultstadio.api.dto.PluginConfigResponse
20-
import com.vaultstadio.api.dto.PluginInfoResponse
2121
import com.vaultstadio.domain.auth.model.UserRole
2222
import com.vaultstadio.plugins.context.EndpointRequest
2323
import io.ktor.http.ContentType

backend/api/src/main/kotlin/com/vaultstadio/api/routes/share/ShareRoutes.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import com.vaultstadio.application.usecase.share.GetSharesByUserUseCase
1616
import com.vaultstadio.application.usecase.share.GetSharesSharedWithUserUseCase
1717
import com.vaultstadio.application.usecase.storage.DownloadFileUseCase
1818
import com.vaultstadio.core.domain.service.AccessShareInput
19-
import com.vaultstadio.domain.share.model.ShareLink
2019
import com.vaultstadio.core.domain.service.CreateShareInput
2120
import io.ktor.http.ContentDisposition
2221
import io.ktor.http.ContentType

backend/api/src/main/kotlin/com/vaultstadio/api/routes/storage/ChunkedUploadRoutes.kt

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77

88
package com.vaultstadio.api.routes.storage
99

10-
import com.vaultstadio.application.usecase.chunkedupload.ChunkedUploadError
10+
import com.vaultstadio.api.config.user
11+
import com.vaultstadio.api.dto.ApiError
12+
import com.vaultstadio.api.dto.ApiResponse
13+
import com.vaultstadio.api.dto.toResponse
1114
import com.vaultstadio.application.usecase.chunkedupload.CancelChunkedUploadUseCase
15+
import com.vaultstadio.application.usecase.chunkedupload.ChunkedUploadError
1216
import com.vaultstadio.application.usecase.chunkedupload.CompleteChunkedUploadUseCase
1317
import com.vaultstadio.application.usecase.chunkedupload.GetChunkedUploadStatusUseCase
1418
import com.vaultstadio.application.usecase.chunkedupload.InitChunkedUploadUseCase
1519
import com.vaultstadio.application.usecase.chunkedupload.UploadChunkUseCase
16-
import com.vaultstadio.api.config.user
17-
import com.vaultstadio.api.dto.ApiError
18-
import com.vaultstadio.api.dto.ApiResponse
19-
import com.vaultstadio.api.dto.toResponse
2020
import com.vaultstadio.core.domain.service.UploadSession
2121
import io.ktor.http.HttpStatusCode
2222
import io.ktor.http.content.PartData
@@ -83,10 +83,21 @@ private fun UploadSession.toStatusResponse() = UploadStatusResponse(
8383
)
8484

8585
private fun ChunkedUploadError.toApiError(): Pair<HttpStatusCode, ApiError> = when (this) {
86-
is ChunkedUploadError.NotFound -> HttpStatusCode.NotFound to ApiError("UPLOAD_NOT_FOUND", "Upload session not found")
87-
is ChunkedUploadError.Incomplete -> HttpStatusCode.BadRequest to ApiError("INCOMPLETE_UPLOAD", "Missing chunks: ${missingChunks.take(10).joinToString(", ")}${if (missingChunks.size > 10) "..." else ""}")
86+
is ChunkedUploadError.NotFound ->
87+
HttpStatusCode.NotFound to
88+
ApiError("UPLOAD_NOT_FOUND", "Upload session not found")
89+
is ChunkedUploadError.Incomplete ->
90+
HttpStatusCode.BadRequest to
91+
ApiError(
92+
"INCOMPLETE_UPLOAD",
93+
"Missing chunks: ${missingChunks.take(
94+
10,
95+
).joinToString(", ")}${if (missingChunks.size > 10) "..." else ""}",
96+
)
8897
is ChunkedUploadError.InvalidRequest -> HttpStatusCode.BadRequest to ApiError("INVALID_REQUEST", message)
89-
is ChunkedUploadError.InvalidChunkIndex -> HttpStatusCode.BadRequest to ApiError("INVALID_CHUNK_INDEX", "Valid chunk index is required")
98+
is ChunkedUploadError.InvalidChunkIndex ->
99+
HttpStatusCode.BadRequest to
100+
ApiError("INVALID_CHUNK_INDEX", "Valid chunk index is required")
90101
}
91102

92103
fun Route.chunkedUploadRoutes() {
@@ -133,7 +144,10 @@ fun Route.chunkedUploadRoutes() {
133144
if (chunkIndex == null || chunkIndex < 0) {
134145
call.respond(
135146
HttpStatusCode.BadRequest,
136-
ApiResponse<Unit>(success = false, error = ApiError("INVALID_CHUNK_INDEX", "Valid chunk index is required")),
147+
ApiResponse<Unit>(
148+
success = false,
149+
error = ApiError("INVALID_CHUNK_INDEX", "Valid chunk index is required"),
150+
),
137151
)
138152
return@post
139153
}

backend/api/src/main/kotlin/com/vaultstadio/api/routes/storage/S3Handlers.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55

66
package com.vaultstadio.api.routes.storage
77

8-
import com.vaultstadio.domain.common.pagination.SortOrder
9-
import com.vaultstadio.domain.storage.model.StorageItem
10-
import com.vaultstadio.domain.storage.repository.SortField
11-
import com.vaultstadio.domain.storage.repository.StorageItemQuery
128
import com.vaultstadio.core.domain.service.CopyItemInput
139
import com.vaultstadio.core.domain.service.CreateFolderInput
1410
import com.vaultstadio.core.domain.service.MultipartUploadManagerInterface
1511
import com.vaultstadio.core.domain.service.StorageService
1612
import com.vaultstadio.core.domain.service.UploadFileInput
13+
import com.vaultstadio.domain.common.pagination.SortOrder
14+
import com.vaultstadio.domain.storage.model.StorageItem
15+
import com.vaultstadio.domain.storage.repository.SortField
16+
import com.vaultstadio.domain.storage.repository.StorageItemQuery
1717
import io.ktor.http.ContentType
1818
import io.ktor.http.HttpStatusCode
1919
import io.ktor.server.application.ApplicationCall

0 commit comments

Comments
 (0)