Files
softplayer-backend-leg/internal/controllers/accounts.go
Nikolai Rodionov 092389fcc6
All checks were successful
ci/woodpecker/push/build Pipeline was successful
Started working on the accounts service
Signed-off-by: Nikolai Rodionov <iam@allanger.xyz>
2026-04-27 06:22:35 +02:00

45 lines
885 B
Go

package controllers
import (
"context"
"database/sql"
"gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/hash"
"github.com/google/uuid"
)
type AccountController struct {
DB *sql.DB
DevMode bool
HashCost int16
}
type JWT struct {
RefreshToken string
AccessToken string
}
type AccountParams struct {
}
type AccountData struct {
Username string
Password string
Email string
UUID string
}
func (c *AccountController) Create(ctx context.Context, data *AccountData) error {
data.UUID = uuid.New().String()
passwordHash, err := hash.HashPassword(data.Password, int(c.HashCost))
if err != nil {
return nil
}
query := "INSERT INTO users (uuid, username, email, password_hash) VALUES ($1, $2, $3, $4)"
if _, err := c.DB.Query(query, data.UUID, data.Username, data.Email, passwordHash); err != nil {
return err
}
return nil
}