up
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user