Skip to content

Commit

Permalink
Resolving Issues And Split Email Checker
Browse files Browse the repository at this point in the history
  • Loading branch information
hemite123 committed Jun 11, 2024
1 parent ef5e149 commit 9df801e
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 44 deletions.
1 change: 1 addition & 0 deletions internal/app/ports/user_ports.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
type IUserRepository interface {
GetUserByUsernameAndPassword(ctx context.Context, username string, hashPassword string) (*entity.UserORM, error)
RegisterUser(ctx context.Context, userData entity.UserORM) (int64, error)
GetUserByEmail(ctx context.Context, email string) error
}

type IUserService interface {
Expand Down
2 changes: 1 addition & 1 deletion internal/app/repository/init.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package repository

import (
"github.com/voltgizerz/POS-restaurant/database"
"github.com/voltgizerz/POS-restaurant/database"
)

type RepositoryOpts struct {
Expand Down
37 changes: 15 additions & 22 deletions internal/app/repository/user_repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,12 @@ package repository

import (
"context"
"errors"
"database/sql"

"github.com/jmoiron/sqlx"
"github.com/opentracing/opentracing-go"
"github.com/sirupsen/logrus"
"github.com/voltgizerz/POS-restaurant/internal/app/entity"
"github.com/voltgizerz/POS-restaurant/internal/app/ports"
"github.com/voltgizerz/POS-restaurant/pkg/logger"
)

const (
Expand Down Expand Up @@ -46,33 +44,28 @@ func (r *UserRepository) RegisterUser(ctx context.Context, userData entity.UserO
span, ctx := opentracing.StartSpanFromContext(ctx, "repo.UserRepository.RegisterUser")
defer span.Finish()

user := entity.UserORM{}

err := r.MasterDB.Get(&user, queryGetEmailSame, userData.Email)
if err == nil {
logger.LogStdErr.WithFields(logrus.Fields{
"username": userData.Username,
"error": "Email Already Exist",
}).Error("[UserRepository(RegisterUser)] Email Already Exist")
return 0, errors.New("Email Already Exists")
}
result, err := r.MasterDB.ExecContext(ctx, queryInsertDataUser, userData.Name, userData.Username, userData.Email, userData.Password, 1, 1)
if err != nil {
logger.LogStdErr.WithFields(logrus.Fields{
"username": userData.Username,
"error": err,
}).Error("[UserRepository(RegisterUser)] " + err.Error())
return 0, err

}
lastId, err := result.LastInsertId()
if err != nil {
logger.LogStdErr.WithFields(logrus.Fields{
"username": userData.Username,
"error": err,
}).Error("[UserRepository(RegisterUser)] " + err.Error())
return 0, err
}
return lastId, nil
}

func (r *UserRepository) GetUserByEmail(ctx context.Context, email string) error {
span, ctx := opentracing.StartSpanFromContext(ctx, "repo.UserRepository.GetUserByEmail")
defer span.Finish()

user := entity.UserORM{}

err := r.MasterDB.GetContext(ctx, &user, queryGetEmailSame, email)
if err != nil {
if err == sql.ErrNoRows {
return err
}
}
return nil
}
47 changes: 26 additions & 21 deletions internal/app/service/user_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package service

import (
"context"
"errors"

"github.com/opentracing/opentracing-go"
"github.com/sirupsen/logrus"
Expand Down Expand Up @@ -73,28 +74,32 @@ func (s *UserService) Register(ctx context.Context, userData entity.User) (int64
span, ctx := opentracing.StartSpanFromContext(ctx, "service.UserService.Register")
defer span.Finish()

passwordhasing, err := utils.HashPassword(userData.Password)
err := s.userRepository.GetUserByEmail(ctx, userData.Email)
if err != nil {
logger.LogStdErr.WithFields(logrus.Fields{
"username": userData.Username,
"error": err,
}).Error("[UserService] error on UserService Hash Password On Register")
}
userDataProced := entity.UserORM{
Username: userData.Username,
Password: passwordhasing,
Name: userData.Name,
Email: userData.Email,
}

result, err := s.userRepository.RegisterUser(ctx, userDataProced)
if err != nil {
logger.LogStdErr.WithFields(logrus.Fields{
"username": userData.Username,
"error": err,
}).Error("[UserService] error on UserService From Repository Register User")
return 0, err
passwordHashed, err := utils.HashPassword(userData.Password)
if err != nil {
logger.LogStdErr.WithFields(logrus.Fields{
"username": userData.Username,
"error": err,
}).Error("[UserService] error on UserService Hash Password On Register")
}
userDataProced := entity.UserORM{
Username: userData.Username,
Password: passwordHashed,
Name: userData.Name,
Email: userData.Email,
}

result, err := s.userRepository.RegisterUser(ctx, userDataProced)
if err != nil {
logger.LogStdErr.WithFields(logrus.Fields{
"username": userData.Username,
"error": err,
}).Error("[UserService] error on UserService From Repository Register User")
return 0, err
}
return result, nil
}
return 0, errors.New("Email Already Exists")

return result, nil
}

0 comments on commit 9df801e

Please sign in to comment.