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

Method convertTemplate

coderd/templates.go:984–1048  ·  view source on GitHub ↗
(
	template database.Template,
)

Source from the content-addressed store, hash-verified

982}
983
984func (api *API) convertTemplate(
985 template database.Template,
986) codersdk.Template {
987 templateAccessControl := (*(api.Options.AccessControlStore.Load())).GetTemplateAccessControl(template)
988
989 owners := 0
990 o, ok := api.metricsCache.TemplateWorkspaceOwners(template.ID)
991 if ok {
992 owners = o
993 }
994
995 buildTimeStats := api.metricsCache.TemplateBuildTimeStats(template.ID)
996
997 autostopRequirementWeeks := template.AutostopRequirementWeeks
998 if autostopRequirementWeeks < 1 {
999 autostopRequirementWeeks = 1
1000 }
1001
1002 portSharer := *(api.PortSharer.Load())
1003 maxPortShareLevel := portSharer.ConvertMaxLevel(template.MaxPortSharingLevel)
1004
1005 return codersdk.Template{
1006 ID: template.ID,
1007 CreatedAt: template.CreatedAt,
1008 UpdatedAt: template.UpdatedAt,
1009 OrganizationID: template.OrganizationID,
1010 OrganizationName: template.OrganizationName,
1011 OrganizationDisplayName: template.OrganizationDisplayName,
1012 OrganizationIcon: template.OrganizationIcon,
1013 Name: template.Name,
1014 DisplayName: template.DisplayName,
1015 Provisioner: codersdk.ProvisionerType(template.Provisioner),
1016 ActiveVersionID: template.ActiveVersionID,
1017 ActiveUserCount: owners,
1018 BuildTimeStats: buildTimeStats,
1019 Description: template.Description,
1020 Icon: template.Icon,
1021 DefaultTTLMillis: time.Duration(template.DefaultTTL).Milliseconds(),
1022 ActivityBumpMillis: time.Duration(template.ActivityBump).Milliseconds(),
1023 CreatedByID: template.CreatedBy,
1024 CreatedByName: template.CreatedByUsername,
1025 AllowUserAutostart: template.AllowUserAutostart,
1026 AllowUserAutostop: template.AllowUserAutostop,
1027 AllowUserCancelWorkspaceJobs: template.AllowUserCancelWorkspaceJobs,
1028 FailureTTLMillis: time.Duration(template.FailureTTL).Milliseconds(),
1029 TimeTilDormantMillis: time.Duration(template.TimeTilDormant).Milliseconds(),
1030 TimeTilDormantAutoDeleteMillis: time.Duration(template.TimeTilDormantAutoDelete).Milliseconds(),
1031 AutostopRequirement: codersdk.TemplateAutostopRequirement{
1032 DaysOfWeek: codersdk.BitmapToWeekdays(uint8(template.AutostopRequirementDaysOfWeek)), // #nosec G115 - Safe conversion as AutostopRequirementDaysOfWeek is a 7-bit bitmap
1033 Weeks: autostopRequirementWeeks,
1034 },
1035 AutostartRequirement: codersdk.TemplateAutostartRequirement{
1036 DaysOfWeek: codersdk.BitmapToWeekdays(template.AutostartAllowedDays()),
1037 },
1038 // These values depend on entitlements and come from the templateAccessControl
1039 RequireActiveVersion: templateAccessControl.RequireActiveVersion,
1040 Deprecated: templateAccessControl.IsDeprecated(),
1041 DeprecationMessage: templateAccessControl.Deprecated,

Callers 5

templateMethod · 0.95
patchTemplateMetaMethod · 0.95
convertTemplatesMethod · 0.95

Calls 11

ProvisionerTypeTypeAlias · 0.92
BitmapToWeekdaysFunction · 0.92
CORSBehaviorTypeAlias · 0.92
DurationMethod · 0.80
AutostartAllowedDaysMethod · 0.80
IsDeprecatedMethod · 0.80
ConvertMaxLevelMethod · 0.65
LoadMethod · 0.45

Tested by

no test coverage detected