mirror of
https://github.com/MeshCore-Beacon/beacon-server.git
synced 2026-09-01 16:48:19 +00:00
45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
// Copyright 2026 Beacon Contributors
|
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
package db
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
sqlc "github.com/MeshCore-Beacon/beacon-server/db/sqlc"
|
|
"github.com/google/uuid"
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
)
|
|
|
|
func (s *Store) TouchObservers(ctx context.Context, ids []uuid.UUID, seen []time.Time, counts []int32) error {
|
|
return s.q.TouchObservers(ctx, sqlc.TouchObserversParams{
|
|
Column1: ids,
|
|
Column2: toTimestamptzs(seen),
|
|
Column3: counts,
|
|
})
|
|
}
|
|
|
|
func (s *Store) TouchObserverBrokers(ctx context.Context, ids []uuid.UUID, brokers []string, seen []time.Time) error {
|
|
return s.q.TouchObserverBrokers(ctx, sqlc.TouchObserverBrokersParams{
|
|
Column1: ids,
|
|
Column2: brokers,
|
|
Column3: toTimestamptzs(seen),
|
|
})
|
|
}
|
|
|
|
func (s *Store) TouchPackets(ctx context.Context, hashes [][]byte, heard []time.Time) error {
|
|
return s.q.TouchPackets(ctx, sqlc.TouchPacketsParams{
|
|
Column1: hashes,
|
|
Column2: toTimestamptzs(heard),
|
|
})
|
|
}
|
|
|
|
func toTimestamptzs(ts []time.Time) []pgtype.Timestamptz {
|
|
out := make([]pgtype.Timestamptz, len(ts))
|
|
for i, t := range ts {
|
|
out[i] = pgtype.Timestamptz{Time: t, Valid: true}
|
|
}
|
|
return out
|
|
}
|