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

Method getDatabaseTerminal

coderd/workspaceapps/request.go:438–462  ·  view source on GitHub ↗

getDatabaseTerminal is called by getDatabase for AccessMethodTerminal requests.

(ctx context.Context, db database.Store)

Source from the content-addressed store, hash-verified

436// getDatabaseTerminal is called by getDatabase for AccessMethodTerminal
437// requests.
438func (r Request) getDatabaseTerminal(ctx context.Context, db database.Store) (*databaseRequest, error) {
439 if r.AccessMethod != AccessMethodTerminal {
440 return nil, xerrors.Errorf("invalid access method %q for terminal request", r.AccessMethod)
441 }
442
443 agentID, uuidErr := uuid.Parse(r.AgentNameOrID)
444 if uuidErr != nil {
445 return nil, xerrors.Errorf("invalid agent name or ID %q, must be a UUID for terminal requests: %w", r.AgentNameOrID, uuidErr)
446 }
447
448 var err error
449 aw, err := db.GetWorkspaceAgentAndWorkspaceByID(ctx, agentID)
450 if err != nil {
451 return nil, xerrors.Errorf("get workspace agent %q with workspace: %w", agentID, err)
452 }
453
454 return &databaseRequest{
455 Request: r,
456 UserID: aw.WorkspaceTable.OwnerID,
457 Workspace: aw.WorkspaceTable,
458 Agent: aw.WorkspaceAgent,
459 AppURL: nil,
460 AppSharingLevel: database.AppSharingLevelOwner,
461 }, nil
462}

Callers 1

getDatabaseMethod · 0.95

Calls 3

ParseMethod · 0.65
ErrorfMethod · 0.45

Tested by

no test coverage detected