Added /register handler
This commit is contained in:
@@ -12,7 +12,9 @@ func (s *Server) LoginHandlerFn(c *fiber.Ctx) error {
|
|||||||
return s.Error(c, fiber.StatusBadRequest, "Error parsing input")
|
return s.Error(c, fiber.StatusBadRequest, "Error parsing input")
|
||||||
}
|
}
|
||||||
|
|
||||||
token, err := service.AuthService.Login(data.Username, data.Password)
|
authSrv := service.NewAuthService(s.GetDatabase())
|
||||||
|
|
||||||
|
token, err := authSrv.Login(data.Username, data.Password)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fiber.NewError(fiber.StatusUnauthorized)
|
return fiber.NewError(fiber.StatusUnauthorized)
|
||||||
}
|
}
|
||||||
|
|||||||
23
src/internal/server/register_handler.go
Normal file
23
src/internal/server/register_handler.go
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (s *Server) RegisterHandlerFn(c *fiber.Ctx) error {
|
||||||
|
data := new(dto.AuthRegisterRequestDTO)
|
||||||
|
if err := c.BodyParser(data); err != nil {
|
||||||
|
return s.Error(c, fiber.StatusBadRequest, "Error parsing input")
|
||||||
|
}
|
||||||
|
|
||||||
|
authSrv := service.NewAuthService(s.GetDatabase())
|
||||||
|
|
||||||
|
id, err := authSrv.Register(data.Email, data.Username, data.Password)
|
||||||
|
if err != nil {
|
||||||
|
return s.Error(c, fiber.StatusBadRequest, err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.JSON(&dto.AuthRegisterResponseDTO{ID: id})
|
||||||
|
}
|
||||||
@@ -1,7 +1,10 @@
|
|||||||
package service
|
package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
|
"github.com/jackc/pgx/v5/pgxpool"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -12,10 +15,14 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
AuthService = &Auth{}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type Auth struct {
|
type Auth struct {
|
||||||
|
db *pgxpool.Pool
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewAuthService(db *pgxpool.Pool) *Auth {
|
||||||
|
return &Auth{db: db}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Auth) Login(login, passwd string) (string, error) {
|
func (a *Auth) Login(login, passwd string) (string, error) {
|
||||||
@@ -32,6 +39,13 @@ func (a *Auth) Login(login, passwd string) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *Auth) Register(email, login, passwd string) (string, error) {
|
func (a *Auth) Register(email, login, passwd string) (string, error) {
|
||||||
|
var id string
|
||||||
|
|
||||||
return "user-uuid", nil
|
sql := `INSERT INTO identity.users(email, username, password) VALUES($1, $2, $3) LIMIT 1 RETURNING id`
|
||||||
|
err := a.db.QueryRow(context.Background(), sql, email, login, passwd).Scan(&id)
|
||||||
|
if err != nil {
|
||||||
|
return "", errors.New("Failed to create new user: " + err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
return id, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user