this repo has no description

re-emit labels to "extend" the expiration date

Changed files
-33
cmd
recordcollector
-33
cmd/recordcollector/main.go
···
}
func (h *handler) addLabel(ctx context.Context, did, label string) error {
-
now := time.Now().UTC()
-
-
_, err := h.db.ExecContext(ctx, "delete from label where exp < ?", now.Unix())
-
if err != nil {
-
h.logger.Error("failed to trim expired labels", "err", err)
-
return fmt.Errorf("failed to trim expired labels: %w", err)
-
}
-
-
var uri string
-
checkQuery := "select uri from label where uri = ? and val = ?"
-
err = h.db.QueryRowContext(ctx, checkQuery, did, label).Scan(&uri)
-
if err == sql.ErrNoRows {
-
h.logger.Info("no existing labels found for did, adding", "did", did, "label", label)
-
} else if err != nil {
-
h.logger.Error("failed query for existing labels", "err", err)
-
return fmt.Errorf("failed query for existing labels: %w", err)
-
}
-
-
if uri != "" {
-
h.logger.Info("did already has label, skipping", "did", did, "label", label)
-
return nil
-
}
-
var labelDuration int64 = 24 * 30
input := &toolsozone.ModerationEmitEvent_Input{
CreatedBy: RecordCollectorDid,
···
return fmt.Errorf("failed to add label: %w", err)
}
h.logger.Info("added label", "view", view)
-
-
addQuery := "insert into label (uri, val, cts, exp) values (?, ?, ?, ?)"
-
// we set this to 28 days so a user can "re-up" a label within 48 hours
-
// of its expiration within the appview
-
exp := now.Add(time.Hour * 24 * 28)
-
_, err = h.db.ExecContext(ctx, addQuery, did, label, now.Unix(), exp.Unix())
-
if err != nil {
-
h.logger.Error("failed adding label to table", "err", err)
-
return fmt.Errorf("failed adding label to table: %w", err)
-
}
return nil
}