-33
cmd/recordcollector/main.go
-33
cmd/recordcollector/main.go
···
183
183
}
184
184
185
185
func (h *handler) addLabel(ctx context.Context, did, label string) error {
186
-
now := time.Now().UTC()
187
-
188
-
_, err := h.db.ExecContext(ctx, "delete from label where exp < ?", now.Unix())
189
-
if err != nil {
190
-
h.logger.Error("failed to trim expired labels", "err", err)
191
-
return fmt.Errorf("failed to trim expired labels: %w", err)
192
-
}
193
-
194
-
var uri string
195
-
checkQuery := "select uri from label where uri = ? and val = ?"
196
-
err = h.db.QueryRowContext(ctx, checkQuery, did, label).Scan(&uri)
197
-
if err == sql.ErrNoRows {
198
-
h.logger.Info("no existing labels found for did, adding", "did", did, "label", label)
199
-
} else if err != nil {
200
-
h.logger.Error("failed query for existing labels", "err", err)
201
-
return fmt.Errorf("failed query for existing labels: %w", err)
202
-
}
203
-
204
-
if uri != "" {
205
-
h.logger.Info("did already has label, skipping", "did", did, "label", label)
206
-
return nil
207
-
}
208
-
209
186
var labelDuration int64 = 24 * 30
210
187
input := &toolsozone.ModerationEmitEvent_Input{
211
188
CreatedBy: RecordCollectorDid,
···
229
206
return fmt.Errorf("failed to add label: %w", err)
230
207
}
231
208
h.logger.Info("added label", "view", view)
232
-
233
-
addQuery := "insert into label (uri, val, cts, exp) values (?, ?, ?, ?)"
234
-
// we set this to 28 days so a user can "re-up" a label within 48 hours
235
-
// of its expiration within the appview
236
-
exp := now.Add(time.Hour * 24 * 28)
237
-
_, err = h.db.ExecContext(ctx, addQuery, did, label, now.Unix(), exp.Unix())
238
-
if err != nil {
239
-
h.logger.Error("failed adding label to table", "err", err)
240
-
return fmt.Errorf("failed adding label to table: %w", err)
241
-
}
242
209
243
210
return nil
244
211
}