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

Function Apps

coderd/database/db2sdk/db2sdk.go:669–713  ·  view source on GitHub ↗
(dbApps []database.WorkspaceApp, statuses []database.WorkspaceAppStatus, agent database.WorkspaceAgent, ownerName string, workspace database.WorkspaceTable)

Source from the content-addressed store, hash-verified

667}
668
669func Apps(dbApps []database.WorkspaceApp, statuses []database.WorkspaceAppStatus, agent database.WorkspaceAgent, ownerName string, workspace database.WorkspaceTable) []codersdk.WorkspaceApp {
670 sort.Slice(dbApps, func(i, j int) bool {
671 if dbApps[i].DisplayOrder != dbApps[j].DisplayOrder {
672 return dbApps[i].DisplayOrder < dbApps[j].DisplayOrder
673 }
674 if dbApps[i].DisplayName != dbApps[j].DisplayName {
675 return dbApps[i].DisplayName < dbApps[j].DisplayName
676 }
677 return dbApps[i].Slug < dbApps[j].Slug
678 })
679
680 statusesByAppID := map[uuid.UUID][]database.WorkspaceAppStatus{}
681 for _, status := range statuses {
682 statusesByAppID[status.AppID] = append(statusesByAppID[status.AppID], status)
683 }
684
685 apps := make([]codersdk.WorkspaceApp, 0)
686 for _, dbApp := range dbApps {
687 statuses := statusesByAppID[dbApp.ID]
688 apps = append(apps, codersdk.WorkspaceApp{
689 ID: dbApp.ID,
690 URL: dbApp.Url.String,
691 External: dbApp.External,
692 Slug: dbApp.Slug,
693 DisplayName: dbApp.DisplayName,
694 Command: dbApp.Command.String,
695 Icon: dbApp.Icon,
696 Subdomain: dbApp.Subdomain,
697 SubdomainName: AppSubdomain(dbApp, agent.Name, workspace.Name, ownerName),
698 SharingLevel: codersdk.WorkspaceAppSharingLevel(dbApp.SharingLevel),
699 Healthcheck: codersdk.Healthcheck{
700 URL: dbApp.HealthcheckUrl,
701 Interval: dbApp.HealthcheckInterval,
702 Threshold: dbApp.HealthcheckThreshold,
703 },
704 Health: codersdk.WorkspaceAppHealth(dbApp.Health),
705 Group: dbApp.DisplayGroup.String,
706 Hidden: dbApp.Hidden,
707 OpenIn: codersdk.WorkspaceAppOpenIn(dbApp.OpenIn),
708 Tooltip: dbApp.Tooltip,
709 Statuses: WorkspaceAppStatuses(statuses),
710 })
711 }
712 return apps
713}
714
715func WorkspaceAppStatuses(statuses []database.WorkspaceAppStatus) []codersdk.WorkspaceAppStatus {
716 return slice.List(statuses, WorkspaceAppStatus)

Callers 3

workspaceAgentMethod · 0.92
convertProvisionedAppsFunction · 0.92
convertWorkspaceBuildMethod · 0.92

Calls 5

WorkspaceAppSharingLevelTypeAlias · 0.92
WorkspaceAppHealthTypeAlias · 0.92
WorkspaceAppOpenInTypeAlias · 0.92
AppSubdomainFunction · 0.85
WorkspaceAppStatusesFunction · 0.85

Tested by

no test coverage detected