121 lines
4.4 KiB
Go
121 lines
4.4 KiB
Go
// codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/service/auth/provider.go
|
|
package auth
|
|
|
|
import (
|
|
"go.uber.org/zap"
|
|
|
|
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/config"
|
|
uc_user "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/usecase/user"
|
|
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/pkg/auditlog"
|
|
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/pkg/emailer/mailgun"
|
|
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/pkg/security/jwt"
|
|
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/pkg/storage/cache/cassandracache"
|
|
)
|
|
|
|
// ProvideRegisterService provides the register service
|
|
func ProvideRegisterService(
|
|
config *config.Config,
|
|
logger *zap.Logger,
|
|
auditLogger auditlog.AuditLogger,
|
|
userCreateUC uc_user.UserCreateUseCase,
|
|
userGetByEmailUC uc_user.UserGetByEmailUseCase,
|
|
userDeleteByIDUC uc_user.UserDeleteByIDUseCase,
|
|
emailer mailgun.Emailer,
|
|
) RegisterService {
|
|
return NewRegisterService(config, logger, auditLogger, userCreateUC, userGetByEmailUC, userDeleteByIDUC, emailer)
|
|
}
|
|
|
|
// ProvideVerifyEmailService provides the verify email service
|
|
func ProvideVerifyEmailService(
|
|
logger *zap.Logger,
|
|
auditLogger auditlog.AuditLogger,
|
|
userGetByVerificationCodeUC uc_user.UserGetByVerificationCodeUseCase,
|
|
userUpdateUC uc_user.UserUpdateUseCase,
|
|
) VerifyEmailService {
|
|
return NewVerifyEmailService(logger, auditLogger, userGetByVerificationCodeUC, userUpdateUC)
|
|
}
|
|
|
|
// ProvideResendVerificationService provides the resend verification service
|
|
func ProvideResendVerificationService(
|
|
config *config.Config,
|
|
logger *zap.Logger,
|
|
userGetByEmailUC uc_user.UserGetByEmailUseCase,
|
|
userUpdateUC uc_user.UserUpdateUseCase,
|
|
emailer mailgun.Emailer,
|
|
) ResendVerificationService {
|
|
return NewResendVerificationService(config, logger, userGetByEmailUC, userUpdateUC, emailer)
|
|
}
|
|
|
|
// ProvideRequestOTTService provides the request OTT service
|
|
func ProvideRequestOTTService(
|
|
config *config.Config,
|
|
logger *zap.Logger,
|
|
userGetByEmailUC uc_user.UserGetByEmailUseCase,
|
|
cache cassandracache.CassandraCacher,
|
|
emailer mailgun.Emailer,
|
|
) RequestOTTService {
|
|
return NewRequestOTTService(config, logger, userGetByEmailUC, cache, emailer)
|
|
}
|
|
|
|
// ProvideVerifyOTTService provides the verify OTT service
|
|
func ProvideVerifyOTTService(
|
|
logger *zap.Logger,
|
|
userGetByEmailUC uc_user.UserGetByEmailUseCase,
|
|
cache cassandracache.CassandraCacher,
|
|
) VerifyOTTService {
|
|
return NewVerifyOTTService(logger, userGetByEmailUC, cache)
|
|
}
|
|
|
|
// ProvideCompleteLoginService provides the complete login service
|
|
func ProvideCompleteLoginService(
|
|
config *config.Config,
|
|
logger *zap.Logger,
|
|
auditLogger auditlog.AuditLogger,
|
|
userGetByEmailUC uc_user.UserGetByEmailUseCase,
|
|
cache cassandracache.CassandraCacher,
|
|
jwtProvider jwt.JWTProvider,
|
|
) CompleteLoginService {
|
|
return NewCompleteLoginService(config, logger, auditLogger, userGetByEmailUC, cache, jwtProvider)
|
|
}
|
|
|
|
// ProvideRefreshTokenService provides the refresh token service
|
|
func ProvideRefreshTokenService(
|
|
cfg *config.Config,
|
|
logger *zap.Logger,
|
|
auditLogger auditlog.AuditLogger,
|
|
cache cassandracache.CassandraCacher,
|
|
jwtProvider jwt.JWTProvider,
|
|
userGetByIDUC uc_user.UserGetByIDUseCase,
|
|
) RefreshTokenService {
|
|
return NewRefreshTokenService(cfg, logger, auditLogger, cache, jwtProvider, userGetByIDUC)
|
|
}
|
|
|
|
// ProvideRecoveryInitiateService provides the recovery initiate service
|
|
func ProvideRecoveryInitiateService(
|
|
logger *zap.Logger,
|
|
auditLogger auditlog.AuditLogger,
|
|
userGetByEmailUC uc_user.UserGetByEmailUseCase,
|
|
cache cassandracache.CassandraCacher,
|
|
) RecoveryInitiateService {
|
|
return NewRecoveryInitiateService(logger, auditLogger, userGetByEmailUC, cache)
|
|
}
|
|
|
|
// ProvideRecoveryVerifyService provides the recovery verify service
|
|
func ProvideRecoveryVerifyService(
|
|
logger *zap.Logger,
|
|
cache cassandracache.CassandraCacher,
|
|
userGetByEmailUC uc_user.UserGetByEmailUseCase,
|
|
) RecoveryVerifyService {
|
|
return NewRecoveryVerifyService(logger, cache, userGetByEmailUC)
|
|
}
|
|
|
|
// ProvideRecoveryCompleteService provides the recovery complete service
|
|
func ProvideRecoveryCompleteService(
|
|
logger *zap.Logger,
|
|
auditLogger auditlog.AuditLogger,
|
|
userGetByEmailUC uc_user.UserGetByEmailUseCase,
|
|
userUpdateUC uc_user.UserUpdateUseCase,
|
|
cache cassandracache.CassandraCacher,
|
|
) RecoveryCompleteService {
|
|
return NewRecoveryCompleteService(logger, auditLogger, userGetByEmailUC, userUpdateUC, cache)
|
|
}
|