diff --git a/src/cmd/migrate/main.go b/src/cmd/migrate/main.go index e6d13e3..f1b2833 100644 --- a/src/cmd/migrate/main.go +++ b/src/cmd/migrate/main.go @@ -9,10 +9,7 @@ import ( "github.com/go-pg/migrations/v8" "github.com/go-pg/pg/v10" - "git.ego.freeddns.org/egommerce/go-api-pkg/fluentd" - - baseCnf "git.ego.freeddns.org/egommerce/go-api-pkg/config" - cnf "git.ego.freeddns.org/egommerce/identity-service/internal/server" + cnf "git.ego.freeddns.org/egommerce/go-api-pkg/config" ) const ( @@ -39,49 +36,39 @@ func main() { } flag.Parse() - if baseCnf.ErrLoadingEnvs != nil { - log.Panicln(baseCnf.ErrLoadingEnvs) + if cnf.ErrLoadingEnvs != nil { + log.Panicln(cnf.ErrLoadingEnvs) } - c := cnf.NewConfig("migrator") + // c := cnf.NewConfig("migrator") // dbURL := baseCnf.GetEnv("DATABASE_URL", defDbURL) - logHost, logPort, err := fluentd.ParseAddr(c.LoggerAddr) - if err != nil { - log.Fatalf("Error parsing logger addr: %s. Err: %v", c.LoggerAddr, err) - } - - logger, err := fluentd.NewLogger(c.GetAppFullName(), logHost, logPort) // @Refactor NewLogger return (logger, error) - if err != nil { - log.Fatalf("Error connecting to %s:%d. Err: %v", logHost, logPort, err) - } - defer logger.Close() - db := pg.Connect(&pg.Options{ // FIXME - Addr: "db:5432", - User: "egommerce", + Addr: "db-postgres:5432", + User: "postgres", Password: "12345678", Database: "egommerce", }) defer db.Close() - mTbl := baseCnf.GetEnv("MIGRATIONS_TABLE_NAME", defMigrationsTableName) + mTbl := cnf.GetEnv("MIGRATIONS_TABLE_NAME", defMigrationsTableName) + mig := migrations.NewCollection() mig.SetTableName(mTbl) if err := mig.DiscoverSQLMigrations("./migrations"); err != nil { - logger.Log("migration dicovery error: %#v", err) + log.Printf("migration dicovery error: %#v\n", err) } oldVersion, newVersion, err := mig.Run(db, flag.Args()...) if err != nil { - logger.Log("migration runner error: %#v", err) + log.Printf("migration runner error: %#v", err) os.Exit(1) } if newVersion != oldVersion { - logger.Log("migrated from version %d to %d\n", oldVersion, newVersion) + log.Printf("migrated from version %d to %d\n", oldVersion, newVersion) } else { - logger.Log("version is %d\n", oldVersion) + log.Printf("version is %d\n", oldVersion) } // os.Exit(0) } diff --git a/src/cmd/server/main.go b/src/cmd/server/main.go index 9592f4e..a2420cc 100644 --- a/src/cmd/server/main.go +++ b/src/cmd/server/main.go @@ -21,7 +21,6 @@ func main() { doer := server.New(c) a := app.NewApp(doer) - a.RegisterPlugin(app.LoggerPlugin(cArr)) a.RegisterPlugin(app.CachePlugin(cArr)) a.RegisterPlugin(app.DatabasePlugin(cArr)) diff --git a/src/internal/app/plugins.go b/src/internal/app/plugins.go index 9d86b67..275f340 100644 --- a/src/internal/app/plugins.go +++ b/src/internal/app/plugins.go @@ -1,11 +1,8 @@ package app import ( - "log" - "os" "time" - "git.ego.freeddns.org/egommerce/go-api-pkg/fluentd" db "git.ego.freeddns.org/egommerce/identity-service/pkg/database" redis "github.com/go-redis/redis/v8" ) @@ -69,24 +66,3 @@ func DatabasePlugin(cArr map[string]string) Plugin { // }, // } // } - -func LoggerPlugin(cArr map[string]string) Plugin { - return Plugin{ - name: "logger", - fn: func() any { // FIXME: return type - logHost, logPort, err := fluentd.ParseAddr(cArr["loggerAddr"]) - if err != nil { - log.Fatalf("Failed to parse FluentD address: %s. Err: %v", cArr["loggerAddr"], err) - os.Exit(1) - } - - logger, err := fluentd.NewLogger(cArr["appFullname"], logHost, logPort) - if err != nil { - log.Fatalf("Failed to connect to the FluentD on %s:%d. Err: %v", logHost, logPort, err) - os.Exit(1) - } - - return logger - }, - } -} diff --git a/src/internal/server/config.go b/src/internal/server/config.go index 93f1b21..b6c03b6 100644 --- a/src/internal/server/config.go +++ b/src/internal/server/config.go @@ -18,7 +18,6 @@ const ( defDbURL = "postgres://postgres:12345678@db-postgres:5432/egommerce" defEventBusURL = "amqp://guest:guest@api-eventbus:5672" defKVNmspc = "dev.egommerce/service/identity" - defLoggerAddr = "api-logger:24224" defNetAddr = ":443" defMongoDbURL = "mongodb://mongodb:12345678@mongo-db:27017" defPathPrefix = "/identity" @@ -37,7 +36,6 @@ type Config struct { ReadTimeout time.Duration // miliseconds WriteTimeout time.Duration // miliseconds - LoggerAddr string `json:"logger_addr"` DbURL string `json:"db_url"` CacheAddr string `json:"cache_addr"` CacheUsername string `json:"cache_username"` @@ -61,7 +59,6 @@ func NewConfig(name string) *Config { c.DbURL = cnf.GetEnv("API_DATABASE_URL", defDbURL) c.EventBusExchange = defEbEventsExchange c.EventBusURL = cnf.GetEnv("API_EVENTBUS_URL", defEventBusURL) - c.LoggerAddr = cnf.GetEnv("API_LOGGER_ADDR", defLoggerAddr) c.PathPrefix = cnf.GetEnv("APP_PATH_PREFIX", defPathPrefix) return c @@ -96,7 +93,6 @@ func (c *Config) GetArray() map[string]string { // FIXME fix types etc arr["dbURL"] = c.DbURL arr["eventBusExchange"] = c.EventBusExchange arr["eventBusURL"] = c.EventBusURL - arr["loggerAddr"] = c.LoggerAddr return arr } diff --git a/src/internal/server/login_handler.go b/src/internal/server/login_handler.go index 0ad1fe9..ed5b99c 100644 --- a/src/internal/server/login_handler.go +++ b/src/internal/server/login_handler.go @@ -1,23 +1,15 @@ package server import ( + dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto" "git.ego.freeddns.org/egommerce/identity-service/internal/service" "github.com/gofiber/fiber/v2" ) -type AuthLoginRequest struct { - Username string `json:"username"` - Password string `json:"password"` -} - -type AuthLoginResponse struct { - JWTToken string `json:"jwt_token"` -} - -func (s *Server) LoginHandler(c *fiber.Ctx) error { - data := new(AuthLoginRequest) +func (s *Server) LoginHandlerFn(c *fiber.Ctx) error { + data := new(dto.AuthLoginRequestDTO) if err := c.BodyParser(data); err != nil { - return err + return s.Error(c, fiber.StatusBadRequest, "Error parsing input") } token, err := service.AuthService.Login(data.Username, data.Password) @@ -25,9 +17,5 @@ func (s *Server) LoginHandler(c *fiber.Ctx) error { return fiber.NewError(fiber.StatusUnauthorized) } - cookie := service.AuthService.Cookie("auth_token", token) - // ^^ FIXME move cookkie creation to separate service - c.Cookie(cookie) - - return c.JSON(&AuthLoginResponse{JWTToken: token}) + return c.JSON(&dto.AuthLoginResponseDTO{Token: token}) } diff --git a/src/internal/server/router.go b/src/internal/server/router.go index 2b860e6..b30f509 100644 --- a/src/internal/server/router.go +++ b/src/internal/server/router.go @@ -19,7 +19,7 @@ func SetupRouter(s *Server) { s.Get("/health", s.HealthHandler) - api := s.Group("/api") - v1 := api.Group("/v1") - v1.Post("/login", s.LoginHandler) + s.Group("/v1"). + Post("/login", s.LoginHandlerFn). + Post("/register", s.RegisterHandlerFn) } diff --git a/src/internal/server/server.go b/src/internal/server/server.go index 5b2d772..7b31e92 100644 --- a/src/internal/server/server.go +++ b/src/internal/server/server.go @@ -10,8 +10,7 @@ import ( "github.com/gofiber/fiber/v2" "github.com/jackc/pgx/v5/pgxpool" - "git.ego.freeddns.org/egommerce/api-entities/common/dto" - "git.ego.freeddns.org/egommerce/go-api-pkg/fluentd" + dto "git.ego.freeddns.org/egommerce/api-entities/common/dto" ) type ( @@ -46,7 +45,6 @@ func (s *Server) Start() error { SetupMiddleware(s) SetupRouter(s) - // fmt.Printf("Starting server at: %s...\n", s.addr) crt, err := tls.LoadX509KeyPair("certs/identity-svc.crt", "certs/identity-svc.key") if err != nil { log.Fatal(err) @@ -65,12 +63,11 @@ func (s *Server) RegisterHandler(name string, fn func() any) { } func (s *Server) OnShutdown() { - s.GetLogger().Log("Server %s is going down...", s.ID) + log.Printf("Server %s is going down...", s.ID) // s.GetEventBus().Close() s.GetDatabase().Close() - s.GetLogger().Log("Gone.") - s.GetLogger().Close() + log.Printf("Gone.") s.Shutdown() } @@ -100,7 +97,3 @@ func (s *Server) GetDatabase() *pgxpool.Pool { // FIXME hardcoded index issue // func (s *Server) GetEventBus() *amqp.Channel { // return (s.handlers["eventbus"]).(*amqp.Channel) // } - -func (s *Server) GetLogger() *fluentd.Logger { - return (s.handlers["logger"]).(*fluentd.Logger) -} diff --git a/src/internal/service/auth.go b/src/internal/service/auth.go index aa54c1a..e9a162c 100644 --- a/src/internal/service/auth.go +++ b/src/internal/service/auth.go @@ -2,10 +2,6 @@ package service import ( "errors" - "strconv" - - baseCnf "git.ego.freeddns.org/egommerce/go-api-pkg/config" - "github.com/gofiber/fiber/v2" ) var ( @@ -16,18 +12,14 @@ var ( ) func init() { - cookieExpireTime, _ := strconv.Atoi(baseCnf.GetEnv("AUTH_COOKIE_EXPIRE_TIME", "5")) - AuthService = &Auth{"jwt_token", "jwt_token_refresh", cookieExpireTime} + AuthService = &Auth{} } type Auth struct { - TokenCookieName string - RefreshTokenCookieName string - cookieExpireTime int } -func (a *Auth) Login(login, pass string) (string, error) { - if login == "admin" && pass == "secret" { +func (a *Auth) Login(login, passwd string) (string, error) { + if login == "admin" && passwd == "secret" { // FIXME hardcoded token, err := JWTService.CreateToken() if err != nil { return "", err @@ -39,12 +31,7 @@ func (a *Auth) Login(login, pass string) (string, error) { return "", ErrLoginIncorrect } -// Cookie create fiber.Cookie struct -func (a *Auth) Cookie(name, value string) *fiber.Cookie { - return &fiber.Cookie{ - Name: name, - Value: value, - MaxAge: a.cookieExpireTime * 300, // FIXME: env/config - Path: "/", // FIXME: env/config - } +func (a *Auth) Register(email, login, passwd string) (string, error) { + + return "user-uuid", nil } diff --git a/src/internal/service/jwt.go b/src/internal/service/jwt.go index 5d2248b..080b25e 100644 --- a/src/internal/service/jwt.go +++ b/src/internal/service/jwt.go @@ -32,6 +32,7 @@ func (s *JWT) CreateToken() (string, error) { } token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) + return token.SignedString(s.tokenSecret) }