170 lines
5.9 KiB
Go
170 lines
5.9 KiB
Go
package collection
|
|
|
|
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_file "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/domain/file"
|
|
dom_tag "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/domain/tag"
|
|
uc_blockedemail "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/usecase/blockedemail"
|
|
uc_collection "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/usecase/collection"
|
|
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"
|
|
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/pkg/emailer/mailgun"
|
|
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/pkg/ratelimit"
|
|
)
|
|
|
|
// Wire providers for collection services
|
|
|
|
func ProvideCreateCollectionService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
userGetByIDUseCase uc_user.UserGetByIDUseCase,
|
|
repo dom_collection.CollectionRepository,
|
|
tagRepo dom_tag.Repository,
|
|
) CreateCollectionService {
|
|
return NewCreateCollectionService(cfg, logger, userGetByIDUseCase, repo, tagRepo)
|
|
}
|
|
|
|
func ProvideGetCollectionService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
repo dom_collection.CollectionRepository,
|
|
userGetByIDUseCase uc_user.UserGetByIDUseCase,
|
|
authFailureRateLimiter ratelimit.AuthFailureRateLimiter,
|
|
) GetCollectionService {
|
|
return NewGetCollectionService(cfg, logger, repo, userGetByIDUseCase, authFailureRateLimiter)
|
|
}
|
|
|
|
func ProvideUpdateCollectionService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
repo dom_collection.CollectionRepository,
|
|
authFailureRateLimiter ratelimit.AuthFailureRateLimiter,
|
|
) UpdateCollectionService {
|
|
return NewUpdateCollectionService(cfg, logger, repo, authFailureRateLimiter)
|
|
}
|
|
|
|
func ProvideSoftDeleteCollectionService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
repo dom_collection.CollectionRepository,
|
|
fileRepo dom_file.FileMetadataRepository,
|
|
getCollectionUseCase uc_collection.GetCollectionUseCase,
|
|
updateCollectionUseCase uc_collection.UpdateCollectionUseCase,
|
|
hardDeleteCollectionUseCase uc_collection.HardDeleteCollectionUseCase,
|
|
deleteMultipleDataUseCase uc_fileobjectstorage.DeleteMultipleEncryptedDataUseCase,
|
|
storageQuotaHelperUseCase uc_user.UserStorageQuotaHelperUseCase,
|
|
createStorageUsageEventUseCase uc_storageusageevent.CreateStorageUsageEventUseCase,
|
|
updateStorageUsageUseCase uc_storagedailyusage.UpdateStorageUsageUseCase,
|
|
) SoftDeleteCollectionService {
|
|
return NewSoftDeleteCollectionService(
|
|
cfg,
|
|
logger,
|
|
repo,
|
|
fileRepo,
|
|
getCollectionUseCase,
|
|
updateCollectionUseCase,
|
|
hardDeleteCollectionUseCase,
|
|
deleteMultipleDataUseCase,
|
|
storageQuotaHelperUseCase,
|
|
createStorageUsageEventUseCase,
|
|
updateStorageUsageUseCase,
|
|
)
|
|
}
|
|
|
|
func ProvideArchiveCollectionService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
repo dom_collection.CollectionRepository,
|
|
) ArchiveCollectionService {
|
|
return NewArchiveCollectionService(cfg, logger, repo)
|
|
}
|
|
|
|
func ProvideRestoreCollectionService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
repo dom_collection.CollectionRepository,
|
|
) RestoreCollectionService {
|
|
return NewRestoreCollectionService(cfg, logger, repo)
|
|
}
|
|
|
|
func ProvideListUserCollectionsService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
repo dom_collection.CollectionRepository,
|
|
fileRepo dom_file.FileMetadataRepository,
|
|
) ListUserCollectionsService {
|
|
return NewListUserCollectionsService(cfg, logger, repo, fileRepo)
|
|
}
|
|
|
|
func ProvideListSharedCollectionsService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
repo dom_collection.CollectionRepository,
|
|
fileRepo dom_file.FileMetadataRepository,
|
|
) ListSharedCollectionsService {
|
|
return NewListSharedCollectionsService(cfg, logger, repo, fileRepo)
|
|
}
|
|
|
|
func ProvideFindRootCollectionsService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
repo dom_collection.CollectionRepository,
|
|
) FindRootCollectionsService {
|
|
return NewFindRootCollectionsService(cfg, logger, repo)
|
|
}
|
|
|
|
func ProvideFindCollectionsByParentService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
repo dom_collection.CollectionRepository,
|
|
) FindCollectionsByParentService {
|
|
return NewFindCollectionsByParentService(cfg, logger, repo)
|
|
}
|
|
|
|
func ProvideGetCollectionSyncDataService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
getCollectionSyncDataUseCase uc_collection.GetCollectionSyncDataUseCase,
|
|
) GetCollectionSyncDataService {
|
|
return NewGetCollectionSyncDataService(cfg, logger, getCollectionSyncDataUseCase)
|
|
}
|
|
|
|
func ProvideMoveCollectionService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
repo dom_collection.CollectionRepository,
|
|
) MoveCollectionService {
|
|
return NewMoveCollectionService(cfg, logger, repo)
|
|
}
|
|
|
|
func ProvideGetFilteredCollectionsService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
repo dom_collection.CollectionRepository,
|
|
) GetFilteredCollectionsService {
|
|
return NewGetFilteredCollectionsService(cfg, logger, repo)
|
|
}
|
|
|
|
func ProvideShareCollectionService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
repo dom_collection.CollectionRepository,
|
|
checkBlockedEmailUC uc_blockedemail.CheckBlockedEmailUseCase,
|
|
userGetByIDUC uc_user.UserGetByIDUseCase,
|
|
emailer mailgun.Emailer,
|
|
) ShareCollectionService {
|
|
return NewShareCollectionService(cfg, logger, repo, checkBlockedEmailUC, userGetByIDUC, emailer)
|
|
}
|
|
|
|
func ProvideRemoveMemberService(
|
|
cfg *config.Configuration,
|
|
logger *zap.Logger,
|
|
repo dom_collection.CollectionRepository,
|
|
) RemoveMemberService {
|
|
return NewRemoveMemberService(cfg, logger, repo)
|
|
}
|