chore: update
ci-api / test (push) Successful in 21m59s
ci-web / test (push) Successful in 13m44s

This commit is contained in:
Xor290
2026-08-02 21:31:29 +02:00
parent ca14327ea2
commit 2592ea1c6f
15 changed files with 338 additions and 1629 deletions
@@ -3,6 +3,7 @@ package demos
import (
"errors"
"log"
"strings"
"time"
"github.com/google/uuid"
@@ -192,6 +193,39 @@ func (s *Service) urlFor(namespace string) string {
return "https://" + namespace + "." + s.cfg.BaseDomain + portSuffix
}
// SetDomain modifie le domaine public d'une démo (IngressRoute, et
// re-branchement des webhooks Telegram si un bot est configuré — voir
// HelmProvisioner.UpdateDomain). domain vide réinitialise au domaine par
// défaut ("<namespace>.<baseDomain>"). Contrairement à
// MigrateToPremiumNamespace, c'est une opération rapide (aucune donnée à
// migrer, aucun namespace à recréer) : appliquée de façon synchrone.
func (s *Service) SetDomain(id, domain string) (Demo, error) {
domain = strings.ToLower(strings.TrimSpace(domain))
if err := ValidateDomain(domain); err != nil {
return Demo{}, err
}
d, ok := s.store.Get(id)
if !ok {
return Demo{}, ErrNotFound
}
newURL := domain
if newURL == "" {
newURL = s.urlFor(d.Namespace)
} else {
newURL = "https://" + domain
}
if err := s.prov.UpdateDomain(d, newURL); err != nil {
return Demo{}, err
}
d.CustomDomain = domain
d.URL = newURL
return s.store.Update(d)
}
// Delete déclenche le teardown et libère le pool.
func (s *Service) Delete(id string) (Demo, error) {
d, ok := s.store.Get(id)