chore: update
This commit is contained in:
@@ -2,21 +2,24 @@ package sub
|
||||
|
||||
import (
|
||||
"crypto/rand"
|
||||
"log"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/omnex/control-plane/api/internal/auth"
|
||||
"github.com/omnex/control-plane/api/internal/demos"
|
||||
)
|
||||
|
||||
// Handler gère les requêtes HTTP pour les codes de souscription.
|
||||
type Handler struct {
|
||||
store Store
|
||||
demos *demos.Service // optionnel : nil => pas de transfert démo automatique
|
||||
}
|
||||
|
||||
// NewHandler crée un nouveau Handler.
|
||||
func NewHandler(store Store) *Handler {
|
||||
return &Handler{store: store}
|
||||
func NewHandler(store Store, demoSvc *demos.Service) *Handler {
|
||||
return &Handler{store: store, demos: demoSvc}
|
||||
}
|
||||
|
||||
// createCodeRequest représente la requête pour créer un code.
|
||||
@@ -122,5 +125,15 @@ func (h *Handler) AddCode(c *gin.Context) {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "code invalide"})
|
||||
return
|
||||
}
|
||||
|
||||
// Transfert de la démo active (si elle existe) vers la version payante :
|
||||
// n'expire plus + bascule stockage persistant en tâche de fond. Ne fait
|
||||
// jamais échouer la validation du code — le client est déjà premium
|
||||
// même si sa démo (optionnelle) pose problème.
|
||||
if h.demos != nil {
|
||||
if err := h.demos.TransferToPaid(p.Username); err != nil {
|
||||
log.Printf("Transfert démo vers payant échoué pour %s: %v", p.Username, err)
|
||||
}
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{"success": "vous passez en abonnement premium"})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user