start working on the frontend side
This commit is contained in:
@@ -5,21 +5,25 @@ import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/atlasos/calypso/internal/common/config"
|
||||
"github.com/atlasos/calypso/internal/common/database"
|
||||
"github.com/atlasos/calypso/internal/common/logger"
|
||||
"github.com/atlasos/calypso/internal/common/password"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// Handler handles IAM-related requests
|
||||
type Handler struct {
|
||||
db *database.DB
|
||||
config *config.Config
|
||||
logger *logger.Logger
|
||||
}
|
||||
|
||||
// NewHandler creates a new IAM handler
|
||||
func NewHandler(db *database.DB, log *logger.Logger) *Handler {
|
||||
func NewHandler(db *database.DB, cfg *config.Config, log *logger.Logger) *Handler {
|
||||
return &Handler{
|
||||
db: db,
|
||||
config: cfg,
|
||||
logger: log,
|
||||
}
|
||||
}
|
||||
@@ -117,8 +121,13 @@ func (h *Handler) CreateUser(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
// TODO: Hash password with Argon2id
|
||||
passwordHash := req.Password // Placeholder
|
||||
// Hash password with Argon2id
|
||||
passwordHash, err := password.HashPassword(req.Password, h.config.Auth.Argon2Params)
|
||||
if err != nil {
|
||||
h.logger.Error("Failed to hash password", "error", err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "failed to create user"})
|
||||
return
|
||||
}
|
||||
|
||||
query := `
|
||||
INSERT INTO users (username, email, password_hash, full_name)
|
||||
@@ -127,7 +136,7 @@ func (h *Handler) CreateUser(c *gin.Context) {
|
||||
`
|
||||
|
||||
var userID string
|
||||
err := h.db.QueryRow(query, req.Username, req.Email, passwordHash, req.FullName).Scan(&userID)
|
||||
err = h.db.QueryRow(query, req.Username, req.Email, passwordHash, req.FullName).Scan(&userID)
|
||||
if err != nil {
|
||||
h.logger.Error("Failed to create user", "error", err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "failed to create user"})
|
||||
|
||||
Reference in New Issue
Block a user