| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package postgres
- import (
- "context"
- "fmt"
- )
- type OpsOverviewCounts struct {
- ManagedAssets int
- Places int
- MapAssets int
- TileReleases int
- CourseSets int
- CourseVariants int
- Events int
- DefaultEvents int
- PublishedEvents int
- ConfigSources int
- Releases int
- RuntimeBindings int
- Presentations int
- ContentBundles int
- OpsUsers int
- }
- func (s *Store) GetOpsOverviewCounts(ctx context.Context) (*OpsOverviewCounts, error) {
- row := s.pool.QueryRow(ctx, `
- SELECT
- (SELECT COUNT(*) FROM managed_assets WHERE status <> 'archived') AS managed_assets,
- (SELECT COUNT(*) FROM places WHERE status <> 'archived') AS places,
- (SELECT COUNT(*) FROM map_assets WHERE status <> 'archived') AS map_assets,
- (SELECT COUNT(*) FROM tile_releases WHERE status <> 'archived') AS tile_releases,
- (SELECT COUNT(*) FROM course_sets WHERE status <> 'archived') AS course_sets,
- (SELECT COUNT(*) FROM course_variants WHERE status <> 'archived') AS course_variants,
- (SELECT COUNT(*) FROM events WHERE status <> 'archived') AS events,
- (SELECT COUNT(*) FROM events WHERE status <> 'archived' AND COALESCE(is_default_experience, false)) AS default_events,
- (SELECT COUNT(*) FROM events WHERE status <> 'archived' AND current_release_id IS NOT NULL) AS published_events,
- (SELECT COUNT(*) FROM event_config_sources) AS config_sources,
- (SELECT COUNT(*) FROM event_releases) AS releases,
- (SELECT COUNT(*) FROM map_runtime_bindings WHERE status <> 'archived') AS runtime_bindings,
- (SELECT COUNT(*) FROM event_presentations WHERE status <> 'archived') AS presentations,
- (SELECT COUNT(*) FROM content_bundles WHERE status <> 'archived') AS content_bundles,
- (SELECT COUNT(*) FROM ops_users WHERE status <> 'deleted') AS ops_users
- `)
- var item OpsOverviewCounts
- if err := row.Scan(
- &item.ManagedAssets,
- &item.Places,
- &item.MapAssets,
- &item.TileReleases,
- &item.CourseSets,
- &item.CourseVariants,
- &item.Events,
- &item.DefaultEvents,
- &item.PublishedEvents,
- &item.ConfigSources,
- &item.Releases,
- &item.RuntimeBindings,
- &item.Presentations,
- &item.ContentBundles,
- &item.OpsUsers,
- ); err != nil {
- return nil, fmt.Errorf("get ops overview counts: %w", err)
- }
- return &item, nil
- }
|