monorepo/cloud/maplefile-backend/internal/service/user/provider.go

61 lines
2.8 KiB
Go

// codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/service/user/provider.go
package user
import (
"go.uber.org/zap"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/config"
svc_collection "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/service/collection"
svc_file "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/service/file"
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_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"
)
// ProvideUserPublicLookupService provides the user public lookup service
func ProvideUserPublicLookupService(
config *config.Config,
logger *zap.Logger,
userGetByEmailUC uc_user.UserGetByEmailUseCase,
) UserPublicLookupService {
return NewUserPublicLookupService(config, logger, userGetByEmailUC)
}
// ProvideCompleteUserDeletionService provides the complete GDPR user deletion service
func ProvideCompleteUserDeletionService(
cfg *config.Configuration,
logger *zap.Logger,
getUserUseCase uc_user.UserGetByIDUseCase,
deleteUserByIDUseCase uc_user.UserDeleteByIDUseCase,
listFilesByOwnerIDService svc_file.ListFilesByOwnerIDService,
softDeleteFileService svc_file.SoftDeleteFileService,
listCollectionsByUserUseCase uc_collection.ListCollectionsByUserUseCase,
softDeleteCollectionService svc_collection.SoftDeleteCollectionService,
removeUserFromAllCollectionsUseCase uc_collection.RemoveUserFromAllCollectionsUseCase,
deleteStorageDailyUsageUseCase uc_storagedailyusage.DeleteByUserUseCase,
deleteStorageUsageEventUseCase uc_storageusageevent.DeleteByUserUseCase,
anonymizeUserIPsImmediatelyUseCase uc_user.AnonymizeUserIPsImmediatelyUseCase,
clearUserCacheUseCase uc_user.ClearUserCacheUseCase,
anonymizeFileUserReferencesUseCase uc_filemetadata.AnonymizeUserReferencesUseCase,
anonymizeCollectionUserReferencesUseCase uc_collection.AnonymizeUserReferencesUseCase,
) CompleteUserDeletionService {
return NewCompleteUserDeletionService(
cfg,
logger,
getUserUseCase,
deleteUserByIDUseCase,
listFilesByOwnerIDService,
softDeleteFileService,
listCollectionsByUserUseCase,
softDeleteCollectionService,
removeUserFromAllCollectionsUseCase,
deleteStorageDailyUsageUseCase,
deleteStorageUsageEventUseCase,
anonymizeUserIPsImmediatelyUseCase,
clearUserCacheUseCase,
anonymizeFileUserReferencesUseCase,
anonymizeCollectionUserReferencesUseCase,
)
}