From ae5d9c52d2cdd4a65588200b29c27b4c365f94c6 Mon Sep 17 00:00:00 2001 From: NitiwatOwen Date: Mon, 1 Jan 2024 19:24:36 +0700 Subject: [PATCH 1/7] refactor: project structure --- .gitignore | 2 +- {src/config => cfgldr}/config.go | 2 +- {src => cmd}/main.go | 28 +++--- .../postgresql.connection.go | 4 +- .../database => database}/redis.connection.go | 4 +- .../constant/error.constant.go | 0 .../constant/user.constant.go | 0 .../domain/dto/token/token.dto.go | 2 +- .../domain/model/auth.model.go | 0 .../domain/model/common.model.go | 0 .../domain/model/user.model.go | 4 +- .../repository/auth/auth.repository.go | 2 +- .../repository/auth/auth.repository_test.go | 12 +-- .../repository/cache/cache.repository.go | 0 .../repository/cache/cache.repository_test.go | 2 +- .../repository/user/user.repository.go | 2 +- .../repository/user/user.repository_test.go | 38 ++++---- .../service/auth/auth.service.go | 40 ++++---- .../service/auth/auth.service_test.go | 96 +++++++++---------- .../service/jwt/jwt.service.go | 16 ++-- .../service/jwt/jwt.service_test.go | 14 +-- .../service/token/token.service.go | 14 +-- .../service/token/token.service_test.go | 16 ++-- .../service/user/user.service.go | 8 +- .../service/user/user.service_test.go | 24 ++--- .../strategy/jwt.strategy.go | 0 .../strategy/jwt.strategy_test.go | 0 .../utils/bcrypt.utils.go | 0 {src/internal => internal}/utils/jwt.utils.go | 0 .../internal => internal}/utils/uuid.utils.go | 0 .../repository/auth/auth.mock.go | 6 +- .../repository/cache/cache.mock.go | 4 +- .../repository/user/user.mock.go | 2 +- {src/mocks => mocks}/service/jwt/jwt.mock.go | 8 +- .../service/token/token.mock.go | 6 +- .../mocks => mocks}/strategy/strategy.mock.go | 0 {src/mocks => mocks}/utils/bcrypt.mock.go | 0 {src/mocks => mocks}/utils/jwt.mock.go | 0 {src/mocks => mocks}/utils/uuid.mock.go | 0 .../repository/auth/auth.repository.go | 4 +- .../repository/cache/cache.repository.go | 2 +- .../repository/user/user.repository.go | 4 +- {src/pkg => pkg}/service/auth/auth.service.go | 10 +- pkg/service/jwt/jwt.service.go | 20 ++++ .../service/token/token.service.go | 12 +-- {src/pkg => pkg}/service/user/user.service.go | 6 +- {src/pkg => pkg}/strategy/jwt.strategy.go | 2 +- src/pkg/service/jwt/jwt.service.go | 20 ---- 48 files changed, 219 insertions(+), 217 deletions(-) rename {src/config => cfgldr}/config.go (99%) rename {src => cmd}/main.go (82%) rename {src/database => database}/postgresql.connection.go (86%) rename {src/database => database}/redis.connection.go (77%) rename {src/internal => internal}/constant/error.constant.go (100%) rename {src/internal => internal}/constant/user.constant.go (100%) rename {src/internal => internal}/domain/dto/token/token.dto.go (92%) rename {src/internal => internal}/domain/model/auth.model.go (100%) rename {src/internal => internal}/domain/model/common.model.go (100%) rename {src/internal => internal}/domain/model/user.model.go (83%) rename {src/internal => internal}/repository/auth/auth.repository.go (86%) rename {src/internal => internal}/repository/auth/auth.repository_test.go (78%) rename {src/internal => internal}/repository/cache/cache.repository.go (100%) rename {src/internal => internal}/repository/cache/cache.repository_test.go (95%) rename {src/internal => internal}/repository/user/user.repository.go (93%) rename {src/internal => internal}/repository/user/user.repository_test.go (86%) rename {src/internal => internal}/service/auth/auth.service.go (69%) rename {src/internal => internal}/service/auth/auth.service_test.go (85%) rename {src/internal => internal}/service/jwt/jwt.service.go (73%) rename {src/internal => internal}/service/jwt/jwt.service_test.go (92%) rename {src/internal => internal}/service/token/token.service.go (89%) rename {src/internal => internal}/service/token/token.service_test.go (97%) rename {src/internal => internal}/service/user/user.service.go (89%) rename {src/internal => internal}/service/user/user.service_test.go (88%) rename {src/internal => internal}/strategy/jwt.strategy.go (100%) rename {src/internal => internal}/strategy/jwt.strategy_test.go (100%) rename {src/internal => internal}/utils/bcrypt.utils.go (100%) rename {src/internal => internal}/utils/jwt.utils.go (100%) rename {src/internal => internal}/utils/uuid.utils.go (100%) rename {src/mocks => mocks}/repository/auth/auth.mock.go (93%) rename {src/mocks => mocks}/repository/cache/cache.mock.go (97%) rename {src/mocks => mocks}/repository/user/user.mock.go (95%) rename {src/mocks => mocks}/service/jwt/jwt.mock.go (75%) rename {src/mocks => mocks}/service/token/token.mock.go (82%) rename {src/mocks => mocks}/strategy/strategy.mock.go (100%) rename {src/mocks => mocks}/utils/bcrypt.mock.go (100%) rename {src/mocks => mocks}/utils/jwt.mock.go (100%) rename {src/mocks => mocks}/utils/uuid.mock.go (100%) rename {src/pkg => pkg}/repository/auth/auth.repository.go (62%) rename {src/pkg => pkg}/repository/cache/cache.repository.go (82%) rename {src/pkg => pkg}/repository/user/user.repository.go (75%) rename {src/pkg => pkg}/service/auth/auth.service.go (51%) create mode 100644 pkg/service/jwt/jwt.service.go rename {src/pkg => pkg}/service/token/token.service.go (61%) rename {src/pkg => pkg}/service/user/user.service.go (58%) rename {src/pkg => pkg}/strategy/jwt.strategy.go (80%) delete mode 100644 src/pkg/service/jwt/jwt.service.go diff --git a/.gitignore b/.gitignore index 3aa49c7..4c726ea 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,4 @@ coverage.html .DS_store -src/internal/repository/user/memory: +internal/repository/user/memory: diff --git a/src/config/config.go b/cfgldr/config.go similarity index 99% rename from src/config/config.go rename to cfgldr/config.go index 1e011ef..2983ef4 100644 --- a/src/config/config.go +++ b/cfgldr/config.go @@ -1,4 +1,4 @@ -package config +package cfgldr import ( "github.com/pkg/errors" diff --git a/src/main.go b/cmd/main.go similarity index 82% rename from src/main.go rename to cmd/main.go index 3fe8b03..b003624 100644 --- a/src/main.go +++ b/cmd/main.go @@ -3,6 +3,15 @@ package main import ( "context" "fmt" + "github.com/isd-sgcu/johnjud-auth/cfgldr" + database2 "github.com/isd-sgcu/johnjud-auth/database" + authRp "github.com/isd-sgcu/johnjud-auth/pkg/repository/auth" + cacheRp "github.com/isd-sgcu/johnjud-auth/pkg/repository/cache" + userRp "github.com/isd-sgcu/johnjud-auth/pkg/repository/user" + authSvc "github.com/isd-sgcu/johnjud-auth/pkg/service/auth" + jwtSvc "github.com/isd-sgcu/johnjud-auth/pkg/service/jwt" + tokenSvc "github.com/isd-sgcu/johnjud-auth/pkg/service/token" + userSvc "github.com/isd-sgcu/johnjud-auth/pkg/service/user" "net" "os" "os/signal" @@ -10,17 +19,8 @@ import ( "syscall" "time" - "github.com/isd-sgcu/johnjud-auth/src/config" - "github.com/isd-sgcu/johnjud-auth/src/database" - "github.com/isd-sgcu/johnjud-auth/src/internal/strategy" - "github.com/isd-sgcu/johnjud-auth/src/internal/utils" - authRp "github.com/isd-sgcu/johnjud-auth/src/pkg/repository/auth" - cacheRp "github.com/isd-sgcu/johnjud-auth/src/pkg/repository/cache" - userRp "github.com/isd-sgcu/johnjud-auth/src/pkg/repository/user" - authSvc "github.com/isd-sgcu/johnjud-auth/src/pkg/service/auth" - jwtSvc "github.com/isd-sgcu/johnjud-auth/src/pkg/service/jwt" - tokenSvc "github.com/isd-sgcu/johnjud-auth/src/pkg/service/token" - userSvc "github.com/isd-sgcu/johnjud-auth/src/pkg/service/user" + "github.com/isd-sgcu/johnjud-auth/internal/strategy" + "github.com/isd-sgcu/johnjud-auth/internal/utils" authPb "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" userPb "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/user/v1" "github.com/rs/zerolog/log" @@ -87,7 +87,7 @@ func gracefulShutdown(ctx context.Context, timeout time.Duration, ops map[string } func main() { - conf, err := config.LoadConfig() + conf, err := cfgldr.LoadConfig() if err != nil { log.Fatal(). Err(err). @@ -95,7 +95,7 @@ func main() { Msg("Failed to load config") } - db, err := database.InitPostgresDatabase(&conf.Database, conf.App.Debug) + db, err := database2.InitPostgresDatabase(&conf.Database, conf.App.Debug) if err != nil { log.Fatal(). Err(err). @@ -103,7 +103,7 @@ func main() { Msg("Failed to init postgres connection") } - cacheDb, err := database.InitRedisConnection(&conf.Redis) + cacheDb, err := database2.InitRedisConnection(&conf.Redis) if err != nil { log.Fatal(). Err(err). diff --git a/src/database/postgresql.connection.go b/database/postgresql.connection.go similarity index 86% rename from src/database/postgresql.connection.go rename to database/postgresql.connection.go index b8d14ce..3bcd4fe 100644 --- a/src/database/postgresql.connection.go +++ b/database/postgresql.connection.go @@ -2,7 +2,7 @@ package database import ( "fmt" - "github.com/isd-sgcu/johnjud-auth/src/config" + "github.com/isd-sgcu/johnjud-auth/cfgldr" "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" "gorm.io/driver/postgres" "gorm.io/gorm" @@ -10,7 +10,7 @@ import ( "strconv" ) -func InitPostgresDatabase(conf *config.Database, isDebug bool) (db *gorm.DB, err error) { +func InitPostgresDatabase(conf *cfgldr.Database, isDebug bool) (db *gorm.DB, err error) { dsn := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=%s", conf.Host, strconv.Itoa(conf.Port), conf.Username, conf.Password, conf.Name, conf.SSL) gormConf := &gorm.Config{TranslateError: true} diff --git a/src/database/redis.connection.go b/database/redis.connection.go similarity index 77% rename from src/database/redis.connection.go rename to database/redis.connection.go index eab03f0..6e10cf0 100644 --- a/src/database/redis.connection.go +++ b/database/redis.connection.go @@ -2,12 +2,12 @@ package database import ( "fmt" - "github.com/isd-sgcu/johnjud-auth/src/config" + "github.com/isd-sgcu/johnjud-auth/cfgldr" "github.com/pkg/errors" "github.com/redis/go-redis/v9" ) -func InitRedisConnection(conf *config.Redis) (*redis.Client, error) { +func InitRedisConnection(conf *cfgldr.Redis) (*redis.Client, error) { addr := fmt.Sprintf("%s:%d", conf.Host, conf.Port) cache := redis.NewClient(&redis.Options{ diff --git a/src/internal/constant/error.constant.go b/internal/constant/error.constant.go similarity index 100% rename from src/internal/constant/error.constant.go rename to internal/constant/error.constant.go diff --git a/src/internal/constant/user.constant.go b/internal/constant/user.constant.go similarity index 100% rename from src/internal/constant/user.constant.go rename to internal/constant/user.constant.go diff --git a/src/internal/domain/dto/token/token.dto.go b/internal/domain/dto/token/token.dto.go similarity index 92% rename from src/internal/domain/dto/token/token.dto.go rename to internal/domain/dto/token/token.dto.go index b538444..e9450f0 100644 --- a/src/internal/domain/dto/token/token.dto.go +++ b/internal/domain/dto/token/token.dto.go @@ -2,7 +2,7 @@ package token import ( "github.com/golang-jwt/jwt/v4" - "github.com/isd-sgcu/johnjud-auth/src/internal/constant" + "github.com/isd-sgcu/johnjud-auth/internal/constant" ) type UserCredential struct { diff --git a/src/internal/domain/model/auth.model.go b/internal/domain/model/auth.model.go similarity index 100% rename from src/internal/domain/model/auth.model.go rename to internal/domain/model/auth.model.go diff --git a/src/internal/domain/model/common.model.go b/internal/domain/model/common.model.go similarity index 100% rename from src/internal/domain/model/common.model.go rename to internal/domain/model/common.model.go diff --git a/src/internal/domain/model/user.model.go b/internal/domain/model/user.model.go similarity index 83% rename from src/internal/domain/model/user.model.go rename to internal/domain/model/user.model.go index 48560f3..bac59f1 100644 --- a/src/internal/domain/model/user.model.go +++ b/internal/domain/model/user.model.go @@ -1,6 +1,8 @@ package model -import "github.com/isd-sgcu/johnjud-auth/src/internal/constant" +import ( + "github.com/isd-sgcu/johnjud-auth/internal/constant" +) type User struct { Base diff --git a/src/internal/repository/auth/auth.repository.go b/internal/repository/auth/auth.repository.go similarity index 86% rename from src/internal/repository/auth/auth.repository.go rename to internal/repository/auth/auth.repository.go index 26998ae..1e59b1b 100644 --- a/src/internal/repository/auth/auth.repository.go +++ b/internal/repository/auth/auth.repository.go @@ -1,7 +1,7 @@ package auth import ( - "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/domain/model" "gorm.io/gorm" ) diff --git a/src/internal/repository/auth/auth.repository_test.go b/internal/repository/auth/auth.repository_test.go similarity index 78% rename from src/internal/repository/auth/auth.repository_test.go rename to internal/repository/auth/auth.repository_test.go index c6f7d04..8baf7c6 100644 --- a/src/internal/repository/auth/auth.repository_test.go +++ b/internal/repository/auth/auth.repository_test.go @@ -3,7 +3,7 @@ package auth import ( "fmt" "github.com/google/uuid" - "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" + model2 "github.com/isd-sgcu/johnjud-auth/internal/domain/model" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" "gorm.io/driver/postgres" @@ -27,10 +27,10 @@ func (t *AuthRepositoryTest) SetupTest() { assert.NoError(t.T(), err) - _ = db.Migrator().DropTable(&model.User{}) - _ = db.Migrator().DropTable(&model.AuthSession{}) + _ = db.Migrator().DropTable(&model2.User{}) + _ = db.Migrator().DropTable(&model2.AuthSession{}) - err = db.AutoMigrate(&model.User{}, &model.AuthSession{}) + err = db.AutoMigrate(&model2.User{}, &model2.AuthSession{}) assert.NoError(t.T(), err) authRepo := NewRepository(db) @@ -40,7 +40,7 @@ func (t *AuthRepositoryTest) SetupTest() { } func (t *AuthRepositoryTest) TestCreateSuccess() { - createAuthSession := &model.AuthSession{ + createAuthSession := &model2.AuthSession{ UserID: uuid.New(), } @@ -49,7 +49,7 @@ func (t *AuthRepositoryTest) TestCreateSuccess() { } func (t *AuthRepositoryTest) TestDeleteSuccess() { - createAuthSession := &model.AuthSession{ + createAuthSession := &model2.AuthSession{ UserID: uuid.New(), } diff --git a/src/internal/repository/cache/cache.repository.go b/internal/repository/cache/cache.repository.go similarity index 100% rename from src/internal/repository/cache/cache.repository.go rename to internal/repository/cache/cache.repository.go diff --git a/src/internal/repository/cache/cache.repository_test.go b/internal/repository/cache/cache.repository_test.go similarity index 95% rename from src/internal/repository/cache/cache.repository_test.go rename to internal/repository/cache/cache.repository_test.go index fbdaf05..d9081df 100644 --- a/src/internal/repository/cache/cache.repository_test.go +++ b/internal/repository/cache/cache.repository_test.go @@ -4,7 +4,7 @@ import ( "context" "fmt" "github.com/go-faker/faker/v4" - tokenDto "github.com/isd-sgcu/johnjud-auth/src/internal/domain/dto/token" + tokenDto "github.com/isd-sgcu/johnjud-auth/internal/domain/dto/token" "github.com/redis/go-redis/v9" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" diff --git a/src/internal/repository/user/user.repository.go b/internal/repository/user/user.repository.go similarity index 93% rename from src/internal/repository/user/user.repository.go rename to internal/repository/user/user.repository.go index b325b56..f17345d 100644 --- a/src/internal/repository/user/user.repository.go +++ b/internal/repository/user/user.repository.go @@ -1,7 +1,7 @@ package user import ( - "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/domain/model" "gorm.io/gorm" ) diff --git a/src/internal/repository/user/user.repository_test.go b/internal/repository/user/user.repository_test.go similarity index 86% rename from src/internal/repository/user/user.repository_test.go rename to internal/repository/user/user.repository_test.go index 2b858e7..e733a75 100644 --- a/src/internal/repository/user/user.repository_test.go +++ b/internal/repository/user/user.repository_test.go @@ -3,8 +3,8 @@ package user import ( "fmt" "github.com/go-faker/faker/v4" - "github.com/isd-sgcu/johnjud-auth/src/internal/constant" - "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/constant" + model2 "github.com/isd-sgcu/johnjud-auth/internal/domain/model" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" "gorm.io/driver/postgres" @@ -16,7 +16,7 @@ type UserRepositoryTest struct { suite.Suite db *gorm.DB userRepo *repositoryImpl - initialUser *model.User + initialUser *model2.User } func TestUserRepository(t *testing.T) { @@ -29,15 +29,15 @@ func (t *UserRepositoryTest) SetupTest() { assert.NoError(t.T(), err) - _ = db.Migrator().DropTable(&model.User{}) - _ = db.Migrator().DropTable(&model.AuthSession{}) + _ = db.Migrator().DropTable(&model2.User{}) + _ = db.Migrator().DropTable(&model2.AuthSession{}) - err = db.AutoMigrate(&model.User{}, &model.AuthSession{}) + err = db.AutoMigrate(&model2.User{}, &model2.AuthSession{}) assert.NoError(t.T(), err) userRepository := NewRepository(db) - initialUser := &model.User{ + initialUser := &model2.User{ Email: faker.Email(), Password: faker.Password(), Firstname: faker.FirstName(), @@ -55,14 +55,14 @@ func (t *UserRepositoryTest) SetupTest() { } func (t *UserRepositoryTest) TestFindAllSuccess() { - users := &[]*model.User{} + users := &[]*model2.User{} err := t.userRepo.FindAll(users) assert.NoError(t.T(), err) assert.NotEmpty(t.T(), *users) } func (t *UserRepositoryTest) TestFindByIdSuccess() { - user := &model.User{} + user := &model2.User{} err := t.userRepo.FindById(t.initialUser.ID.String(), user) assert.NoError(t.T(), err) assert.Equal(t.T(), t.initialUser.ID, user.ID) @@ -71,13 +71,13 @@ func (t *UserRepositoryTest) TestFindByIdSuccess() { func (t *UserRepositoryTest) TestFindByIdNotFound() { notFoundId := faker.UUIDDigit() - user := &model.User{} + user := &model2.User{} err := t.userRepo.FindById(notFoundId, user) assert.Equal(t.T(), gorm.ErrRecordNotFound, err) } func (t *UserRepositoryTest) TestFindByEmailSuccess() { - user := &model.User{} + user := &model2.User{} email := t.initialUser.Email err := t.userRepo.FindByEmail(email, user) assert.NoError(t.T(), err) @@ -85,14 +85,14 @@ func (t *UserRepositoryTest) TestFindByEmailSuccess() { } func (t *UserRepositoryTest) TestFindByEmailNotFound() { - user := &model.User{} + user := &model2.User{} notFoundEmail := faker.Email() err := t.userRepo.FindByEmail(notFoundEmail, user) assert.Equal(t.T(), gorm.ErrRecordNotFound, err) } func (t *UserRepositoryTest) TestCreateSuccess() { - createUser := &model.User{ + createUser := &model2.User{ Email: faker.Email(), Password: faker.Password(), Firstname: faker.FirstName(), @@ -105,7 +105,7 @@ func (t *UserRepositoryTest) TestCreateSuccess() { } func (t *UserRepositoryTest) TestCreateDuplicateEmail() { - createUser := &model.User{ + createUser := &model2.User{ Email: t.initialUser.Email, Password: faker.Password(), Firstname: faker.FirstName(), @@ -118,7 +118,7 @@ func (t *UserRepositoryTest) TestCreateDuplicateEmail() { } func (t *UserRepositoryTest) TestUpdateSuccess() { - updateUser := &model.User{ + updateUser := &model2.User{ Email: faker.Email(), Password: faker.Password(), Firstname: faker.FirstName(), @@ -131,7 +131,7 @@ func (t *UserRepositoryTest) TestUpdateSuccess() { } func (t *UserRepositoryTest) TestUpdateDuplicateEmail() { - createUser := &model.User{ + createUser := &model2.User{ Email: faker.Email(), Password: faker.Password(), Firstname: faker.FirstName(), @@ -142,7 +142,7 @@ func (t *UserRepositoryTest) TestUpdateDuplicateEmail() { err := t.userRepo.Create(createUser) assert.NoError(t.T(), err) - updateUser := &model.User{ + updateUser := &model2.User{ Email: createUser.Email, Password: faker.Password(), Firstname: faker.FirstName(), @@ -155,7 +155,7 @@ func (t *UserRepositoryTest) TestUpdateDuplicateEmail() { } func (t *UserRepositoryTest) TestUpdateNotFound() { - updateUser := &model.User{ + updateUser := &model2.User{ Email: faker.Email(), Password: faker.Password(), Firstname: faker.FirstName(), @@ -169,7 +169,7 @@ func (t *UserRepositoryTest) TestUpdateNotFound() { } func (t *UserRepositoryTest) TestDeleteSuccess() { - createUser := &model.User{ + createUser := &model2.User{ Email: faker.Email(), Password: faker.Password(), Firstname: faker.FirstName(), diff --git a/src/internal/service/auth/auth.service.go b/internal/service/auth/auth.service.go similarity index 69% rename from src/internal/service/auth/auth.service.go rename to internal/service/auth/auth.service.go index f2c5064..a6684d1 100644 --- a/src/internal/service/auth/auth.service.go +++ b/internal/service/auth/auth.service.go @@ -2,14 +2,14 @@ package auth import ( "context" + constant2 "github.com/isd-sgcu/johnjud-auth/internal/constant" + model2 "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/utils" + "github.com/isd-sgcu/johnjud-auth/pkg/repository/auth" + "github.com/isd-sgcu/johnjud-auth/pkg/repository/user" + "github.com/isd-sgcu/johnjud-auth/pkg/service/token" "github.com/google/uuid" - "github.com/isd-sgcu/johnjud-auth/src/internal/constant" - "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" - "github.com/isd-sgcu/johnjud-auth/src/internal/utils" - "github.com/isd-sgcu/johnjud-auth/src/pkg/repository/auth" - "github.com/isd-sgcu/johnjud-auth/src/pkg/repository/user" - "github.com/isd-sgcu/johnjud-auth/src/pkg/service/token" authProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" "github.com/pkg/errors" "google.golang.org/grpc/codes" @@ -49,22 +49,22 @@ func (s *serviceImpl) RefreshToken(_ context.Context, request *authProto.Refresh func (s *serviceImpl) SignUp(_ context.Context, request *authProto.SignUpRequest) (*authProto.SignUpResponse, error) { hashPassword, err := s.bcryptUtil.GenerateHashedPassword(request.Password) if err != nil { - return nil, status.Error(codes.Internal, constant.InternalServerErrorMessage) + return nil, status.Error(codes.Internal, constant2.InternalServerErrorMessage) } - createUser := &model.User{ + createUser := &model2.User{ Email: request.Email, Password: hashPassword, Firstname: request.FirstName, Lastname: request.LastName, - Role: constant.USER, + Role: constant2.USER, } err = s.userRepo.Create(createUser) if err != nil { if errors.Is(err, gorm.ErrDuplicatedKey) { - return nil, status.Error(codes.AlreadyExists, constant.DuplicateEmailErrorMessage) + return nil, status.Error(codes.AlreadyExists, constant2.DuplicateEmailErrorMessage) } - return nil, status.Error(codes.Internal, constant.InternalServerErrorMessage) + return nil, status.Error(codes.Internal, constant2.InternalServerErrorMessage) } return &authProto.SignUpResponse{ @@ -76,20 +76,20 @@ func (s *serviceImpl) SignUp(_ context.Context, request *authProto.SignUpRequest } func (s *serviceImpl) SignIn(_ context.Context, request *authProto.SignInRequest) (*authProto.SignInResponse, error) { - user := &model.User{} + user := &model2.User{} err := s.userRepo.FindByEmail(request.Email, user) if err != nil { - return nil, status.Error(codes.PermissionDenied, constant.IncorrectEmailPasswordErrorMessage) + return nil, status.Error(codes.PermissionDenied, constant2.IncorrectEmailPasswordErrorMessage) } err = s.bcryptUtil.CompareHashedPassword(user.Password, request.Password) if err != nil { - return nil, status.Error(codes.PermissionDenied, constant.IncorrectEmailPasswordErrorMessage) + return nil, status.Error(codes.PermissionDenied, constant2.IncorrectEmailPasswordErrorMessage) } credential, err := s.createAuthSession(user.ID, user.Role) if err != nil { - return nil, status.Error(codes.Internal, constant.InternalServerErrorMessage) + return nil, status.Error(codes.Internal, constant2.InternalServerErrorMessage) } return &authProto.SignInResponse{Credential: credential}, nil @@ -98,24 +98,24 @@ func (s *serviceImpl) SignIn(_ context.Context, request *authProto.SignInRequest func (s *serviceImpl) SignOut(_ context.Context, request *authProto.SignOutRequest) (*authProto.SignOutResponse, error) { userCredential, err := s.tokenService.Validate(request.Token) if err != nil { - return nil, status.Error(codes.Internal, constant.InternalServerErrorMessage) + return nil, status.Error(codes.Internal, constant2.InternalServerErrorMessage) } err = s.tokenService.RemoveTokenCache(userCredential.RefreshToken) if err != nil { - return nil, status.Error(codes.Internal, constant.InternalServerErrorMessage) + return nil, status.Error(codes.Internal, constant2.InternalServerErrorMessage) } err = s.authRepo.Delete(userCredential.AuthSessionID) if err != nil { - return nil, status.Error(codes.Internal, constant.InternalServerErrorMessage) + return nil, status.Error(codes.Internal, constant2.InternalServerErrorMessage) } return &authProto.SignOutResponse{IsSuccess: true}, nil } -func (s *serviceImpl) createAuthSession(userId uuid.UUID, role constant.Role) (*authProto.Credential, error) { - createAuthSession := &model.AuthSession{ +func (s *serviceImpl) createAuthSession(userId uuid.UUID, role constant2.Role) (*authProto.Credential, error) { + createAuthSession := &model2.AuthSession{ UserID: userId, } err := s.authRepo.Create(createAuthSession) diff --git a/src/internal/service/auth/auth.service_test.go b/internal/service/auth/auth.service_test.go similarity index 85% rename from src/internal/service/auth/auth.service_test.go rename to internal/service/auth/auth.service_test.go index 5035a43..6077d79 100644 --- a/src/internal/service/auth/auth.service_test.go +++ b/internal/service/auth/auth.service_test.go @@ -2,19 +2,19 @@ package auth import ( "context" + constant2 "github.com/isd-sgcu/johnjud-auth/internal/constant" + tokenDto "github.com/isd-sgcu/johnjud-auth/internal/domain/dto/token" + model2 "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/mocks/repository/auth" + "github.com/isd-sgcu/johnjud-auth/mocks/repository/user" + "github.com/isd-sgcu/johnjud-auth/mocks/service/token" + "github.com/isd-sgcu/johnjud-auth/mocks/utils" "testing" "time" "github.com/go-faker/faker/v4" "github.com/golang/mock/gomock" "github.com/google/uuid" - "github.com/isd-sgcu/johnjud-auth/src/internal/constant" - tokenDto "github.com/isd-sgcu/johnjud-auth/src/internal/domain/dto/token" - "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" - mock_auth "github.com/isd-sgcu/johnjud-auth/src/mocks/repository/auth" - "github.com/isd-sgcu/johnjud-auth/src/mocks/repository/user" - "github.com/isd-sgcu/johnjud-auth/src/mocks/service/token" - "github.com/isd-sgcu/johnjud-auth/src/mocks/utils" authProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" "github.com/pkg/errors" "github.com/stretchr/testify/assert" @@ -60,15 +60,15 @@ func (t *AuthServiceTest) SetupTest() { func (t *AuthServiceTest) TestSignupSuccess() { hashedPassword := faker.Password() - newUser := &model.User{ + newUser := &model2.User{ Email: t.signupRequest.Email, Password: hashedPassword, Firstname: t.signupRequest.FirstName, Lastname: t.signupRequest.LastName, - Role: constant.USER, + Role: constant2.USER, } - createdUser := &model.User{ - Base: model.Base{ + createdUser := &model2.User{ + Base: model2.Base{ ID: uuid.New(), CreatedAt: time.Now(), UpdatedAt: time.Now(), @@ -107,7 +107,7 @@ func (t *AuthServiceTest) TestSignupSuccess() { func (t *AuthServiceTest) TestSignupHashPasswordFailed() { hashPasswordErr := errors.New("Hash password error") - expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) controller := gomock.NewController(t.T()) @@ -131,16 +131,16 @@ func (t *AuthServiceTest) TestSignupHashPasswordFailed() { func (t *AuthServiceTest) TestSignupCreateUserDuplicateConstraint() { hashedPassword := faker.Password() - newUser := &model.User{ + newUser := &model2.User{ Email: t.signupRequest.Email, Password: hashedPassword, Firstname: t.signupRequest.FirstName, Lastname: t.signupRequest.LastName, - Role: constant.USER, + Role: constant2.USER, } createUserErr := gorm.ErrDuplicatedKey - expected := status.Error(codes.AlreadyExists, constant.DuplicateEmailErrorMessage) + expected := status.Error(codes.AlreadyExists, constant2.DuplicateEmailErrorMessage) controller := gomock.NewController(t.T()) @@ -165,16 +165,16 @@ func (t *AuthServiceTest) TestSignupCreateUserDuplicateConstraint() { func (t *AuthServiceTest) TestSignupCreateUserInternalFailed() { hashedPassword := faker.Password() - newUser := &model.User{ + newUser := &model2.User{ Email: t.signupRequest.Email, Password: hashedPassword, Firstname: t.signupRequest.FirstName, Lastname: t.signupRequest.LastName, - Role: constant.USER, + Role: constant2.USER, } createUserErr := errors.New("Internal server error") - expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) controller := gomock.NewController(t.T()) @@ -198,17 +198,17 @@ func (t *AuthServiceTest) TestSignupCreateUserInternalFailed() { } func (t *AuthServiceTest) TestSignInSuccess() { - existUser := &model.User{ - Base: model.Base{ + existUser := &model2.User{ + Base: model2.Base{ ID: uuid.New(), }, Email: t.signInRequest.Email, Password: faker.Password(), Firstname: faker.FirstName(), Lastname: faker.LastName(), - Role: constant.USER, + Role: constant2.USER, } - newAuthSession := &model.AuthSession{ + newAuthSession := &model2.AuthSession{ UserID: existUser.ID, } credential := &authProto.Credential{ @@ -226,7 +226,7 @@ func (t *AuthServiceTest) TestSignInSuccess() { tokenService := token.TokenServiceMock{} bcryptUtil := utils.BcryptUtilMock{} - userRepo.On("FindByEmail", t.signInRequest.Email, &model.User{}).Return(existUser, nil) + userRepo.On("FindByEmail", t.signInRequest.Email, &model2.User{}).Return(existUser, nil) bcryptUtil.On("CompareHashedPassword", existUser.Password, t.signInRequest.Password).Return(nil) authRepo.EXPECT().Create(newAuthSession).Return(nil) tokenService.On("CreateCredential", existUser.ID.String(), existUser.Role, newAuthSession.ID.String()).Return(credential, nil) @@ -242,7 +242,7 @@ func (t *AuthServiceTest) TestSignInSuccess() { func (t *AuthServiceTest) TestSignInUserNotFound() { findUserErr := gorm.ErrRecordNotFound - expected := status.Error(codes.PermissionDenied, constant.IncorrectEmailPasswordErrorMessage) + expected := status.Error(codes.PermissionDenied, constant2.IncorrectEmailPasswordErrorMessage) controller := gomock.NewController(t.T()) @@ -251,7 +251,7 @@ func (t *AuthServiceTest) TestSignInUserNotFound() { tokenService := token.TokenServiceMock{} bcryptUtil := utils.BcryptUtilMock{} - userRepo.On("FindByEmail", t.signInRequest.Email, &model.User{}).Return(nil, findUserErr) + userRepo.On("FindByEmail", t.signInRequest.Email, &model2.User{}).Return(nil, findUserErr) authSvc := NewService(authRepo, &userRepo, &tokenService, &bcryptUtil) actual, err := authSvc.SignIn(t.ctx, t.signInRequest) @@ -264,19 +264,19 @@ func (t *AuthServiceTest) TestSignInUserNotFound() { } func (t *AuthServiceTest) TestSignInUnmatchedPassword() { - existUser := &model.User{ - Base: model.Base{ + existUser := &model2.User{ + Base: model2.Base{ ID: uuid.New(), }, Email: t.signInRequest.Email, Password: faker.Password(), Firstname: faker.FirstName(), Lastname: faker.LastName(), - Role: constant.USER, + Role: constant2.USER, } comparePwdErr := errors.New("Unmatched password") - expected := status.Error(codes.PermissionDenied, constant.IncorrectEmailPasswordErrorMessage) + expected := status.Error(codes.PermissionDenied, constant2.IncorrectEmailPasswordErrorMessage) controller := gomock.NewController(t.T()) @@ -285,7 +285,7 @@ func (t *AuthServiceTest) TestSignInUnmatchedPassword() { tokenService := token.TokenServiceMock{} bcryptUtil := utils.BcryptUtilMock{} - userRepo.On("FindByEmail", t.signInRequest.Email, &model.User{}).Return(existUser, nil) + userRepo.On("FindByEmail", t.signInRequest.Email, &model2.User{}).Return(existUser, nil) bcryptUtil.On("CompareHashedPassword", existUser.Password, t.signInRequest.Password).Return(comparePwdErr) authSvc := NewService(authRepo, &userRepo, &tokenService, &bcryptUtil) @@ -299,22 +299,22 @@ func (t *AuthServiceTest) TestSignInUnmatchedPassword() { } func (t *AuthServiceTest) TestSignInCreateAuthSessionFailed() { - existUser := &model.User{ - Base: model.Base{ + existUser := &model2.User{ + Base: model2.Base{ ID: uuid.New(), }, Email: t.signInRequest.Email, Password: faker.Password(), Firstname: faker.FirstName(), Lastname: faker.LastName(), - Role: constant.USER, + Role: constant2.USER, } - newAuthSession := &model.AuthSession{ + newAuthSession := &model2.AuthSession{ UserID: existUser.ID, } createAuthSessionErr := errors.New("Internal server error") - expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) controller := gomock.NewController(t.T()) @@ -323,7 +323,7 @@ func (t *AuthServiceTest) TestSignInCreateAuthSessionFailed() { tokenService := token.TokenServiceMock{} bcryptUtil := utils.BcryptUtilMock{} - userRepo.On("FindByEmail", t.signInRequest.Email, &model.User{}).Return(existUser, nil) + userRepo.On("FindByEmail", t.signInRequest.Email, &model2.User{}).Return(existUser, nil) bcryptUtil.On("CompareHashedPassword", existUser.Password, t.signInRequest.Password).Return(nil) authRepo.EXPECT().Create(newAuthSession).Return(createAuthSessionErr) @@ -338,22 +338,22 @@ func (t *AuthServiceTest) TestSignInCreateAuthSessionFailed() { } func (t *AuthServiceTest) TestSignInCreateCredentialFailed() { - existUser := &model.User{ - Base: model.Base{ + existUser := &model2.User{ + Base: model2.Base{ ID: uuid.New(), }, Email: t.signInRequest.Email, Password: faker.Password(), Firstname: faker.FirstName(), Lastname: faker.LastName(), - Role: constant.USER, + Role: constant2.USER, } - newAuthSession := &model.AuthSession{ + newAuthSession := &model2.AuthSession{ UserID: existUser.ID, } createCredentialErr := errors.New("Failed to create credential") - expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) controller := gomock.NewController(t.T()) @@ -362,7 +362,7 @@ func (t *AuthServiceTest) TestSignInCreateCredentialFailed() { tokenService := token.TokenServiceMock{} bcryptUtil := utils.BcryptUtilMock{} - userRepo.On("FindByEmail", t.signInRequest.Email, &model.User{}).Return(existUser, nil) + userRepo.On("FindByEmail", t.signInRequest.Email, &model2.User{}).Return(existUser, nil) bcryptUtil.On("CompareHashedPassword", existUser.Password, t.signInRequest.Password).Return(nil) authRepo.EXPECT().Create(newAuthSession).Return(nil) tokenService.On("CreateCredential", existUser.ID.String(), existUser.Role, newAuthSession.ID.String()).Return(nil, createCredentialErr) @@ -392,7 +392,7 @@ func (t *AuthServiceTest) TestRefreshTokenUpdateTokenFailed() {} func (t *AuthServiceTest) TestSignOutSuccess() { userCredential := &tokenDto.UserCredential{ UserID: faker.UUIDDigit(), - Role: constant.USER, + Role: constant2.USER, AuthSessionID: faker.UUIDDigit(), RefreshToken: faker.UUIDDigit(), } @@ -421,7 +421,7 @@ func (t *AuthServiceTest) TestSignOutSuccess() { func (t *AuthServiceTest) TestSignOutValidateFailed() { validateErr := errors.New("internal server error") - expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) controller := gomock.NewController(t.T()) authRepo := mock_auth.NewMockRepository(controller) @@ -444,13 +444,13 @@ func (t *AuthServiceTest) TestSignOutValidateFailed() { func (t *AuthServiceTest) TestSignOutRemoveTokenCacheFailed() { userCredential := &tokenDto.UserCredential{ UserID: faker.UUIDDigit(), - Role: constant.USER, + Role: constant2.USER, AuthSessionID: faker.UUIDDigit(), RefreshToken: faker.UUIDDigit(), } removeTokenErr := errors.New("internal server error") - expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) controller := gomock.NewController(t.T()) @@ -475,13 +475,13 @@ func (t *AuthServiceTest) TestSignOutRemoveTokenCacheFailed() { func (t *AuthServiceTest) TestSignOutDeleteAuthSessionFailed() { userCredential := &tokenDto.UserCredential{ UserID: faker.UUIDDigit(), - Role: constant.USER, + Role: constant2.USER, AuthSessionID: faker.UUIDDigit(), RefreshToken: faker.UUIDDigit(), } deleteAuthErr := errors.New("internal server error") - expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) controller := gomock.NewController(t.T()) diff --git a/src/internal/service/jwt/jwt.service.go b/internal/service/jwt/jwt.service.go similarity index 73% rename from src/internal/service/jwt/jwt.service.go rename to internal/service/jwt/jwt.service.go index 7731531..2f63a3f 100644 --- a/src/internal/service/jwt/jwt.service.go +++ b/internal/service/jwt/jwt.service.go @@ -3,22 +3,22 @@ package jwt import ( "fmt" _jwt "github.com/golang-jwt/jwt/v4" - "github.com/isd-sgcu/johnjud-auth/src/config" - "github.com/isd-sgcu/johnjud-auth/src/internal/constant" - tokenDto "github.com/isd-sgcu/johnjud-auth/src/internal/domain/dto/token" - "github.com/isd-sgcu/johnjud-auth/src/internal/utils" - "github.com/isd-sgcu/johnjud-auth/src/pkg/strategy" + "github.com/isd-sgcu/johnjud-auth/cfgldr" + "github.com/isd-sgcu/johnjud-auth/internal/constant" + tokenDto "github.com/isd-sgcu/johnjud-auth/internal/domain/dto/token" + "github.com/isd-sgcu/johnjud-auth/internal/utils" + "github.com/isd-sgcu/johnjud-auth/pkg/strategy" "github.com/pkg/errors" "time" ) type serviceImpl struct { - config config.Jwt + config cfgldr.Jwt strategy strategy.JwtStrategy jwtUtil utils.IJwtUtil } -func NewService(config config.Jwt, strategy strategy.JwtStrategy, jwtUtil utils.IJwtUtil) *serviceImpl { +func NewService(config cfgldr.Jwt, strategy strategy.JwtStrategy, jwtUtil utils.IJwtUtil) *serviceImpl { return &serviceImpl{config: config, strategy: strategy, jwtUtil: jwtUtil} } @@ -47,6 +47,6 @@ func (s *serviceImpl) VerifyAuth(token string) (*_jwt.Token, error) { return s.jwtUtil.ParseToken(token, s.strategy.AuthDecode) } -func (s *serviceImpl) GetConfig() *config.Jwt { +func (s *serviceImpl) GetConfig() *cfgldr.Jwt { return &s.config } diff --git a/src/internal/service/jwt/jwt.service_test.go b/internal/service/jwt/jwt.service_test.go similarity index 92% rename from src/internal/service/jwt/jwt.service_test.go rename to internal/service/jwt/jwt.service_test.go index a1b6230..ffddc76 100644 --- a/src/internal/service/jwt/jwt.service_test.go +++ b/internal/service/jwt/jwt.service_test.go @@ -4,11 +4,11 @@ import ( "fmt" "github.com/go-faker/faker/v4" "github.com/golang-jwt/jwt/v4" - "github.com/isd-sgcu/johnjud-auth/src/config" - "github.com/isd-sgcu/johnjud-auth/src/internal/constant" - tokenDto "github.com/isd-sgcu/johnjud-auth/src/internal/domain/dto/token" - "github.com/isd-sgcu/johnjud-auth/src/mocks/strategy" - "github.com/isd-sgcu/johnjud-auth/src/mocks/utils" + "github.com/isd-sgcu/johnjud-auth/cfgldr" + "github.com/isd-sgcu/johnjud-auth/internal/constant" + tokenDto "github.com/isd-sgcu/johnjud-auth/internal/domain/dto/token" + "github.com/isd-sgcu/johnjud-auth/mocks/strategy" + "github.com/isd-sgcu/johnjud-auth/mocks/utils" "github.com/pkg/errors" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -19,7 +19,7 @@ import ( type JwtServiceTest struct { suite.Suite - config config.Jwt + config cfgldr.Jwt userId string role constant.Role authSessionId string @@ -33,7 +33,7 @@ func TestJwtService(t *testing.T) { } func (t *JwtServiceTest) SetupTest() { - config := config.Jwt{ + config := cfgldr.Jwt{ Secret: "testSecret", ExpiresIn: 3600, Issuer: "testIssuer", diff --git a/src/internal/service/token/token.service.go b/internal/service/token/token.service.go similarity index 89% rename from src/internal/service/token/token.service.go rename to internal/service/token/token.service.go index 383f9aa..3874acf 100644 --- a/src/internal/service/token/token.service.go +++ b/internal/service/token/token.service.go @@ -2,11 +2,11 @@ package token import ( _jwt "github.com/golang-jwt/jwt/v4" - "github.com/isd-sgcu/johnjud-auth/src/internal/constant" - tokenDto "github.com/isd-sgcu/johnjud-auth/src/internal/domain/dto/token" - "github.com/isd-sgcu/johnjud-auth/src/internal/utils" - "github.com/isd-sgcu/johnjud-auth/src/pkg/repository/cache" - "github.com/isd-sgcu/johnjud-auth/src/pkg/service/jwt" + "github.com/isd-sgcu/johnjud-auth/internal/constant" + tokenDto "github.com/isd-sgcu/johnjud-auth/internal/domain/dto/token" + "github.com/isd-sgcu/johnjud-auth/internal/utils" + "github.com/isd-sgcu/johnjud-auth/pkg/repository/cache" + "github.com/isd-sgcu/johnjud-auth/pkg/service/jwt" authProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" "github.com/pkg/errors" "github.com/redis/go-redis/v9" @@ -82,7 +82,7 @@ func (s *serviceImpl) Validate(token string) (*tokenDto.UserCredential, error) { return nil, errors.New("expired token") } - accessTokenCache := &tokenDto.AccessTokenCache{} + accessTokenCache := &token.AccessTokenCache{} err = s.accessTokenCache.GetValue(payloads["auth_session_id"].(string), accessTokenCache) if err != nil { if err != redis.Nil { @@ -95,7 +95,7 @@ func (s *serviceImpl) Validate(token string) (*tokenDto.UserCredential, error) { return nil, errors.New("invalid token") } - userCredential := &tokenDto.UserCredential{ + userCredential := &token.UserCredential{ UserID: payloads["user_id"].(string), Role: accessTokenCache.Role, AuthSessionID: payloads["auth_session_id"].(string), diff --git a/src/internal/service/token/token.service_test.go b/internal/service/token/token.service_test.go similarity index 97% rename from src/internal/service/token/token.service_test.go rename to internal/service/token/token.service_test.go index ad1cd71..d16cae0 100644 --- a/src/internal/service/token/token.service_test.go +++ b/internal/service/token/token.service_test.go @@ -5,12 +5,12 @@ import ( _jwt "github.com/golang-jwt/jwt/v4" "github.com/golang/mock/gomock" "github.com/google/uuid" - "github.com/isd-sgcu/johnjud-auth/src/config" - "github.com/isd-sgcu/johnjud-auth/src/internal/constant" - tokenDto "github.com/isd-sgcu/johnjud-auth/src/internal/domain/dto/token" - mock_cache "github.com/isd-sgcu/johnjud-auth/src/mocks/repository/cache" - "github.com/isd-sgcu/johnjud-auth/src/mocks/service/jwt" - "github.com/isd-sgcu/johnjud-auth/src/mocks/utils" + "github.com/isd-sgcu/johnjud-auth/cfgldr" + "github.com/isd-sgcu/johnjud-auth/internal/constant" + tokenDto "github.com/isd-sgcu/johnjud-auth/internal/domain/dto/token" + "github.com/isd-sgcu/johnjud-auth/mocks/repository/cache" + "github.com/isd-sgcu/johnjud-auth/mocks/service/jwt" + "github.com/isd-sgcu/johnjud-auth/mocks/utils" authProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" "github.com/pkg/errors" "github.com/redis/go-redis/v9" @@ -27,7 +27,7 @@ type TokenServiceTest struct { authSessionId string accessToken string refreshToken *uuid.UUID - jwtConfig *config.Jwt + jwtConfig *cfgldr.Jwt validateToken string } @@ -41,7 +41,7 @@ func (t *TokenServiceTest) SetupTest() { authSessionId := faker.UUIDDigit() accessToken := "testAccessToken" refreshToken := uuid.New() - jwtConfig := &config.Jwt{ + jwtConfig := &cfgldr.Jwt{ Secret: "testSecret", ExpiresIn: 3600, RefreshTokenTTL: 604800, diff --git a/src/internal/service/user/user.service.go b/internal/service/user/user.service.go similarity index 89% rename from src/internal/service/user/user.service.go rename to internal/service/user/user.service.go index ab31db0..bc2e1eb 100644 --- a/src/internal/service/user/user.service.go +++ b/internal/service/user/user.service.go @@ -3,11 +3,11 @@ package user import ( "context" "errors" + "github.com/isd-sgcu/johnjud-auth/internal/constant" + "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/utils" + userRepo "github.com/isd-sgcu/johnjud-auth/pkg/repository/user" - "github.com/isd-sgcu/johnjud-auth/src/internal/constant" - "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" - "github.com/isd-sgcu/johnjud-auth/src/internal/utils" - userRepo "github.com/isd-sgcu/johnjud-auth/src/pkg/repository/user" proto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/user/v1" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" diff --git a/src/internal/service/user/user.service_test.go b/internal/service/user/user.service_test.go similarity index 88% rename from src/internal/service/user/user.service_test.go rename to internal/service/user/user.service_test.go index 5069207..4ba4cb4 100644 --- a/src/internal/service/user/user.service_test.go +++ b/internal/service/user/user.service_test.go @@ -3,15 +3,15 @@ package user import ( "context" "errors" + "github.com/isd-sgcu/johnjud-auth/cfgldr" + model2 "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + mock "github.com/isd-sgcu/johnjud-auth/mocks/repository/user" + "github.com/isd-sgcu/johnjud-auth/mocks/utils" "testing" "time" "github.com/go-faker/faker/v4" "github.com/google/uuid" - "github.com/isd-sgcu/johnjud-auth/src/config" - "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" - mock "github.com/isd-sgcu/johnjud-auth/src/mocks/repository/user" - "github.com/isd-sgcu/johnjud-auth/src/mocks/utils" proto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/user/v1" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" @@ -22,9 +22,9 @@ import ( type UserServiceTest struct { suite.Suite - config *config.App - User *model.User - UpdateUser *model.User + config *cfgldr.App + User *model2.User + UpdateUser *model2.User UserDto *proto.User UserDtoNoPassword *proto.User HashedPassword string @@ -36,8 +36,8 @@ func TestUserService(t *testing.T) { } func (t *UserServiceTest) SetupTest() { - t.User = &model.User{ - Base: model.Base{ + t.User = &model2.User{ + Base: model2.Base{ ID: uuid.New(), CreatedAt: time.Time{}, UpdatedAt: time.Time{}, @@ -77,7 +77,7 @@ func (t *UserServiceTest) SetupTest() { t.HashedPassword = faker.Password() - t.UpdateUser = &model.User{ + t.UpdateUser = &model2.User{ Email: t.User.Email, Password: t.HashedPassword, Firstname: t.User.Firstname, @@ -89,7 +89,7 @@ func (t *UserServiceTest) TestFindOneSuccess() { want := &proto.FindOneUserResponse{User: t.UserDtoNoPassword} repo := &mock.UserRepositoryMock{} - repo.On("FindById", t.User.ID.String(), &model.User{}).Return(t.User, nil) + repo.On("FindById", t.User.ID.String(), &model2.User{}).Return(t.User, nil) brcyptUtil := &utils.BcryptUtilMock{} srv := NewService(repo, brcyptUtil) @@ -101,7 +101,7 @@ func (t *UserServiceTest) TestFindOneSuccess() { func (t *UserServiceTest) TestFindOneInternalErr() { repo := &mock.UserRepositoryMock{} - repo.On("FindById", t.User.ID.String(), &model.User{}).Return(nil, errors.New("Not found user")) + repo.On("FindById", t.User.ID.String(), &model2.User{}).Return(nil, errors.New("Not found user")) brcyptUtil := &utils.BcryptUtilMock{} srv := NewService(repo, brcyptUtil) diff --git a/src/internal/strategy/jwt.strategy.go b/internal/strategy/jwt.strategy.go similarity index 100% rename from src/internal/strategy/jwt.strategy.go rename to internal/strategy/jwt.strategy.go diff --git a/src/internal/strategy/jwt.strategy_test.go b/internal/strategy/jwt.strategy_test.go similarity index 100% rename from src/internal/strategy/jwt.strategy_test.go rename to internal/strategy/jwt.strategy_test.go diff --git a/src/internal/utils/bcrypt.utils.go b/internal/utils/bcrypt.utils.go similarity index 100% rename from src/internal/utils/bcrypt.utils.go rename to internal/utils/bcrypt.utils.go diff --git a/src/internal/utils/jwt.utils.go b/internal/utils/jwt.utils.go similarity index 100% rename from src/internal/utils/jwt.utils.go rename to internal/utils/jwt.utils.go diff --git a/src/internal/utils/uuid.utils.go b/internal/utils/uuid.utils.go similarity index 100% rename from src/internal/utils/uuid.utils.go rename to internal/utils/uuid.utils.go diff --git a/src/mocks/repository/auth/auth.mock.go b/mocks/repository/auth/auth.mock.go similarity index 93% rename from src/mocks/repository/auth/auth.mock.go rename to mocks/repository/auth/auth.mock.go index e80ea9a..f136644 100644 --- a/src/mocks/repository/auth/auth.mock.go +++ b/mocks/repository/auth/auth.mock.go @@ -5,10 +5,10 @@ package mock_auth import ( - reflect "reflect" + "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "reflect" - gomock "github.com/golang/mock/gomock" - model "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" + "github.com/golang/mock/gomock" ) // MockRepository is a mock of Repository interface. diff --git a/src/mocks/repository/cache/cache.mock.go b/mocks/repository/cache/cache.mock.go similarity index 97% rename from src/mocks/repository/cache/cache.mock.go rename to mocks/repository/cache/cache.mock.go index 429c53a..2d20fdc 100644 --- a/src/mocks/repository/cache/cache.mock.go +++ b/mocks/repository/cache/cache.mock.go @@ -5,9 +5,9 @@ package mock_cache import ( - reflect "reflect" + "reflect" - gomock "github.com/golang/mock/gomock" + "github.com/golang/mock/gomock" ) // MockRepository is a mock of Repository interface. diff --git a/src/mocks/repository/user/user.mock.go b/mocks/repository/user/user.mock.go similarity index 95% rename from src/mocks/repository/user/user.mock.go rename to mocks/repository/user/user.mock.go index 031ddf2..77b06ce 100644 --- a/src/mocks/repository/user/user.mock.go +++ b/mocks/repository/user/user.mock.go @@ -1,7 +1,7 @@ package user import ( - "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/domain/model" "github.com/stretchr/testify/mock" ) diff --git a/src/mocks/service/jwt/jwt.mock.go b/mocks/service/jwt/jwt.mock.go similarity index 75% rename from src/mocks/service/jwt/jwt.mock.go rename to mocks/service/jwt/jwt.mock.go index 437dd8b..b4fb76f 100644 --- a/src/mocks/service/jwt/jwt.mock.go +++ b/mocks/service/jwt/jwt.mock.go @@ -2,8 +2,8 @@ package jwt import ( "github.com/golang-jwt/jwt/v4" - "github.com/isd-sgcu/johnjud-auth/src/config" - "github.com/isd-sgcu/johnjud-auth/src/internal/constant" + "github.com/isd-sgcu/johnjud-auth/cfgldr" + "github.com/isd-sgcu/johnjud-auth/internal/constant" "github.com/stretchr/testify/mock" ) @@ -29,7 +29,7 @@ func (m *JwtServiceMock) VerifyAuth(token string) (*jwt.Token, error) { return nil, args.Error(1) } -func (m *JwtServiceMock) GetConfig() *config.Jwt { +func (m *JwtServiceMock) GetConfig() *cfgldr.Jwt { args := m.Called() - return args.Get(0).(*config.Jwt) + return args.Get(0).(*cfgldr.Jwt) } diff --git a/src/mocks/service/token/token.mock.go b/mocks/service/token/token.mock.go similarity index 82% rename from src/mocks/service/token/token.mock.go rename to mocks/service/token/token.mock.go index 619e829..5c8a5df 100644 --- a/src/mocks/service/token/token.mock.go +++ b/mocks/service/token/token.mock.go @@ -1,8 +1,8 @@ package token import ( - "github.com/isd-sgcu/johnjud-auth/src/internal/constant" - tokenDto "github.com/isd-sgcu/johnjud-auth/src/internal/domain/dto/token" + "github.com/isd-sgcu/johnjud-auth/internal/constant" + tokenDto "github.com/isd-sgcu/johnjud-auth/internal/domain/dto/token" authProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" "github.com/stretchr/testify/mock" ) @@ -23,7 +23,7 @@ func (m *TokenServiceMock) CreateCredential(userId string, role constant.Role, a func (m *TokenServiceMock) Validate(token string) (*tokenDto.UserCredential, error) { args := m.Called(token) if args.Get(0) != nil { - return args.Get(0).(*tokenDto.UserCredential), nil + return args.Get(0).(*token.UserCredential), nil } return nil, args.Error(1) diff --git a/src/mocks/strategy/strategy.mock.go b/mocks/strategy/strategy.mock.go similarity index 100% rename from src/mocks/strategy/strategy.mock.go rename to mocks/strategy/strategy.mock.go diff --git a/src/mocks/utils/bcrypt.mock.go b/mocks/utils/bcrypt.mock.go similarity index 100% rename from src/mocks/utils/bcrypt.mock.go rename to mocks/utils/bcrypt.mock.go diff --git a/src/mocks/utils/jwt.mock.go b/mocks/utils/jwt.mock.go similarity index 100% rename from src/mocks/utils/jwt.mock.go rename to mocks/utils/jwt.mock.go diff --git a/src/mocks/utils/uuid.mock.go b/mocks/utils/uuid.mock.go similarity index 100% rename from src/mocks/utils/uuid.mock.go rename to mocks/utils/uuid.mock.go diff --git a/src/pkg/repository/auth/auth.repository.go b/pkg/repository/auth/auth.repository.go similarity index 62% rename from src/pkg/repository/auth/auth.repository.go rename to pkg/repository/auth/auth.repository.go index 5960187..82b1311 100644 --- a/src/pkg/repository/auth/auth.repository.go +++ b/pkg/repository/auth/auth.repository.go @@ -1,8 +1,8 @@ package auth import ( - "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" - "github.com/isd-sgcu/johnjud-auth/src/internal/repository/auth" + "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/repository/auth" "gorm.io/gorm" ) diff --git a/src/pkg/repository/cache/cache.repository.go b/pkg/repository/cache/cache.repository.go similarity index 82% rename from src/pkg/repository/cache/cache.repository.go rename to pkg/repository/cache/cache.repository.go index d5f4cd5..f118734 100644 --- a/src/pkg/repository/cache/cache.repository.go +++ b/pkg/repository/cache/cache.repository.go @@ -1,7 +1,7 @@ package cache import ( - "github.com/isd-sgcu/johnjud-auth/src/internal/repository/cache" + "github.com/isd-sgcu/johnjud-auth/internal/repository/cache" "github.com/redis/go-redis/v9" ) diff --git a/src/pkg/repository/user/user.repository.go b/pkg/repository/user/user.repository.go similarity index 75% rename from src/pkg/repository/user/user.repository.go rename to pkg/repository/user/user.repository.go index 583a5b3..00bc0fa 100644 --- a/src/pkg/repository/user/user.repository.go +++ b/pkg/repository/user/user.repository.go @@ -1,8 +1,8 @@ package user import ( - "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" - "github.com/isd-sgcu/johnjud-auth/src/internal/repository/user" + "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/repository/user" "gorm.io/gorm" ) diff --git a/src/pkg/service/auth/auth.service.go b/pkg/service/auth/auth.service.go similarity index 51% rename from src/pkg/service/auth/auth.service.go rename to pkg/service/auth/auth.service.go index 712113e..254e004 100644 --- a/src/pkg/service/auth/auth.service.go +++ b/pkg/service/auth/auth.service.go @@ -1,11 +1,11 @@ package auth import ( - "github.com/isd-sgcu/johnjud-auth/src/internal/service/auth" - "github.com/isd-sgcu/johnjud-auth/src/internal/utils" - authRp "github.com/isd-sgcu/johnjud-auth/src/pkg/repository/auth" - userRp "github.com/isd-sgcu/johnjud-auth/src/pkg/repository/user" - tokenSvc "github.com/isd-sgcu/johnjud-auth/src/pkg/service/token" + "github.com/isd-sgcu/johnjud-auth/internal/service/auth" + "github.com/isd-sgcu/johnjud-auth/internal/utils" + authRp "github.com/isd-sgcu/johnjud-auth/pkg/repository/auth" + userRp "github.com/isd-sgcu/johnjud-auth/pkg/repository/user" + tokenSvc "github.com/isd-sgcu/johnjud-auth/pkg/service/token" authProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" ) diff --git a/pkg/service/jwt/jwt.service.go b/pkg/service/jwt/jwt.service.go new file mode 100644 index 0000000..0a90a5f --- /dev/null +++ b/pkg/service/jwt/jwt.service.go @@ -0,0 +1,20 @@ +package jwt + +import ( + _jwt "github.com/golang-jwt/jwt/v4" + "github.com/isd-sgcu/johnjud-auth/cfgldr" + "github.com/isd-sgcu/johnjud-auth/internal/constant" + "github.com/isd-sgcu/johnjud-auth/internal/service/jwt" + "github.com/isd-sgcu/johnjud-auth/internal/utils" + jwtStg "github.com/isd-sgcu/johnjud-auth/pkg/strategy" +) + +type Service interface { + SignAuth(userId string, role constant.Role, authSessionId string) (string, error) + VerifyAuth(token string) (*_jwt.Token, error) + GetConfig() *cfgldr.Jwt +} + +func NewService(config cfgldr.Jwt, strategy jwtStg.JwtStrategy, jwtUtil utils.IJwtUtil) Service { + return jwt.NewService(config, strategy, jwtUtil) +} diff --git a/src/pkg/service/token/token.service.go b/pkg/service/token/token.service.go similarity index 61% rename from src/pkg/service/token/token.service.go rename to pkg/service/token/token.service.go index b41376b..0fe0fc3 100644 --- a/src/pkg/service/token/token.service.go +++ b/pkg/service/token/token.service.go @@ -1,12 +1,12 @@ package token import ( - "github.com/isd-sgcu/johnjud-auth/src/internal/constant" - tokenDto "github.com/isd-sgcu/johnjud-auth/src/internal/domain/dto/token" - "github.com/isd-sgcu/johnjud-auth/src/internal/service/token" - "github.com/isd-sgcu/johnjud-auth/src/internal/utils" - "github.com/isd-sgcu/johnjud-auth/src/pkg/repository/cache" - jwtSvc "github.com/isd-sgcu/johnjud-auth/src/pkg/service/jwt" + "github.com/isd-sgcu/johnjud-auth/internal/constant" + tokenDto "github.com/isd-sgcu/johnjud-auth/internal/domain/dto/token" + "github.com/isd-sgcu/johnjud-auth/internal/service/token" + "github.com/isd-sgcu/johnjud-auth/internal/utils" + "github.com/isd-sgcu/johnjud-auth/pkg/repository/cache" + jwtSvc "github.com/isd-sgcu/johnjud-auth/pkg/service/jwt" authProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" ) diff --git a/src/pkg/service/user/user.service.go b/pkg/service/user/user.service.go similarity index 58% rename from src/pkg/service/user/user.service.go rename to pkg/service/user/user.service.go index fba3fdc..2ad1658 100644 --- a/src/pkg/service/user/user.service.go +++ b/pkg/service/user/user.service.go @@ -1,9 +1,9 @@ package user import ( - "github.com/isd-sgcu/johnjud-auth/src/internal/service/user" - "github.com/isd-sgcu/johnjud-auth/src/internal/utils" - userRepo "github.com/isd-sgcu/johnjud-auth/src/pkg/repository/user" + "github.com/isd-sgcu/johnjud-auth/internal/service/user" + "github.com/isd-sgcu/johnjud-auth/internal/utils" + userRepo "github.com/isd-sgcu/johnjud-auth/pkg/repository/user" userProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/user/v1" ) diff --git a/src/pkg/strategy/jwt.strategy.go b/pkg/strategy/jwt.strategy.go similarity index 80% rename from src/pkg/strategy/jwt.strategy.go rename to pkg/strategy/jwt.strategy.go index 68109c5..c1be925 100644 --- a/src/pkg/strategy/jwt.strategy.go +++ b/pkg/strategy/jwt.strategy.go @@ -2,7 +2,7 @@ package strategy import ( "github.com/golang-jwt/jwt/v4" - "github.com/isd-sgcu/johnjud-auth/src/internal/strategy" + "github.com/isd-sgcu/johnjud-auth/internal/strategy" ) type JwtStrategy interface { diff --git a/src/pkg/service/jwt/jwt.service.go b/src/pkg/service/jwt/jwt.service.go deleted file mode 100644 index 2f3ff25..0000000 --- a/src/pkg/service/jwt/jwt.service.go +++ /dev/null @@ -1,20 +0,0 @@ -package jwt - -import ( - _jwt "github.com/golang-jwt/jwt/v4" - "github.com/isd-sgcu/johnjud-auth/src/config" - "github.com/isd-sgcu/johnjud-auth/src/internal/constant" - "github.com/isd-sgcu/johnjud-auth/src/internal/service/jwt" - "github.com/isd-sgcu/johnjud-auth/src/internal/utils" - jwtStg "github.com/isd-sgcu/johnjud-auth/src/pkg/strategy" -) - -type Service interface { - SignAuth(userId string, role constant.Role, authSessionId string) (string, error) - VerifyAuth(token string) (*_jwt.Token, error) - GetConfig() *config.Jwt -} - -func NewService(config config.Jwt, strategy jwtStg.JwtStrategy, jwtUtil utils.IJwtUtil) Service { - return jwt.NewService(config, strategy, jwtUtil) -} From fb925604ed044e4dd844ad0c1d8a8bcb0ee29dd0 Mon Sep 17 00:00:00 2001 From: NitiwatOwen Date: Mon, 1 Jan 2024 19:27:18 +0700 Subject: [PATCH 2/7] fix: package --- Makefile | 8 ++++---- database/postgresql.connection.go | 2 +- internal/service/token/token.service.go | 4 ++-- mocks/repository/auth/auth.mock.go | 8 ++++---- mocks/repository/cache/cache.mock.go | 6 +++--- mocks/service/token/token.mock.go | 2 +- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 4bd008c..4f6ced1 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,13 @@ server: - go run ./src/. + go run ./cmd/. mock-gen: - mockgen -source ./src/pkg/repository/cache/cache.repository.go -destination ./src/mocks/repository/cache/cache.mock.go - mockgen -source ./src/pkg/repository/auth/auth.repository.go -destination ./src/mocks/repository/auth/auth.mock.go + mockgen -source ./pkg/repository/cache/cache.repository.go -destination ./mocks/repository/cache/cache.mock.go + mockgen -source ./pkg/repository/auth/auth.repository.go -destination ./mocks/repository/auth/auth.mock.go test: go vet ./... - go test -v -coverpkg ./src/internal/... -coverprofile coverage.out -covermode count ./src/internal/... + go test -v -coverpkg ./internal/... -coverprofile coverage.out -covermode count ./internal/... go tool cover -func=coverage.out go tool cover -html=coverage.out -o coverage.html diff --git a/database/postgresql.connection.go b/database/postgresql.connection.go index 3bcd4fe..60b6a5b 100644 --- a/database/postgresql.connection.go +++ b/database/postgresql.connection.go @@ -3,7 +3,7 @@ package database import ( "fmt" "github.com/isd-sgcu/johnjud-auth/cfgldr" - "github.com/isd-sgcu/johnjud-auth/src/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/domain/model" "gorm.io/driver/postgres" "gorm.io/gorm" gormLogger "gorm.io/gorm/logger" diff --git a/internal/service/token/token.service.go b/internal/service/token/token.service.go index 3874acf..2accd4c 100644 --- a/internal/service/token/token.service.go +++ b/internal/service/token/token.service.go @@ -82,7 +82,7 @@ func (s *serviceImpl) Validate(token string) (*tokenDto.UserCredential, error) { return nil, errors.New("expired token") } - accessTokenCache := &token.AccessTokenCache{} + accessTokenCache := &tokenDto.AccessTokenCache{} err = s.accessTokenCache.GetValue(payloads["auth_session_id"].(string), accessTokenCache) if err != nil { if err != redis.Nil { @@ -95,7 +95,7 @@ func (s *serviceImpl) Validate(token string) (*tokenDto.UserCredential, error) { return nil, errors.New("invalid token") } - userCredential := &token.UserCredential{ + userCredential := &tokenDto.UserCredential{ UserID: payloads["user_id"].(string), Role: accessTokenCache.Role, AuthSessionID: payloads["auth_session_id"].(string), diff --git a/mocks/repository/auth/auth.mock.go b/mocks/repository/auth/auth.mock.go index f136644..8b0970d 100644 --- a/mocks/repository/auth/auth.mock.go +++ b/mocks/repository/auth/auth.mock.go @@ -1,14 +1,14 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: ./src/pkg/repository/auth/auth.repository.go +// Source: ./pkg/repository/auth/auth.repository.go // Package mock_auth is a generated GoMock package. package mock_auth import ( - "github.com/isd-sgcu/johnjud-auth/internal/domain/model" - "reflect" + reflect "reflect" - "github.com/golang/mock/gomock" + gomock "github.com/golang/mock/gomock" + model "github.com/isd-sgcu/johnjud-auth/internal/domain/model" ) // MockRepository is a mock of Repository interface. diff --git a/mocks/repository/cache/cache.mock.go b/mocks/repository/cache/cache.mock.go index 2d20fdc..7102795 100644 --- a/mocks/repository/cache/cache.mock.go +++ b/mocks/repository/cache/cache.mock.go @@ -1,13 +1,13 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: ./src/pkg/repository/cache/cache.repository.go +// Source: ./pkg/repository/cache/cache.repository.go // Package mock_cache is a generated GoMock package. package mock_cache import ( - "reflect" + reflect "reflect" - "github.com/golang/mock/gomock" + gomock "github.com/golang/mock/gomock" ) // MockRepository is a mock of Repository interface. diff --git a/mocks/service/token/token.mock.go b/mocks/service/token/token.mock.go index 5c8a5df..0be8264 100644 --- a/mocks/service/token/token.mock.go +++ b/mocks/service/token/token.mock.go @@ -23,7 +23,7 @@ func (m *TokenServiceMock) CreateCredential(userId string, role constant.Role, a func (m *TokenServiceMock) Validate(token string) (*tokenDto.UserCredential, error) { args := m.Called(token) if args.Get(0) != nil { - return args.Get(0).(*token.UserCredential), nil + return args.Get(0).(*tokenDto.UserCredential), nil } return nil, args.Error(1) From 5cf4446d6e8056702e0bda2af93cdab81bc83a4a Mon Sep 17 00:00:00 2001 From: NitiwatOwen Date: Mon, 1 Jan 2024 19:30:49 +0700 Subject: [PATCH 3/7] fix: ci --- .github/workflows/build-deploy.yml | 2 +- .github/workflows/run-unit-test.yml | 2 +- Dockerfile | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-deploy.yml b/.github/workflows/build-deploy.yml index e66b61e..071f6ea 100644 --- a/.github/workflows/build-deploy.yml +++ b/.github/workflows/build-deploy.yml @@ -32,7 +32,7 @@ jobs: - name: Test run: | - go test -v -coverpkg ./src/internal/... -coverprofile coverage.out -covermode count ./src/internal/... + go test -v -coverpkg ./internal/... -coverprofile coverage.out -covermode count ./internal/... go tool cover -func="./coverage.out" build: diff --git a/.github/workflows/run-unit-test.yml b/.github/workflows/run-unit-test.yml index 4953875..e64fa2e 100644 --- a/.github/workflows/run-unit-test.yml +++ b/.github/workflows/run-unit-test.yml @@ -32,5 +32,5 @@ jobs: - name: Test run: | - go test -v -coverpkg ./src/internal/... -coverprofile coverage.out -covermode count ./src/internal/... + go test -v -coverpkg ./internal/... -coverprofile coverage.out -covermode count ./internal/... go tool cover -func="./coverage.out" diff --git a/Dockerfile b/Dockerfile index 4fc6518..707c676 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,10 +11,10 @@ COPY go.mod go.sum ./ RUN go mod download # Copy the source code -COPY ./src ./src +COPY . . # Build the application -RUN go build -o server ./src/. +RUN go build -o server ./cmd/main.go # Copy config files COPY ./config ./config From 36eaeca2624b926ba069fc0aaee3d2c3b6826394 Mon Sep 17 00:00:00 2001 From: NitiwatOwen Date: Mon, 1 Jan 2024 19:42:04 +0700 Subject: [PATCH 4/7] fix: remove loop dependencies --- cmd/main.go | 14 +++++++------- internal/repository/auth/auth.repository.go | 3 ++- internal/repository/cache/cache.repository.go | 3 ++- internal/repository/user/user.repository.go | 3 ++- internal/service/auth/auth.service.go | 2 +- internal/service/jwt/jwt.service.go | 3 ++- internal/service/token/token.service.go | 3 ++- internal/strategy/jwt.strategy.go | 3 ++- internal/utils/bcrypt.utils.go | 2 +- internal/utils/jwt.utils.go | 2 +- internal/utils/uuid.utils.go | 2 +- pkg/repository/auth/auth.repository.go | 6 ------ pkg/repository/cache/cache.repository.go | 9 --------- pkg/repository/user/user.repository.go | 6 ------ pkg/service/auth/auth.service.go | 14 -------------- pkg/service/jwt/jwt.service.go | 7 ------- pkg/service/token/token.service.go | 8 -------- pkg/strategy/jwt.strategy.go | 5 ----- 18 files changed, 23 insertions(+), 72 deletions(-) delete mode 100644 pkg/service/auth/auth.service.go diff --git a/cmd/main.go b/cmd/main.go index b003624..2167093 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -5,13 +5,13 @@ import ( "fmt" "github.com/isd-sgcu/johnjud-auth/cfgldr" database2 "github.com/isd-sgcu/johnjud-auth/database" - authRp "github.com/isd-sgcu/johnjud-auth/pkg/repository/auth" - cacheRp "github.com/isd-sgcu/johnjud-auth/pkg/repository/cache" - userRp "github.com/isd-sgcu/johnjud-auth/pkg/repository/user" - authSvc "github.com/isd-sgcu/johnjud-auth/pkg/service/auth" - jwtSvc "github.com/isd-sgcu/johnjud-auth/pkg/service/jwt" - tokenSvc "github.com/isd-sgcu/johnjud-auth/pkg/service/token" - userSvc "github.com/isd-sgcu/johnjud-auth/pkg/service/user" + authRp "github.com/isd-sgcu/johnjud-auth/internal/repository/auth" + cacheRp "github.com/isd-sgcu/johnjud-auth/internal/repository/cache" + userRp "github.com/isd-sgcu/johnjud-auth/internal/repository/user" + authSvc "github.com/isd-sgcu/johnjud-auth/internal/service/auth" + jwtSvc "github.com/isd-sgcu/johnjud-auth/internal/service/jwt" + tokenSvc "github.com/isd-sgcu/johnjud-auth/internal/service/token" + userSvc "github.com/isd-sgcu/johnjud-auth/internal/service/user" "net" "os" "os/signal" diff --git a/internal/repository/auth/auth.repository.go b/internal/repository/auth/auth.repository.go index 1e59b1b..18d63d8 100644 --- a/internal/repository/auth/auth.repository.go +++ b/internal/repository/auth/auth.repository.go @@ -2,6 +2,7 @@ package auth import ( "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/pkg/repository/auth" "gorm.io/gorm" ) @@ -9,7 +10,7 @@ type repositoryImpl struct { Db *gorm.DB } -func NewRepository(db *gorm.DB) *repositoryImpl { +func NewRepository(db *gorm.DB) auth.Repository { return &repositoryImpl{Db: db} } diff --git a/internal/repository/cache/cache.repository.go b/internal/repository/cache/cache.repository.go index d564876..c6e2cd5 100644 --- a/internal/repository/cache/cache.repository.go +++ b/internal/repository/cache/cache.repository.go @@ -3,6 +3,7 @@ package cache import ( "context" "encoding/json" + "github.com/isd-sgcu/johnjud-auth/pkg/repository/cache" "github.com/redis/go-redis/v9" "time" ) @@ -11,7 +12,7 @@ type repositoryImpl struct { client *redis.Client } -func NewRepository(client *redis.Client) *repositoryImpl { +func NewRepository(client *redis.Client) cache.Repository { return &repositoryImpl{client: client} } diff --git a/internal/repository/user/user.repository.go b/internal/repository/user/user.repository.go index f17345d..bb84065 100644 --- a/internal/repository/user/user.repository.go +++ b/internal/repository/user/user.repository.go @@ -2,6 +2,7 @@ package user import ( "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/pkg/repository/user" "gorm.io/gorm" ) @@ -9,7 +10,7 @@ type repositoryImpl struct { Db *gorm.DB } -func NewRepository(db *gorm.DB) *repositoryImpl { +func NewRepository(db *gorm.DB) user.Repository { return &repositoryImpl{Db: db} } diff --git a/internal/service/auth/auth.service.go b/internal/service/auth/auth.service.go index a6684d1..8bb6435 100644 --- a/internal/service/auth/auth.service.go +++ b/internal/service/auth/auth.service.go @@ -25,7 +25,7 @@ type serviceImpl struct { bcryptUtil utils.IBcryptUtil } -func NewService(authRepo auth.Repository, userRepo user.Repository, tokenService token.Service, bcryptUtil utils.IBcryptUtil) *serviceImpl { +func NewService(authRepo auth.Repository, userRepo user.Repository, tokenService token.Service, bcryptUtil utils.IBcryptUtil) authProto.AuthServiceServer { return &serviceImpl{ authRepo: authRepo, userRepo: userRepo, diff --git a/internal/service/jwt/jwt.service.go b/internal/service/jwt/jwt.service.go index 2f63a3f..1b691a5 100644 --- a/internal/service/jwt/jwt.service.go +++ b/internal/service/jwt/jwt.service.go @@ -7,6 +7,7 @@ import ( "github.com/isd-sgcu/johnjud-auth/internal/constant" tokenDto "github.com/isd-sgcu/johnjud-auth/internal/domain/dto/token" "github.com/isd-sgcu/johnjud-auth/internal/utils" + "github.com/isd-sgcu/johnjud-auth/pkg/service/jwt" "github.com/isd-sgcu/johnjud-auth/pkg/strategy" "github.com/pkg/errors" "time" @@ -18,7 +19,7 @@ type serviceImpl struct { jwtUtil utils.IJwtUtil } -func NewService(config cfgldr.Jwt, strategy strategy.JwtStrategy, jwtUtil utils.IJwtUtil) *serviceImpl { +func NewService(config cfgldr.Jwt, strategy strategy.JwtStrategy, jwtUtil utils.IJwtUtil) jwt.Service { return &serviceImpl{config: config, strategy: strategy, jwtUtil: jwtUtil} } diff --git a/internal/service/token/token.service.go b/internal/service/token/token.service.go index 2accd4c..bd6a016 100644 --- a/internal/service/token/token.service.go +++ b/internal/service/token/token.service.go @@ -7,6 +7,7 @@ import ( "github.com/isd-sgcu/johnjud-auth/internal/utils" "github.com/isd-sgcu/johnjud-auth/pkg/repository/cache" "github.com/isd-sgcu/johnjud-auth/pkg/service/jwt" + "github.com/isd-sgcu/johnjud-auth/pkg/service/token" authProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" "github.com/pkg/errors" "github.com/redis/go-redis/v9" @@ -20,7 +21,7 @@ type serviceImpl struct { uuidUtil utils.IUuidUtil } -func NewService(jwtService jwt.Service, accessTokenCache cache.Repository, refreshTokenCache cache.Repository, uuidUtil utils.IUuidUtil) *serviceImpl { +func NewService(jwtService jwt.Service, accessTokenCache cache.Repository, refreshTokenCache cache.Repository, uuidUtil utils.IUuidUtil) token.Service { return &serviceImpl{ jwtService: jwtService, accessTokenCache: accessTokenCache, diff --git a/internal/strategy/jwt.strategy.go b/internal/strategy/jwt.strategy.go index a7454da..82e341e 100644 --- a/internal/strategy/jwt.strategy.go +++ b/internal/strategy/jwt.strategy.go @@ -3,6 +3,7 @@ package strategy import ( "fmt" "github.com/golang-jwt/jwt/v4" + "github.com/isd-sgcu/johnjud-auth/pkg/strategy" "github.com/pkg/errors" ) @@ -10,7 +11,7 @@ type jwtStrategyImpl struct { secret string } -func NewJwtStrategy(secret string) *jwtStrategyImpl { +func NewJwtStrategy(secret string) strategy.JwtStrategy { return &jwtStrategyImpl{secret: secret} } diff --git a/internal/utils/bcrypt.utils.go b/internal/utils/bcrypt.utils.go index 16e74a1..6d74c78 100644 --- a/internal/utils/bcrypt.utils.go +++ b/internal/utils/bcrypt.utils.go @@ -9,7 +9,7 @@ type IBcryptUtil interface { type bcryptUtil struct{} -func NewBcryptUtil() *bcryptUtil { +func NewBcryptUtil() IBcryptUtil { return &bcryptUtil{} } diff --git a/internal/utils/jwt.utils.go b/internal/utils/jwt.utils.go index 3a4694e..0a8c786 100644 --- a/internal/utils/jwt.utils.go +++ b/internal/utils/jwt.utils.go @@ -14,7 +14,7 @@ type IJwtUtil interface { type jwtUtilImpl struct{} -func NewJwtUtil() *jwtUtilImpl { +func NewJwtUtil() IJwtUtil { return &jwtUtilImpl{} } diff --git a/internal/utils/uuid.utils.go b/internal/utils/uuid.utils.go index 11d8004..2480403 100644 --- a/internal/utils/uuid.utils.go +++ b/internal/utils/uuid.utils.go @@ -8,7 +8,7 @@ type IUuidUtil interface { type uuidUtil struct{} -func NewUuidUtil() *uuidUtil { +func NewUuidUtil() IUuidUtil { return &uuidUtil{} } diff --git a/pkg/repository/auth/auth.repository.go b/pkg/repository/auth/auth.repository.go index 82b1311..67f89be 100644 --- a/pkg/repository/auth/auth.repository.go +++ b/pkg/repository/auth/auth.repository.go @@ -2,15 +2,9 @@ package auth import ( "github.com/isd-sgcu/johnjud-auth/internal/domain/model" - "github.com/isd-sgcu/johnjud-auth/internal/repository/auth" - "gorm.io/gorm" ) type Repository interface { Create(auth *model.AuthSession) error Delete(id string) error } - -func NewRepository(db *gorm.DB) Repository { - return auth.NewRepository(db) -} diff --git a/pkg/repository/cache/cache.repository.go b/pkg/repository/cache/cache.repository.go index f118734..a786144 100644 --- a/pkg/repository/cache/cache.repository.go +++ b/pkg/repository/cache/cache.repository.go @@ -1,16 +1,7 @@ package cache -import ( - "github.com/isd-sgcu/johnjud-auth/internal/repository/cache" - "github.com/redis/go-redis/v9" -) - type Repository interface { SetValue(key string, value interface{}, ttl int) error GetValue(key string, value interface{}) error DeleteValue(key string) error } - -func NewRepository(client *redis.Client) Repository { - return cache.NewRepository(client) -} diff --git a/pkg/repository/user/user.repository.go b/pkg/repository/user/user.repository.go index 00bc0fa..16db2cb 100644 --- a/pkg/repository/user/user.repository.go +++ b/pkg/repository/user/user.repository.go @@ -2,8 +2,6 @@ package user import ( "github.com/isd-sgcu/johnjud-auth/internal/domain/model" - "github.com/isd-sgcu/johnjud-auth/internal/repository/user" - "gorm.io/gorm" ) type Repository interface { @@ -14,7 +12,3 @@ type Repository interface { Update(id string, user *model.User) error Delete(id string) error } - -func NewRepository(db *gorm.DB) Repository { - return user.NewRepository(db) -} diff --git a/pkg/service/auth/auth.service.go b/pkg/service/auth/auth.service.go deleted file mode 100644 index 254e004..0000000 --- a/pkg/service/auth/auth.service.go +++ /dev/null @@ -1,14 +0,0 @@ -package auth - -import ( - "github.com/isd-sgcu/johnjud-auth/internal/service/auth" - "github.com/isd-sgcu/johnjud-auth/internal/utils" - authRp "github.com/isd-sgcu/johnjud-auth/pkg/repository/auth" - userRp "github.com/isd-sgcu/johnjud-auth/pkg/repository/user" - tokenSvc "github.com/isd-sgcu/johnjud-auth/pkg/service/token" - authProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" -) - -func NewService(authRepo authRp.Repository, userRepo userRp.Repository, tokenService tokenSvc.Service, bcryptUtil utils.IBcryptUtil) authProto.AuthServiceServer { - return auth.NewService(authRepo, userRepo, tokenService, bcryptUtil) -} diff --git a/pkg/service/jwt/jwt.service.go b/pkg/service/jwt/jwt.service.go index 0a90a5f..e69b109 100644 --- a/pkg/service/jwt/jwt.service.go +++ b/pkg/service/jwt/jwt.service.go @@ -4,9 +4,6 @@ import ( _jwt "github.com/golang-jwt/jwt/v4" "github.com/isd-sgcu/johnjud-auth/cfgldr" "github.com/isd-sgcu/johnjud-auth/internal/constant" - "github.com/isd-sgcu/johnjud-auth/internal/service/jwt" - "github.com/isd-sgcu/johnjud-auth/internal/utils" - jwtStg "github.com/isd-sgcu/johnjud-auth/pkg/strategy" ) type Service interface { @@ -14,7 +11,3 @@ type Service interface { VerifyAuth(token string) (*_jwt.Token, error) GetConfig() *cfgldr.Jwt } - -func NewService(config cfgldr.Jwt, strategy jwtStg.JwtStrategy, jwtUtil utils.IJwtUtil) Service { - return jwt.NewService(config, strategy, jwtUtil) -} diff --git a/pkg/service/token/token.service.go b/pkg/service/token/token.service.go index 0fe0fc3..9e2921a 100644 --- a/pkg/service/token/token.service.go +++ b/pkg/service/token/token.service.go @@ -3,10 +3,6 @@ package token import ( "github.com/isd-sgcu/johnjud-auth/internal/constant" tokenDto "github.com/isd-sgcu/johnjud-auth/internal/domain/dto/token" - "github.com/isd-sgcu/johnjud-auth/internal/service/token" - "github.com/isd-sgcu/johnjud-auth/internal/utils" - "github.com/isd-sgcu/johnjud-auth/pkg/repository/cache" - jwtSvc "github.com/isd-sgcu/johnjud-auth/pkg/service/jwt" authProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/auth/v1" ) @@ -16,7 +12,3 @@ type Service interface { CreateRefreshToken() string RemoveTokenCache(refreshToken string) error } - -func NewService(jwtService jwtSvc.Service, accessTokenCache cache.Repository, refreshTokenCache cache.Repository, uuidUtil utils.IUuidUtil) Service { - return token.NewService(jwtService, accessTokenCache, refreshTokenCache, uuidUtil) -} diff --git a/pkg/strategy/jwt.strategy.go b/pkg/strategy/jwt.strategy.go index c1be925..e4df013 100644 --- a/pkg/strategy/jwt.strategy.go +++ b/pkg/strategy/jwt.strategy.go @@ -2,13 +2,8 @@ package strategy import ( "github.com/golang-jwt/jwt/v4" - "github.com/isd-sgcu/johnjud-auth/internal/strategy" ) type JwtStrategy interface { AuthDecode(token *jwt.Token) (interface{}, error) } - -func NewJwtStrategy(secret string) JwtStrategy { - return strategy.NewJwtStrategy(secret) -} From e9e9c3005e0964a46f67c0432bc6e360432033ac Mon Sep 17 00:00:00 2001 From: NitiwatOwen Date: Mon, 1 Jan 2024 19:43:36 +0700 Subject: [PATCH 5/7] fix: fix --- internal/service/user/user.service.go | 2 +- pkg/service/user/user.service.go | 12 ------------ 2 files changed, 1 insertion(+), 13 deletions(-) delete mode 100644 pkg/service/user/user.service.go diff --git a/internal/service/user/user.service.go b/internal/service/user/user.service.go index bc2e1eb..fe9036e 100644 --- a/internal/service/user/user.service.go +++ b/internal/service/user/user.service.go @@ -20,7 +20,7 @@ type serviceImpl struct { bcryptUtil utils.IBcryptUtil } -func NewService(repo userRepo.Repository, bcryptUtil utils.IBcryptUtil) *serviceImpl { +func NewService(repo userRepo.Repository, bcryptUtil utils.IBcryptUtil) proto.UserServiceServer { return &serviceImpl{repo: repo, bcryptUtil: bcryptUtil} } diff --git a/pkg/service/user/user.service.go b/pkg/service/user/user.service.go deleted file mode 100644 index 2ad1658..0000000 --- a/pkg/service/user/user.service.go +++ /dev/null @@ -1,12 +0,0 @@ -package user - -import ( - "github.com/isd-sgcu/johnjud-auth/internal/service/user" - "github.com/isd-sgcu/johnjud-auth/internal/utils" - userRepo "github.com/isd-sgcu/johnjud-auth/pkg/repository/user" - userProto "github.com/isd-sgcu/johnjud-go-proto/johnjud/auth/user/v1" -) - -func NewService(userRepository userRepo.Repository, bcryptUtil utils.IBcryptUtil) userProto.UserServiceServer { - return user.NewService(userRepository, bcryptUtil) -} From 2fc36fe7a34590fee77f1558bdeb71387b927a14 Mon Sep 17 00:00:00 2001 From: NitiwatOwen Date: Mon, 1 Jan 2024 19:46:39 +0700 Subject: [PATCH 6/7] fix: repository unit test --- internal/repository/auth/auth.repository_test.go | 3 ++- internal/repository/cache/cache.repository_test.go | 5 +++-- internal/repository/user/user.repository_test.go | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/internal/repository/auth/auth.repository_test.go b/internal/repository/auth/auth.repository_test.go index 8baf7c6..c87efd8 100644 --- a/internal/repository/auth/auth.repository_test.go +++ b/internal/repository/auth/auth.repository_test.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/google/uuid" model2 "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/pkg/repository/auth" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" "gorm.io/driver/postgres" @@ -14,7 +15,7 @@ import ( type AuthRepositoryTest struct { suite.Suite db *gorm.DB - authRepo *repositoryImpl + authRepo auth.Repository } func TestAuthRepository(t *testing.T) { diff --git a/internal/repository/cache/cache.repository_test.go b/internal/repository/cache/cache.repository_test.go index d9081df..af4b7f6 100644 --- a/internal/repository/cache/cache.repository_test.go +++ b/internal/repository/cache/cache.repository_test.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/go-faker/faker/v4" tokenDto "github.com/isd-sgcu/johnjud-auth/internal/domain/dto/token" + "github.com/isd-sgcu/johnjud-auth/pkg/repository/cache" "github.com/redis/go-redis/v9" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" @@ -15,7 +16,7 @@ import ( type CacheRepositoryTest struct { suite.Suite cacheDb *redis.Client - cacheRepo *repositoryImpl + cacheRepo cache.Repository key string value *tokenDto.AccessTokenCache } @@ -41,7 +42,7 @@ func (t *CacheRepositoryTest) SetupTest() { ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - err := cacheRepo.client.FlushDB(ctx).Err() + err := cacheDb.FlushDB(ctx).Err() assert.Nil(t.T(), err) err = cacheRepo.SetValue(key, value, 60) diff --git a/internal/repository/user/user.repository_test.go b/internal/repository/user/user.repository_test.go index e733a75..3ad7ea9 100644 --- a/internal/repository/user/user.repository_test.go +++ b/internal/repository/user/user.repository_test.go @@ -5,6 +5,7 @@ import ( "github.com/go-faker/faker/v4" "github.com/isd-sgcu/johnjud-auth/internal/constant" model2 "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/pkg/repository/user" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" "gorm.io/driver/postgres" @@ -15,7 +16,7 @@ import ( type UserRepositoryTest struct { suite.Suite db *gorm.DB - userRepo *repositoryImpl + userRepo user.Repository initialUser *model2.User } From fbf16dfd671e912e69fc3c7f2088a53885b40af1 Mon Sep 17 00:00:00 2001 From: NitiwatOwen Date: Mon, 1 Jan 2024 21:51:36 +0700 Subject: [PATCH 7/7] fix: import package name --- cmd/main.go | 6 +- .../repository/auth/auth.repository_test.go | 12 +-- .../repository/user/user.repository_test.go | 36 ++++---- internal/service/auth/auth.service.go | 32 +++---- internal/service/auth/auth.service_test.go | 86 +++++++++---------- internal/service/user/user.service_test.go | 16 ++-- 6 files changed, 94 insertions(+), 94 deletions(-) diff --git a/cmd/main.go b/cmd/main.go index 2167093..bc0ad6d 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -4,7 +4,7 @@ import ( "context" "fmt" "github.com/isd-sgcu/johnjud-auth/cfgldr" - database2 "github.com/isd-sgcu/johnjud-auth/database" + "github.com/isd-sgcu/johnjud-auth/database" authRp "github.com/isd-sgcu/johnjud-auth/internal/repository/auth" cacheRp "github.com/isd-sgcu/johnjud-auth/internal/repository/cache" userRp "github.com/isd-sgcu/johnjud-auth/internal/repository/user" @@ -95,7 +95,7 @@ func main() { Msg("Failed to load config") } - db, err := database2.InitPostgresDatabase(&conf.Database, conf.App.Debug) + db, err := database.InitPostgresDatabase(&conf.Database, conf.App.Debug) if err != nil { log.Fatal(). Err(err). @@ -103,7 +103,7 @@ func main() { Msg("Failed to init postgres connection") } - cacheDb, err := database2.InitRedisConnection(&conf.Redis) + cacheDb, err := database.InitRedisConnection(&conf.Redis) if err != nil { log.Fatal(). Err(err). diff --git a/internal/repository/auth/auth.repository_test.go b/internal/repository/auth/auth.repository_test.go index c87efd8..ff1e245 100644 --- a/internal/repository/auth/auth.repository_test.go +++ b/internal/repository/auth/auth.repository_test.go @@ -3,7 +3,7 @@ package auth import ( "fmt" "github.com/google/uuid" - model2 "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/domain/model" "github.com/isd-sgcu/johnjud-auth/pkg/repository/auth" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" @@ -28,10 +28,10 @@ func (t *AuthRepositoryTest) SetupTest() { assert.NoError(t.T(), err) - _ = db.Migrator().DropTable(&model2.User{}) - _ = db.Migrator().DropTable(&model2.AuthSession{}) + _ = db.Migrator().DropTable(&model.User{}) + _ = db.Migrator().DropTable(&model.AuthSession{}) - err = db.AutoMigrate(&model2.User{}, &model2.AuthSession{}) + err = db.AutoMigrate(&model.User{}, &model.AuthSession{}) assert.NoError(t.T(), err) authRepo := NewRepository(db) @@ -41,7 +41,7 @@ func (t *AuthRepositoryTest) SetupTest() { } func (t *AuthRepositoryTest) TestCreateSuccess() { - createAuthSession := &model2.AuthSession{ + createAuthSession := &model.AuthSession{ UserID: uuid.New(), } @@ -50,7 +50,7 @@ func (t *AuthRepositoryTest) TestCreateSuccess() { } func (t *AuthRepositoryTest) TestDeleteSuccess() { - createAuthSession := &model2.AuthSession{ + createAuthSession := &model.AuthSession{ UserID: uuid.New(), } diff --git a/internal/repository/user/user.repository_test.go b/internal/repository/user/user.repository_test.go index 3ad7ea9..6499103 100644 --- a/internal/repository/user/user.repository_test.go +++ b/internal/repository/user/user.repository_test.go @@ -4,7 +4,7 @@ import ( "fmt" "github.com/go-faker/faker/v4" "github.com/isd-sgcu/johnjud-auth/internal/constant" - model2 "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/domain/model" "github.com/isd-sgcu/johnjud-auth/pkg/repository/user" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" @@ -17,7 +17,7 @@ type UserRepositoryTest struct { suite.Suite db *gorm.DB userRepo user.Repository - initialUser *model2.User + initialUser *model.User } func TestUserRepository(t *testing.T) { @@ -30,15 +30,15 @@ func (t *UserRepositoryTest) SetupTest() { assert.NoError(t.T(), err) - _ = db.Migrator().DropTable(&model2.User{}) - _ = db.Migrator().DropTable(&model2.AuthSession{}) + _ = db.Migrator().DropTable(&model.User{}) + _ = db.Migrator().DropTable(&model.AuthSession{}) - err = db.AutoMigrate(&model2.User{}, &model2.AuthSession{}) + err = db.AutoMigrate(&model.User{}, &model.AuthSession{}) assert.NoError(t.T(), err) userRepository := NewRepository(db) - initialUser := &model2.User{ + initialUser := &model.User{ Email: faker.Email(), Password: faker.Password(), Firstname: faker.FirstName(), @@ -56,14 +56,14 @@ func (t *UserRepositoryTest) SetupTest() { } func (t *UserRepositoryTest) TestFindAllSuccess() { - users := &[]*model2.User{} + users := &[]*model.User{} err := t.userRepo.FindAll(users) assert.NoError(t.T(), err) assert.NotEmpty(t.T(), *users) } func (t *UserRepositoryTest) TestFindByIdSuccess() { - user := &model2.User{} + user := &model.User{} err := t.userRepo.FindById(t.initialUser.ID.String(), user) assert.NoError(t.T(), err) assert.Equal(t.T(), t.initialUser.ID, user.ID) @@ -72,13 +72,13 @@ func (t *UserRepositoryTest) TestFindByIdSuccess() { func (t *UserRepositoryTest) TestFindByIdNotFound() { notFoundId := faker.UUIDDigit() - user := &model2.User{} + user := &model.User{} err := t.userRepo.FindById(notFoundId, user) assert.Equal(t.T(), gorm.ErrRecordNotFound, err) } func (t *UserRepositoryTest) TestFindByEmailSuccess() { - user := &model2.User{} + user := &model.User{} email := t.initialUser.Email err := t.userRepo.FindByEmail(email, user) assert.NoError(t.T(), err) @@ -86,14 +86,14 @@ func (t *UserRepositoryTest) TestFindByEmailSuccess() { } func (t *UserRepositoryTest) TestFindByEmailNotFound() { - user := &model2.User{} + user := &model.User{} notFoundEmail := faker.Email() err := t.userRepo.FindByEmail(notFoundEmail, user) assert.Equal(t.T(), gorm.ErrRecordNotFound, err) } func (t *UserRepositoryTest) TestCreateSuccess() { - createUser := &model2.User{ + createUser := &model.User{ Email: faker.Email(), Password: faker.Password(), Firstname: faker.FirstName(), @@ -106,7 +106,7 @@ func (t *UserRepositoryTest) TestCreateSuccess() { } func (t *UserRepositoryTest) TestCreateDuplicateEmail() { - createUser := &model2.User{ + createUser := &model.User{ Email: t.initialUser.Email, Password: faker.Password(), Firstname: faker.FirstName(), @@ -119,7 +119,7 @@ func (t *UserRepositoryTest) TestCreateDuplicateEmail() { } func (t *UserRepositoryTest) TestUpdateSuccess() { - updateUser := &model2.User{ + updateUser := &model.User{ Email: faker.Email(), Password: faker.Password(), Firstname: faker.FirstName(), @@ -132,7 +132,7 @@ func (t *UserRepositoryTest) TestUpdateSuccess() { } func (t *UserRepositoryTest) TestUpdateDuplicateEmail() { - createUser := &model2.User{ + createUser := &model.User{ Email: faker.Email(), Password: faker.Password(), Firstname: faker.FirstName(), @@ -143,7 +143,7 @@ func (t *UserRepositoryTest) TestUpdateDuplicateEmail() { err := t.userRepo.Create(createUser) assert.NoError(t.T(), err) - updateUser := &model2.User{ + updateUser := &model.User{ Email: createUser.Email, Password: faker.Password(), Firstname: faker.FirstName(), @@ -156,7 +156,7 @@ func (t *UserRepositoryTest) TestUpdateDuplicateEmail() { } func (t *UserRepositoryTest) TestUpdateNotFound() { - updateUser := &model2.User{ + updateUser := &model.User{ Email: faker.Email(), Password: faker.Password(), Firstname: faker.FirstName(), @@ -170,7 +170,7 @@ func (t *UserRepositoryTest) TestUpdateNotFound() { } func (t *UserRepositoryTest) TestDeleteSuccess() { - createUser := &model2.User{ + createUser := &model.User{ Email: faker.Email(), Password: faker.Password(), Firstname: faker.FirstName(), diff --git a/internal/service/auth/auth.service.go b/internal/service/auth/auth.service.go index 8bb6435..2467af7 100644 --- a/internal/service/auth/auth.service.go +++ b/internal/service/auth/auth.service.go @@ -2,8 +2,8 @@ package auth import ( "context" - constant2 "github.com/isd-sgcu/johnjud-auth/internal/constant" - model2 "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/constant" + "github.com/isd-sgcu/johnjud-auth/internal/domain/model" "github.com/isd-sgcu/johnjud-auth/internal/utils" "github.com/isd-sgcu/johnjud-auth/pkg/repository/auth" "github.com/isd-sgcu/johnjud-auth/pkg/repository/user" @@ -49,22 +49,22 @@ func (s *serviceImpl) RefreshToken(_ context.Context, request *authProto.Refresh func (s *serviceImpl) SignUp(_ context.Context, request *authProto.SignUpRequest) (*authProto.SignUpResponse, error) { hashPassword, err := s.bcryptUtil.GenerateHashedPassword(request.Password) if err != nil { - return nil, status.Error(codes.Internal, constant2.InternalServerErrorMessage) + return nil, status.Error(codes.Internal, constant.InternalServerErrorMessage) } - createUser := &model2.User{ + createUser := &model.User{ Email: request.Email, Password: hashPassword, Firstname: request.FirstName, Lastname: request.LastName, - Role: constant2.USER, + Role: constant.USER, } err = s.userRepo.Create(createUser) if err != nil { if errors.Is(err, gorm.ErrDuplicatedKey) { - return nil, status.Error(codes.AlreadyExists, constant2.DuplicateEmailErrorMessage) + return nil, status.Error(codes.AlreadyExists, constant.DuplicateEmailErrorMessage) } - return nil, status.Error(codes.Internal, constant2.InternalServerErrorMessage) + return nil, status.Error(codes.Internal, constant.InternalServerErrorMessage) } return &authProto.SignUpResponse{ @@ -76,20 +76,20 @@ func (s *serviceImpl) SignUp(_ context.Context, request *authProto.SignUpRequest } func (s *serviceImpl) SignIn(_ context.Context, request *authProto.SignInRequest) (*authProto.SignInResponse, error) { - user := &model2.User{} + user := &model.User{} err := s.userRepo.FindByEmail(request.Email, user) if err != nil { - return nil, status.Error(codes.PermissionDenied, constant2.IncorrectEmailPasswordErrorMessage) + return nil, status.Error(codes.PermissionDenied, constant.IncorrectEmailPasswordErrorMessage) } err = s.bcryptUtil.CompareHashedPassword(user.Password, request.Password) if err != nil { - return nil, status.Error(codes.PermissionDenied, constant2.IncorrectEmailPasswordErrorMessage) + return nil, status.Error(codes.PermissionDenied, constant.IncorrectEmailPasswordErrorMessage) } credential, err := s.createAuthSession(user.ID, user.Role) if err != nil { - return nil, status.Error(codes.Internal, constant2.InternalServerErrorMessage) + return nil, status.Error(codes.Internal, constant.InternalServerErrorMessage) } return &authProto.SignInResponse{Credential: credential}, nil @@ -98,24 +98,24 @@ func (s *serviceImpl) SignIn(_ context.Context, request *authProto.SignInRequest func (s *serviceImpl) SignOut(_ context.Context, request *authProto.SignOutRequest) (*authProto.SignOutResponse, error) { userCredential, err := s.tokenService.Validate(request.Token) if err != nil { - return nil, status.Error(codes.Internal, constant2.InternalServerErrorMessage) + return nil, status.Error(codes.Internal, constant.InternalServerErrorMessage) } err = s.tokenService.RemoveTokenCache(userCredential.RefreshToken) if err != nil { - return nil, status.Error(codes.Internal, constant2.InternalServerErrorMessage) + return nil, status.Error(codes.Internal, constant.InternalServerErrorMessage) } err = s.authRepo.Delete(userCredential.AuthSessionID) if err != nil { - return nil, status.Error(codes.Internal, constant2.InternalServerErrorMessage) + return nil, status.Error(codes.Internal, constant.InternalServerErrorMessage) } return &authProto.SignOutResponse{IsSuccess: true}, nil } -func (s *serviceImpl) createAuthSession(userId uuid.UUID, role constant2.Role) (*authProto.Credential, error) { - createAuthSession := &model2.AuthSession{ +func (s *serviceImpl) createAuthSession(userId uuid.UUID, role constant.Role) (*authProto.Credential, error) { + createAuthSession := &model.AuthSession{ UserID: userId, } err := s.authRepo.Create(createAuthSession) diff --git a/internal/service/auth/auth.service_test.go b/internal/service/auth/auth.service_test.go index 6077d79..48d5589 100644 --- a/internal/service/auth/auth.service_test.go +++ b/internal/service/auth/auth.service_test.go @@ -2,9 +2,9 @@ package auth import ( "context" - constant2 "github.com/isd-sgcu/johnjud-auth/internal/constant" + "github.com/isd-sgcu/johnjud-auth/internal/constant" tokenDto "github.com/isd-sgcu/johnjud-auth/internal/domain/dto/token" - model2 "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/domain/model" "github.com/isd-sgcu/johnjud-auth/mocks/repository/auth" "github.com/isd-sgcu/johnjud-auth/mocks/repository/user" "github.com/isd-sgcu/johnjud-auth/mocks/service/token" @@ -60,15 +60,15 @@ func (t *AuthServiceTest) SetupTest() { func (t *AuthServiceTest) TestSignupSuccess() { hashedPassword := faker.Password() - newUser := &model2.User{ + newUser := &model.User{ Email: t.signupRequest.Email, Password: hashedPassword, Firstname: t.signupRequest.FirstName, Lastname: t.signupRequest.LastName, - Role: constant2.USER, + Role: constant.USER, } - createdUser := &model2.User{ - Base: model2.Base{ + createdUser := &model.User{ + Base: model.Base{ ID: uuid.New(), CreatedAt: time.Now(), UpdatedAt: time.Now(), @@ -107,7 +107,7 @@ func (t *AuthServiceTest) TestSignupSuccess() { func (t *AuthServiceTest) TestSignupHashPasswordFailed() { hashPasswordErr := errors.New("Hash password error") - expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) controller := gomock.NewController(t.T()) @@ -131,16 +131,16 @@ func (t *AuthServiceTest) TestSignupHashPasswordFailed() { func (t *AuthServiceTest) TestSignupCreateUserDuplicateConstraint() { hashedPassword := faker.Password() - newUser := &model2.User{ + newUser := &model.User{ Email: t.signupRequest.Email, Password: hashedPassword, Firstname: t.signupRequest.FirstName, Lastname: t.signupRequest.LastName, - Role: constant2.USER, + Role: constant.USER, } createUserErr := gorm.ErrDuplicatedKey - expected := status.Error(codes.AlreadyExists, constant2.DuplicateEmailErrorMessage) + expected := status.Error(codes.AlreadyExists, constant.DuplicateEmailErrorMessage) controller := gomock.NewController(t.T()) @@ -165,16 +165,16 @@ func (t *AuthServiceTest) TestSignupCreateUserDuplicateConstraint() { func (t *AuthServiceTest) TestSignupCreateUserInternalFailed() { hashedPassword := faker.Password() - newUser := &model2.User{ + newUser := &model.User{ Email: t.signupRequest.Email, Password: hashedPassword, Firstname: t.signupRequest.FirstName, Lastname: t.signupRequest.LastName, - Role: constant2.USER, + Role: constant.USER, } createUserErr := errors.New("Internal server error") - expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) controller := gomock.NewController(t.T()) @@ -198,17 +198,17 @@ func (t *AuthServiceTest) TestSignupCreateUserInternalFailed() { } func (t *AuthServiceTest) TestSignInSuccess() { - existUser := &model2.User{ - Base: model2.Base{ + existUser := &model.User{ + Base: model.Base{ ID: uuid.New(), }, Email: t.signInRequest.Email, Password: faker.Password(), Firstname: faker.FirstName(), Lastname: faker.LastName(), - Role: constant2.USER, + Role: constant.USER, } - newAuthSession := &model2.AuthSession{ + newAuthSession := &model.AuthSession{ UserID: existUser.ID, } credential := &authProto.Credential{ @@ -226,7 +226,7 @@ func (t *AuthServiceTest) TestSignInSuccess() { tokenService := token.TokenServiceMock{} bcryptUtil := utils.BcryptUtilMock{} - userRepo.On("FindByEmail", t.signInRequest.Email, &model2.User{}).Return(existUser, nil) + userRepo.On("FindByEmail", t.signInRequest.Email, &model.User{}).Return(existUser, nil) bcryptUtil.On("CompareHashedPassword", existUser.Password, t.signInRequest.Password).Return(nil) authRepo.EXPECT().Create(newAuthSession).Return(nil) tokenService.On("CreateCredential", existUser.ID.String(), existUser.Role, newAuthSession.ID.String()).Return(credential, nil) @@ -242,7 +242,7 @@ func (t *AuthServiceTest) TestSignInSuccess() { func (t *AuthServiceTest) TestSignInUserNotFound() { findUserErr := gorm.ErrRecordNotFound - expected := status.Error(codes.PermissionDenied, constant2.IncorrectEmailPasswordErrorMessage) + expected := status.Error(codes.PermissionDenied, constant.IncorrectEmailPasswordErrorMessage) controller := gomock.NewController(t.T()) @@ -251,7 +251,7 @@ func (t *AuthServiceTest) TestSignInUserNotFound() { tokenService := token.TokenServiceMock{} bcryptUtil := utils.BcryptUtilMock{} - userRepo.On("FindByEmail", t.signInRequest.Email, &model2.User{}).Return(nil, findUserErr) + userRepo.On("FindByEmail", t.signInRequest.Email, &model.User{}).Return(nil, findUserErr) authSvc := NewService(authRepo, &userRepo, &tokenService, &bcryptUtil) actual, err := authSvc.SignIn(t.ctx, t.signInRequest) @@ -264,19 +264,19 @@ func (t *AuthServiceTest) TestSignInUserNotFound() { } func (t *AuthServiceTest) TestSignInUnmatchedPassword() { - existUser := &model2.User{ - Base: model2.Base{ + existUser := &model.User{ + Base: model.Base{ ID: uuid.New(), }, Email: t.signInRequest.Email, Password: faker.Password(), Firstname: faker.FirstName(), Lastname: faker.LastName(), - Role: constant2.USER, + Role: constant.USER, } comparePwdErr := errors.New("Unmatched password") - expected := status.Error(codes.PermissionDenied, constant2.IncorrectEmailPasswordErrorMessage) + expected := status.Error(codes.PermissionDenied, constant.IncorrectEmailPasswordErrorMessage) controller := gomock.NewController(t.T()) @@ -285,7 +285,7 @@ func (t *AuthServiceTest) TestSignInUnmatchedPassword() { tokenService := token.TokenServiceMock{} bcryptUtil := utils.BcryptUtilMock{} - userRepo.On("FindByEmail", t.signInRequest.Email, &model2.User{}).Return(existUser, nil) + userRepo.On("FindByEmail", t.signInRequest.Email, &model.User{}).Return(existUser, nil) bcryptUtil.On("CompareHashedPassword", existUser.Password, t.signInRequest.Password).Return(comparePwdErr) authSvc := NewService(authRepo, &userRepo, &tokenService, &bcryptUtil) @@ -299,22 +299,22 @@ func (t *AuthServiceTest) TestSignInUnmatchedPassword() { } func (t *AuthServiceTest) TestSignInCreateAuthSessionFailed() { - existUser := &model2.User{ - Base: model2.Base{ + existUser := &model.User{ + Base: model.Base{ ID: uuid.New(), }, Email: t.signInRequest.Email, Password: faker.Password(), Firstname: faker.FirstName(), Lastname: faker.LastName(), - Role: constant2.USER, + Role: constant.USER, } - newAuthSession := &model2.AuthSession{ + newAuthSession := &model.AuthSession{ UserID: existUser.ID, } createAuthSessionErr := errors.New("Internal server error") - expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) controller := gomock.NewController(t.T()) @@ -323,7 +323,7 @@ func (t *AuthServiceTest) TestSignInCreateAuthSessionFailed() { tokenService := token.TokenServiceMock{} bcryptUtil := utils.BcryptUtilMock{} - userRepo.On("FindByEmail", t.signInRequest.Email, &model2.User{}).Return(existUser, nil) + userRepo.On("FindByEmail", t.signInRequest.Email, &model.User{}).Return(existUser, nil) bcryptUtil.On("CompareHashedPassword", existUser.Password, t.signInRequest.Password).Return(nil) authRepo.EXPECT().Create(newAuthSession).Return(createAuthSessionErr) @@ -338,22 +338,22 @@ func (t *AuthServiceTest) TestSignInCreateAuthSessionFailed() { } func (t *AuthServiceTest) TestSignInCreateCredentialFailed() { - existUser := &model2.User{ - Base: model2.Base{ + existUser := &model.User{ + Base: model.Base{ ID: uuid.New(), }, Email: t.signInRequest.Email, Password: faker.Password(), Firstname: faker.FirstName(), Lastname: faker.LastName(), - Role: constant2.USER, + Role: constant.USER, } - newAuthSession := &model2.AuthSession{ + newAuthSession := &model.AuthSession{ UserID: existUser.ID, } createCredentialErr := errors.New("Failed to create credential") - expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) controller := gomock.NewController(t.T()) @@ -362,7 +362,7 @@ func (t *AuthServiceTest) TestSignInCreateCredentialFailed() { tokenService := token.TokenServiceMock{} bcryptUtil := utils.BcryptUtilMock{} - userRepo.On("FindByEmail", t.signInRequest.Email, &model2.User{}).Return(existUser, nil) + userRepo.On("FindByEmail", t.signInRequest.Email, &model.User{}).Return(existUser, nil) bcryptUtil.On("CompareHashedPassword", existUser.Password, t.signInRequest.Password).Return(nil) authRepo.EXPECT().Create(newAuthSession).Return(nil) tokenService.On("CreateCredential", existUser.ID.String(), existUser.Role, newAuthSession.ID.String()).Return(nil, createCredentialErr) @@ -392,7 +392,7 @@ func (t *AuthServiceTest) TestRefreshTokenUpdateTokenFailed() {} func (t *AuthServiceTest) TestSignOutSuccess() { userCredential := &tokenDto.UserCredential{ UserID: faker.UUIDDigit(), - Role: constant2.USER, + Role: constant.USER, AuthSessionID: faker.UUIDDigit(), RefreshToken: faker.UUIDDigit(), } @@ -421,7 +421,7 @@ func (t *AuthServiceTest) TestSignOutSuccess() { func (t *AuthServiceTest) TestSignOutValidateFailed() { validateErr := errors.New("internal server error") - expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) controller := gomock.NewController(t.T()) authRepo := mock_auth.NewMockRepository(controller) @@ -444,13 +444,13 @@ func (t *AuthServiceTest) TestSignOutValidateFailed() { func (t *AuthServiceTest) TestSignOutRemoveTokenCacheFailed() { userCredential := &tokenDto.UserCredential{ UserID: faker.UUIDDigit(), - Role: constant2.USER, + Role: constant.USER, AuthSessionID: faker.UUIDDigit(), RefreshToken: faker.UUIDDigit(), } removeTokenErr := errors.New("internal server error") - expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) controller := gomock.NewController(t.T()) @@ -475,13 +475,13 @@ func (t *AuthServiceTest) TestSignOutRemoveTokenCacheFailed() { func (t *AuthServiceTest) TestSignOutDeleteAuthSessionFailed() { userCredential := &tokenDto.UserCredential{ UserID: faker.UUIDDigit(), - Role: constant2.USER, + Role: constant.USER, AuthSessionID: faker.UUIDDigit(), RefreshToken: faker.UUIDDigit(), } deleteAuthErr := errors.New("internal server error") - expected := status.Error(codes.Internal, constant2.InternalServerErrorMessage) + expected := status.Error(codes.Internal, constant.InternalServerErrorMessage) controller := gomock.NewController(t.T()) diff --git a/internal/service/user/user.service_test.go b/internal/service/user/user.service_test.go index 4ba4cb4..70dd9ac 100644 --- a/internal/service/user/user.service_test.go +++ b/internal/service/user/user.service_test.go @@ -4,7 +4,7 @@ import ( "context" "errors" "github.com/isd-sgcu/johnjud-auth/cfgldr" - model2 "github.com/isd-sgcu/johnjud-auth/internal/domain/model" + "github.com/isd-sgcu/johnjud-auth/internal/domain/model" mock "github.com/isd-sgcu/johnjud-auth/mocks/repository/user" "github.com/isd-sgcu/johnjud-auth/mocks/utils" "testing" @@ -23,8 +23,8 @@ import ( type UserServiceTest struct { suite.Suite config *cfgldr.App - User *model2.User - UpdateUser *model2.User + User *model.User + UpdateUser *model.User UserDto *proto.User UserDtoNoPassword *proto.User HashedPassword string @@ -36,8 +36,8 @@ func TestUserService(t *testing.T) { } func (t *UserServiceTest) SetupTest() { - t.User = &model2.User{ - Base: model2.Base{ + t.User = &model.User{ + Base: model.Base{ ID: uuid.New(), CreatedAt: time.Time{}, UpdatedAt: time.Time{}, @@ -77,7 +77,7 @@ func (t *UserServiceTest) SetupTest() { t.HashedPassword = faker.Password() - t.UpdateUser = &model2.User{ + t.UpdateUser = &model.User{ Email: t.User.Email, Password: t.HashedPassword, Firstname: t.User.Firstname, @@ -89,7 +89,7 @@ func (t *UserServiceTest) TestFindOneSuccess() { want := &proto.FindOneUserResponse{User: t.UserDtoNoPassword} repo := &mock.UserRepositoryMock{} - repo.On("FindById", t.User.ID.String(), &model2.User{}).Return(t.User, nil) + repo.On("FindById", t.User.ID.String(), &model.User{}).Return(t.User, nil) brcyptUtil := &utils.BcryptUtilMock{} srv := NewService(repo, brcyptUtil) @@ -101,7 +101,7 @@ func (t *UserServiceTest) TestFindOneSuccess() { func (t *UserServiceTest) TestFindOneInternalErr() { repo := &mock.UserRepositoryMock{} - repo.On("FindById", t.User.ID.String(), &model2.User{}).Return(nil, errors.New("Not found user")) + repo.On("FindById", t.User.ID.String(), &model.User{}).Return(nil, errors.New("Not found user")) brcyptUtil := &utils.BcryptUtilMock{} srv := NewService(repo, brcyptUtil)