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
@@ -179,6 +179,35 @@ func (h *Handler) Delete(c *gin.Context) {
c.JSON(http.StatusOK, d)
}
type setDomainRequest struct {
// Domain : nom d'hôte sans protocole ni chemin (ex. "boutique.client.com").
// Vide = réinitialise au domaine par défaut.
Domain string `json:"domain" binding:"omitempty,max=253"`
}
// SetDomain : POST /demos/:id/domain — modifie (ou réinitialise si vide) le
// domaine public d'une démo.
func (h *Handler) SetDomain(c *gin.Context) {
var req setDomainRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "requête invalide"})
return
}
d, err := h.svc.SetDomain(c.Param("id"), req.Domain)
if err != nil {
switch {
case errors.Is(err, ErrNotFound):
c.JSON(http.StatusNotFound, gin.H{"error": "démo introuvable"})
case errors.Is(err, ErrInvalidDomain):
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
default:
c.JSON(http.StatusInternalServerError, gin.H{"error": "erreur serveur"})
}
return
}
c.JSON(http.StatusOK, d)
}
// Extend : POST /demos/:id/extend — prolonge de 30 jours.
func (h *Handler) Extend(c *gin.Context) {
d, err := h.svc.Extend(c.Param("id"))