feat: sync durable moderation and appeals
This commit is contained in:
parent
e1a95c7318
commit
9f467f4be7
140 changed files with 13730 additions and 316 deletions
31
internal/app/clienttelemetry/service.go
Normal file
31
internal/app/clienttelemetry/service.go
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
package clienttelemetry
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"telesrv/internal/domain"
|
||||
"telesrv/internal/store"
|
||||
)
|
||||
|
||||
type Service struct {
|
||||
store store.ClientTelemetryStore
|
||||
}
|
||||
|
||||
func NewService(telemetryStore store.ClientTelemetryStore) *Service {
|
||||
return &Service{store: telemetryStore}
|
||||
}
|
||||
|
||||
func (s *Service) Record(ctx context.Context, userID int64, kind domain.ClientTelemetryKind, peer domain.Peer, subjectIDs []int64, payload any, createdAt time.Time) (domain.ClientTelemetryEvent, bool, error) {
|
||||
if s == nil || s.store == nil {
|
||||
return domain.ClientTelemetryEvent{}, false, fmt.Errorf("client telemetry store is not configured")
|
||||
}
|
||||
event, err := domain.NewClientTelemetryEvent(
|
||||
userID, kind, peer, subjectIDs, payload, createdAt,
|
||||
)
|
||||
if err != nil {
|
||||
return domain.ClientTelemetryEvent{}, false, err
|
||||
}
|
||||
return s.store.CreateClientTelemetry(ctx, event)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue