MCPcopy Index your code
hub / github.com/coder/coder / chatFromAutoArchiveRow

Function chatFromAutoArchiveRow

coderd/database/dbpurge/dbpurge.go:421–482  ·  view source on GitHub ↗

chatFromAutoArchiveRow reshapes the query row into a database.Chat for audit.Auditable[database.Chat].

(logger slog.Logger, r database.AutoArchiveInactiveChatsRow)

Source from the content-addressed store, hash-verified

419// chatFromAutoArchiveRow reshapes the query row into a database.Chat for
420// audit.Auditable[database.Chat].
421func chatFromAutoArchiveRow(logger slog.Logger, r database.AutoArchiveInactiveChatsRow) database.Chat {
422 var labels database.StringMap
423 // sqlc's StringMap override doesn't reach CTE-aliased columns, so Labels
424 // arrives as raw JSON bytes. StringMap.Scan handles []byte and nil.
425 if err := labels.Scan([]byte(r.Labels)); err != nil {
426 logger.Warn(context.Background(), "failed to parse chat labels from auto-archive row",
427 slog.F("chat_id", r.ID),
428 slog.F("raw_labels", string(r.Labels)),
429 slog.Error(err),
430 )
431 }
432
433 var userACL database.ChatACL
434 if err := userACL.Scan([]byte(r.UserACL)); err != nil {
435 logger.Warn(context.Background(), "failed to parse chat user ACL from auto-archive row",
436 slog.F("chat_id", r.ID),
437 slog.F("raw_user_acl", string(r.UserACL)),
438 slog.Error(err),
439 )
440 }
441
442 var groupACL database.ChatACL
443 if err := groupACL.Scan([]byte(r.GroupACL)); err != nil {
444 logger.Warn(context.Background(), "failed to parse chat group ACL from auto-archive row",
445 slog.F("chat_id", r.ID),
446 slog.F("raw_group_acl", string(r.GroupACL)),
447 slog.Error(err),
448 )
449 }
450
451 return database.Chat{
452 ID: r.ID,
453 OwnerID: r.OwnerID,
454 OrganizationID: r.OrganizationID,
455 WorkspaceID: r.WorkspaceID,
456 BuildID: r.BuildID,
457 AgentID: r.AgentID,
458 Title: r.Title,
459 Status: r.Status,
460 WorkerID: r.WorkerID,
461 StartedAt: r.StartedAt,
462 HeartbeatAt: r.HeartbeatAt,
463 CreatedAt: r.CreatedAt,
464 UpdatedAt: r.UpdatedAt,
465 ParentChatID: r.ParentChatID,
466 RootChatID: r.RootChatID,
467 LastModelConfigID: r.LastModelConfigID,
468 Archived: r.Archived,
469 LastError: r.LastError,
470 Mode: r.Mode,
471 MCPServerIDs: r.MCPServerIDs,
472 Labels: labels,
473 UserACL: userACL,
474 GroupACL: groupACL,
475 PinOrder: r.PinOrder,
476 LastReadMessageID: r.LastReadMessageID,
477 LastInjectedContext: r.LastInjectedContext,
478 DynamicTools: r.DynamicTools,

Callers 1

Calls 3

ScanMethod · 0.95
ScanMethod · 0.95
ErrorMethod · 0.45

Tested by

no test coverage detected