refactor(web): remove deprecated dashboard components and enhance KPI grid
quality / commitlint (push) Skipped
quality / changes (push) Successful in 9s
quality / docker-check (push) Skipped
quality / openapi (push) Successful in 46s
quality / web (push) Successful in 1m16s
quality / go (push) Successful in 2m42s
quality / bird2 (push) Successful in 16s
CD / quality (push) Successful in 5m19s
CD / publish (push) Successful in 7m19s
quality / commitlint (push) Skipped
quality / changes (push) Successful in 9s
quality / docker-check (push) Skipped
quality / openapi (push) Successful in 46s
quality / web (push) Successful in 1m16s
quality / go (push) Successful in 2m42s
quality / bird2 (push) Successful in 16s
CD / quality (push) Successful in 5m19s
CD / publish (push) Successful in 7m19s
- Deleted unused components: `DashboardActivityTimeline`, `DashboardFramePanel`, `DashboardModulesGrid`, `DashboardRecentJobsGrid`, and `DashboardRecentRevisionsGrid` to streamline the dashboard. - Updated `DashboardKpiGrid` to improve KPI display logic, including progress indicators and enhanced badge functionality. - Refactored `DashboardNetworkHealth` to provide better status representation based on loading states and network conditions. - Introduced new properties for KPI cards to support progress tracking and improved visual feedback. This cleanup aims to enhance performance and maintainability of the dashboard while providing a better user experience.
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"evobgp/internal/store"
|
||||
|
||||
"github.com/jackc/pgx/v5"
|
||||
)
|
||||
|
||||
func (p *Postgres) GetDomainResolveCache(fqdn string) (*store.DomainResolveCacheEntry, bool, error) {
|
||||
key := strings.ToLower(strings.TrimSpace(fqdn))
|
||||
if key == "" {
|
||||
return nil, false, nil
|
||||
}
|
||||
ctx := context.Background()
|
||||
var raw []byte
|
||||
var resolvedAt time.Time
|
||||
err := p.pool.QueryRow(ctx, `
|
||||
SELECT addrs_json, resolved_at FROM domain_resolve_cache WHERE fqdn = $1`, key).
|
||||
Scan(&raw, &resolvedAt)
|
||||
if err != nil {
|
||||
if errors.Is(err, pgx.ErrNoRows) {
|
||||
return nil, false, nil
|
||||
}
|
||||
return nil, false, err
|
||||
}
|
||||
var addrs []string
|
||||
if len(raw) > 0 {
|
||||
_ = json.Unmarshal(raw, &addrs)
|
||||
}
|
||||
return &store.DomainResolveCacheEntry{
|
||||
FQDN: key,
|
||||
Addrs: addrs,
|
||||
ResolvedAt: resolvedAt.UTC(),
|
||||
}, true, nil
|
||||
}
|
||||
|
||||
func (p *Postgres) SetDomainResolveCache(fqdn string, addrs []string) error {
|
||||
key := strings.ToLower(strings.TrimSpace(fqdn))
|
||||
if key == "" {
|
||||
return store.ErrInvalidInput
|
||||
}
|
||||
if addrs == nil {
|
||||
addrs = []string{}
|
||||
}
|
||||
raw, err := json.Marshal(addrs)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
ctx := context.Background()
|
||||
_, err = p.pool.Exec(ctx, `
|
||||
INSERT INTO domain_resolve_cache (fqdn, addrs_json, resolved_at)
|
||||
VALUES ($1, $2::jsonb, now())
|
||||
ON CONFLICT (fqdn) DO UPDATE SET
|
||||
addrs_json = EXCLUDED.addrs_json,
|
||||
resolved_at = EXCLUDED.resolved_at`,
|
||||
key, string(raw))
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user