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

Method auditLogIsResourceDeleted

coderd/audit.go:404–519  ·  view source on GitHub ↗
(ctx context.Context, alog database.GetAuditLogsOffsetRow)

Source from the content-addressed store, hash-verified

402}
403
404func (api *API) auditLogIsResourceDeleted(ctx context.Context, alog database.GetAuditLogsOffsetRow) bool {
405 switch alog.AuditLog.ResourceType {
406 case database.ResourceTypeTemplate:
407 template, err := api.Database.GetTemplateByID(ctx, alog.AuditLog.ResourceID)
408 if err != nil {
409 if xerrors.Is(err, sql.ErrNoRows) {
410 return true
411 }
412 api.Logger.Error(ctx, "unable to fetch template", slog.Error(err))
413 }
414 return template.Deleted
415 case database.ResourceTypeUser:
416 user, err := api.Database.GetUserByID(ctx, alog.AuditLog.ResourceID)
417 if err != nil {
418 if xerrors.Is(err, sql.ErrNoRows) {
419 return true
420 }
421 api.Logger.Error(ctx, "unable to fetch user", slog.Error(err))
422 }
423 return user.Deleted
424 case database.ResourceTypeWorkspace:
425 workspace, err := api.Database.GetWorkspaceByID(ctx, alog.AuditLog.ResourceID)
426 if err != nil {
427 if xerrors.Is(err, sql.ErrNoRows) {
428 return true
429 }
430 api.Logger.Error(ctx, "unable to fetch workspace", slog.Error(err))
431 }
432 return workspace.Deleted
433 case database.ResourceTypeWorkspaceBuild:
434 workspaceBuild, err := api.Database.GetWorkspaceBuildByID(ctx, alog.AuditLog.ResourceID)
435 if err != nil {
436 if xerrors.Is(err, sql.ErrNoRows) {
437 return true
438 }
439 api.Logger.Error(ctx, "unable to fetch workspace build", slog.Error(err))
440 }
441 // We use workspace as a proxy for workspace build here
442 workspace, err := api.Database.GetWorkspaceByID(ctx, workspaceBuild.WorkspaceID)
443 if err != nil {
444 if xerrors.Is(err, sql.ErrNoRows) {
445 return true
446 }
447 api.Logger.Error(ctx, "unable to fetch workspace", slog.Error(err))
448 }
449 return workspace.Deleted
450 case database.ResourceTypeWorkspaceAgent:
451 // We use workspace as a proxy for workspace agents.
452 workspace, err := api.Database.GetWorkspaceByAgentID(ctx, alog.AuditLog.ResourceID)
453 if err != nil {
454 if xerrors.Is(err, sql.ErrNoRows) {
455 return true
456 }
457 api.Logger.Error(ctx, "unable to fetch workspace", slog.Error(err))
458 }
459 return workspace.Deleted
460 case database.ResourceTypeWorkspaceApp:
461 // We use workspace as a proxy for workspace apps.

Callers 2

convertAuditLogMethod · 0.95

Calls 14

IsNotAuthorizedErrorFunction · 0.92
GetTemplateByIDMethod · 0.65
GetUserByIDMethod · 0.65
GetWorkspaceByIDMethod · 0.65
GetWorkspaceBuildByIDMethod · 0.65
GetWorkspaceByAgentIDMethod · 0.65
GetTaskByIDMethod · 0.65
GetChatByIDMethod · 0.65
GetUserSecretByIDMethod · 0.65

Tested by 1