This commit is contained in:
Lizandro Guarnizo
2026-05-21 22:52:24 -05:00
parent 0cf7c6d279
commit d121f399ed
5 changed files with 77 additions and 26 deletions
+25 -8
View File
@@ -232,14 +232,31 @@ func SyncServidorFromHostinger(c *fiber.Ctx) error {
updates["disco"] = fmt.Sprintf("%d GB", vps.DiskBytes)
}
// Vencimiento: buscar suscripción cuyo nombre contenga el hostname del VPS
if subs, sErr := client.GetOrders(); sErr == nil {
for _, sub := range subs {
if sub.ExpiresAt != "" && len(sub.ExpiresAt) >= 10 &&
(strings.Contains(strings.ToLower(sub.Name), strings.ToLower(vps.Hostname)) ||
strings.Contains(strings.ToLower(sub.Name), "vps")) {
updates["vencimiento"] = sub.ExpiresAt[:10]
break
// Vencimiento: resolución en cascada
// 1) subscription_id que viene directo del VPS (el más confiable)
// 2) subscription_id ya guardado en el servidor local
// 3) fallback fuzzy por nombre
subID := vps.SubscriptionID
if subID == "" && servidor.HostingerSubscriptionID != "" {
subID = servidor.HostingerSubscriptionID
}
if subID != "" {
// Lookup directo — sin ambigüedad
if sub, sErr := client.GetSubscriptionByID(subID); sErr == nil && sub.ExpiresAt != "" && len(sub.ExpiresAt) >= 10 {
updates["vencimiento"] = sub.ExpiresAt[:10]
updates["hostinger_subscription_id"] = subID
}
} else {
// Fallback: buscar por nombre si aún no tenemos subscription_id
if subs, sErr := client.GetOrders(); sErr == nil {
for _, sub := range subs {
if sub.ExpiresAt != "" && len(sub.ExpiresAt) >= 10 &&
strings.Contains(strings.ToLower(sub.Name), strings.ToLower(vps.Hostname)) {
updates["vencimiento"] = sub.ExpiresAt[:10]
updates["hostinger_subscription_id"] = sub.ID
break
}
}
}
}