start working on the frontend side

This commit is contained in:
Warp Agent
2025-12-24 19:53:45 +00:00
parent 3aa0169af0
commit c962a223c6
84 changed files with 14761 additions and 58 deletions

View File

@@ -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"})