Create Api Key added

This commit is contained in:
Blomios
2026-01-11 23:08:03 +01:00
parent a64b10175e
commit 03ef8342e3
11 changed files with 461 additions and 83 deletions

View File

@ -11,6 +11,29 @@ import (
"golang.org/x/crypto/bcrypt"
)
func (r *NodeRepository) IsApiKeyValid(key string) (bool, error) {
var exists bool
query := "SELECT exists(SELECT 1 FROM node_api_keys WHERE key_value=$1 AND is_active=true)"
err := r.DB.Get(&exists, query, key)
return exists, err
}
func (r *NodeRepository) CreateApiKeyHandler(c *gin.Context, newKey string) (models.CreateApiKeyResponse, error) {
var key models.CreateApiKeyResponse
var req models.CreateApiKeyRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "Format invalide"})
return key, err
}
query := "INSERT INTO node_api_keys (key_value, key_name) VALUES ($1, $2) RETURNING id, key_name, key_value;"
err := r.DB.Get(&key, query, newKey, req.KeyName)
return key, err
}
func (r *NodeRepository) LoginHandler(c *gin.Context) {
var req models.LoginRequest
if err := c.ShouldBindJSON(&req); err != nil {