mirror of
https://github.com/Floriansylvain/RenewCMS.git
synced 2026-08-19 11:43:22 +02:00
43 lines
963 B
Go
43 lines
963 B
Go
package useCases
|
|
|
|
import (
|
|
"RenewCMS/internal/domain/user"
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type CreateUserUseCase struct {
|
|
userRepository user.Repository
|
|
}
|
|
|
|
type CreateUserCommand struct {
|
|
Username string
|
|
Password string
|
|
Email string
|
|
}
|
|
|
|
func NewCreateUserUseCase(userRepository user.Repository) *CreateUserUseCase {
|
|
return &CreateUserUseCase{userRepository}
|
|
}
|
|
|
|
func (g *CreateUserUseCase) CreateUser(createUser CreateUserCommand) (user.User, error) {
|
|
rawUuid := uuid.NewString()
|
|
|
|
createdUser, err := g.userRepository.Create(user.User{
|
|
Username: createUser.Username,
|
|
Password: createUser.Password,
|
|
PasswordResetCode: "",
|
|
Email: createUser.Email,
|
|
IsVerified: false,
|
|
VerificationCode: rawUuid,
|
|
VerificationExpiration: time.Now().Add(2 * time.Hour),
|
|
})
|
|
if err != nil {
|
|
return user.User{}, err
|
|
}
|
|
|
|
createdUser.VerificationCode = rawUuid
|
|
return createdUser, nil
|
|
}
|