178 lines
8.3 KiB
Go
178 lines
8.3 KiB
Go
package file
|
|
|
|
import (
|
|
"go.uber.org/zap"
|
|
|
|
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/config"
|
|
dom_collection "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/domain/collection"
|
|
dom_tag "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/domain/tag"
|
|
uc_collection "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/usecase/collection"
|
|
uc_filemetadata "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/usecase/filemetadata"
|
|
uc_fileobjectstorage "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/usecase/fileobjectstorage"
|
|
uc_storagedailyusage "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/usecase/storagedailyusage"
|
|
uc_storageusageevent "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/usecase/storageusageevent"
|
|
uc_user "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/usecase/user"
|
|
)
|
|
|
|
// Wire providers for file services
|
|
|
|
func ProvideGetFileService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
collectionRepo dom_collection.CollectionRepository,
|
|
getMetadataUseCase uc_filemetadata.GetFileMetadataUseCase,
|
|
) GetFileService {
|
|
return NewGetFileService(cfg, logger, collectionRepo, getMetadataUseCase)
|
|
}
|
|
|
|
func ProvideUpdateFileService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
collectionRepo dom_collection.CollectionRepository,
|
|
getMetadataUseCase uc_filemetadata.GetFileMetadataUseCase,
|
|
updateMetadataUseCase uc_filemetadata.UpdateFileMetadataUseCase,
|
|
) UpdateFileService {
|
|
return NewUpdateFileService(cfg, logger, collectionRepo, getMetadataUseCase, updateMetadataUseCase)
|
|
}
|
|
|
|
func ProvideSoftDeleteFileService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
collectionRepo dom_collection.CollectionRepository,
|
|
getMetadataUseCase uc_filemetadata.GetFileMetadataUseCase,
|
|
updateFileMetadataUseCase uc_filemetadata.UpdateFileMetadataUseCase,
|
|
softDeleteMetadataUseCase uc_filemetadata.SoftDeleteFileMetadataUseCase,
|
|
hardDeleteMetadataUseCase uc_filemetadata.HardDeleteFileMetadataUseCase,
|
|
deleteDataUseCase uc_fileobjectstorage.DeleteEncryptedDataUseCase,
|
|
listFilesByOwnerIDService ListFilesByOwnerIDService,
|
|
storageQuotaHelperUseCase uc_user.UserStorageQuotaHelperUseCase,
|
|
createStorageUsageEventUseCase uc_storageusageevent.CreateStorageUsageEventUseCase,
|
|
updateStorageUsageUseCase uc_storagedailyusage.UpdateStorageUsageUseCase,
|
|
) SoftDeleteFileService {
|
|
return NewSoftDeleteFileService(cfg, logger, collectionRepo, getMetadataUseCase, updateFileMetadataUseCase, softDeleteMetadataUseCase, hardDeleteMetadataUseCase, deleteDataUseCase, listFilesByOwnerIDService, storageQuotaHelperUseCase, createStorageUsageEventUseCase, updateStorageUsageUseCase)
|
|
}
|
|
|
|
func ProvideDeleteMultipleFilesService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
collectionRepo dom_collection.CollectionRepository,
|
|
getMetadataByIDsUseCase uc_filemetadata.GetFileMetadataByIDsUseCase,
|
|
deleteMetadataManyUseCase uc_filemetadata.DeleteManyFileMetadataUseCase,
|
|
deleteMultipleDataUseCase uc_fileobjectstorage.DeleteMultipleEncryptedDataUseCase,
|
|
createStorageUsageEventUseCase uc_storageusageevent.CreateStorageUsageEventUseCase,
|
|
updateStorageUsageUseCase uc_storagedailyusage.UpdateStorageUsageUseCase,
|
|
) DeleteMultipleFilesService {
|
|
return NewDeleteMultipleFilesService(cfg, logger, collectionRepo, getMetadataByIDsUseCase, deleteMetadataManyUseCase, deleteMultipleDataUseCase, createStorageUsageEventUseCase, updateStorageUsageUseCase)
|
|
}
|
|
|
|
func ProvideListFilesByCollectionService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
collectionRepo dom_collection.CollectionRepository,
|
|
getFilesByCollectionUseCase uc_filemetadata.GetFileMetadataByCollectionUseCase,
|
|
) ListFilesByCollectionService {
|
|
return NewListFilesByCollectionService(cfg, logger, collectionRepo, getFilesByCollectionUseCase)
|
|
}
|
|
|
|
func ProvideListFilesByCreatedByUserIDService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
getFilesByCreatedByUserIDUseCase uc_filemetadata.GetFileMetadataByCreatedByUserIDUseCase,
|
|
) ListFilesByCreatedByUserIDService {
|
|
return NewListFilesByCreatedByUserIDService(cfg, logger, getFilesByCreatedByUserIDUseCase)
|
|
}
|
|
|
|
func ProvideListFilesByOwnerIDService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
getFilesByOwnerIDUseCase uc_filemetadata.GetFileMetadataByOwnerIDUseCase,
|
|
) ListFilesByOwnerIDService {
|
|
return NewListFilesByOwnerIDService(cfg, logger, getFilesByOwnerIDUseCase)
|
|
}
|
|
|
|
func ProvideListRecentFilesService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
listRecentFilesUseCase uc_filemetadata.ListRecentFilesUseCase,
|
|
) ListRecentFilesService {
|
|
return NewListRecentFilesService(cfg, logger, listRecentFilesUseCase)
|
|
}
|
|
|
|
func ProvideListFileSyncDataService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
listSyncDataUseCase uc_filemetadata.ListFileMetadataSyncDataUseCase,
|
|
collectionRepo dom_collection.CollectionRepository,
|
|
) ListFileSyncDataService {
|
|
return NewListFileSyncDataService(cfg, logger, listSyncDataUseCase, collectionRepo)
|
|
}
|
|
|
|
func ProvideCreatePendingFileService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
getCollectionUseCase uc_collection.GetCollectionUseCase,
|
|
checkCollectionAccessUseCase uc_collection.CheckCollectionAccessUseCase,
|
|
checkFileExistsUseCase uc_filemetadata.CheckFileExistsUseCase,
|
|
createMetadataUseCase uc_filemetadata.CreateFileMetadataUseCase,
|
|
generatePresignedUploadURLUseCase uc_fileobjectstorage.GeneratePresignedUploadURLUseCase,
|
|
storageQuotaHelperUseCase uc_user.UserStorageQuotaHelperUseCase,
|
|
tagRepo dom_tag.Repository,
|
|
) CreatePendingFileService {
|
|
return NewCreatePendingFileService(cfg, logger, getCollectionUseCase, checkCollectionAccessUseCase, checkFileExistsUseCase, createMetadataUseCase, generatePresignedUploadURLUseCase, storageQuotaHelperUseCase, tagRepo)
|
|
}
|
|
|
|
func ProvideCompleteFileUploadService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
collectionRepo dom_collection.CollectionRepository,
|
|
getMetadataUseCase uc_filemetadata.GetFileMetadataUseCase,
|
|
updateMetadataUseCase uc_filemetadata.UpdateFileMetadataUseCase,
|
|
verifyObjectExistsUseCase uc_fileobjectstorage.VerifyObjectExistsUseCase,
|
|
getObjectSizeUseCase uc_fileobjectstorage.GetObjectSizeUseCase,
|
|
deleteDataUseCase uc_fileobjectstorage.DeleteEncryptedDataUseCase,
|
|
storageQuotaHelperUseCase uc_user.UserStorageQuotaHelperUseCase,
|
|
createStorageUsageEventUseCase uc_storageusageevent.CreateStorageUsageEventUseCase,
|
|
updateStorageUsageUseCase uc_storagedailyusage.UpdateStorageUsageUseCase,
|
|
) CompleteFileUploadService {
|
|
return NewCompleteFileUploadService(cfg, logger, collectionRepo, getMetadataUseCase, updateMetadataUseCase, verifyObjectExistsUseCase, getObjectSizeUseCase, deleteDataUseCase, storageQuotaHelperUseCase, createStorageUsageEventUseCase, updateStorageUsageUseCase)
|
|
}
|
|
|
|
func ProvideGetPresignedUploadURLService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
collectionRepo dom_collection.CollectionRepository,
|
|
getMetadataUseCase uc_filemetadata.GetFileMetadataUseCase,
|
|
generatePresignedUploadURLUseCase uc_fileobjectstorage.GeneratePresignedUploadURLUseCase,
|
|
) GetPresignedUploadURLService {
|
|
return NewGetPresignedUploadURLService(cfg, logger, collectionRepo, getMetadataUseCase, generatePresignedUploadURLUseCase)
|
|
}
|
|
|
|
func ProvideGetPresignedDownloadURLService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
collectionRepo dom_collection.CollectionRepository,
|
|
getMetadataUseCase uc_filemetadata.GetFileMetadataUseCase,
|
|
generatePresignedDownloadURLUseCase uc_fileobjectstorage.GeneratePresignedDownloadURLUseCase,
|
|
) GetPresignedDownloadURLService {
|
|
return NewGetPresignedDownloadURLService(cfg, logger, collectionRepo, getMetadataUseCase, generatePresignedDownloadURLUseCase)
|
|
}
|
|
|
|
func ProvideArchiveFileService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
collectionRepo dom_collection.CollectionRepository,
|
|
getMetadataUseCase uc_filemetadata.GetFileMetadataUseCase,
|
|
updateMetadataUseCase uc_filemetadata.UpdateFileMetadataUseCase,
|
|
) ArchiveFileService {
|
|
return NewArchiveFileService(cfg, logger, collectionRepo, getMetadataUseCase, updateMetadataUseCase)
|
|
}
|
|
|
|
func ProvideRestoreFileService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
collectionRepo dom_collection.CollectionRepository,
|
|
getMetadataUseCase uc_filemetadata.GetFileMetadataUseCase,
|
|
updateMetadataUseCase uc_filemetadata.UpdateFileMetadataUseCase,
|
|
) RestoreFileService {
|
|
return NewRestoreFileService(cfg, logger, collectionRepo, getMetadataUseCase, updateMetadataUseCase)
|
|
}
|