@@ -135,11 +135,11 @@ func (s *Service) ListForUser(username string) ([]Demo, error) {
|
||||
}
|
||||
|
||||
// TransferToPaid marque la démo active du client comme abonnement payant
|
||||
// (n'expire plus) et déclenche la bascule en stockage persistant (migration
|
||||
// des données postgres incluse, voir Provisioner.UpgradeToPaid). No-op si le
|
||||
// client n'a pas de démo active — ce n'est pas une erreur (ex: compte créé
|
||||
// sans jamais avoir demandé de démo). L'upgrade infra est lent (dump/
|
||||
// restore/helm) : il tourne en tâche de fond, cette méthode ne bloque pas.
|
||||
// (n'expire plus). Le stockage (PVC postgres/redis) est déjà en place depuis
|
||||
// la création de la démo (voir HelmProvisioner.Provision) : rien à basculer
|
||||
// côté infra, seul le statut change. No-op si le client n'a pas de démo
|
||||
// active — ce n'est pas une erreur (ex: compte créé sans jamais avoir
|
||||
// demandé de démo).
|
||||
func (s *Service) TransferToPaid(username string) error {
|
||||
existing, err := s.store.ListByUsername(auth.NormalizeUsername(username))
|
||||
if err != nil {
|
||||
@@ -159,17 +159,10 @@ func (s *Service) TransferToPaid(username string) error {
|
||||
|
||||
active.TypeAbo = "premium"
|
||||
active.ExpiresAt = s.now().UTC().AddDate(10, 0, 0) // n'expire plus, en pratique
|
||||
updated, err := s.store.Update(*active)
|
||||
if err != nil {
|
||||
if _, err := s.store.Update(*active); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
go func() {
|
||||
if err := s.prov.UpgradeToPaid(updated); err != nil {
|
||||
log.Printf("Transfert payant échoué pour %s: %v", updated.Namespace, err)
|
||||
}
|
||||
}()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user