Fix: Ensure all uptime service records are checked

- Addressing the issue where only a limited number (30) were being processed due to pagination. The fixed now fetches all records to ensure comprehensive monitoring.
This commit is contained in:
Tola Leng
2025-07-15 17:15:08 +07:00
parent f235043417
commit 79beb20b65
@@ -62,9 +62,15 @@ func (c *PocketBaseClient) GetService(serviceID string) (*Service, error) {
} }
func (c *PocketBaseClient) GetActiveServices() ([]Service, error) { func (c *PocketBaseClient) GetActiveServices() ([]Service, error) {
// Only fetch services that are not paused var allServices []Service
page := 1
perPage := 30 // Use default pagination size
for {
// Fetch services page by page with filter for non-paused services
req, err := http.NewRequest("GET", req, err := http.NewRequest("GET",
fmt.Sprintf("%s/api/collections/services/records?filter=(status!='paused')", c.baseURL), nil) fmt.Sprintf("%s/api/collections/services/records?page=%d&perPage=%d&filter=(status!='paused')",
c.baseURL, page, perPage), nil)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -85,7 +91,18 @@ func (c *PocketBaseClient) GetActiveServices() ([]Service, error) {
return nil, err return nil, err
} }
return servicesResponse.Items, nil // Add current page items to the result
allServices = append(allServices, servicesResponse.Items...)
// Check if we've fetched all pages
if page >= servicesResponse.TotalPages || len(servicesResponse.Items) == 0 {
break
}
page++
}
return allServices, nil
} }
func (c *PocketBaseClient) UpdateServiceStatus(serviceID string, status string, responseTime int64, errorMessage string) error { func (c *PocketBaseClient) UpdateServiceStatus(serviceID string, status string, responseTime int64, errorMessage string) error {