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

Function AppFromProto

codersdk/agentsdk/convert.go:249–284  ·  view source on GitHub ↗
(protoApp *proto.WorkspaceApp)

Source from the content-addressed store, hash-verified

247}
248
249func AppFromProto(protoApp *proto.WorkspaceApp) (codersdk.WorkspaceApp, error) {
250 id, err := uuid.FromBytes(protoApp.Id)
251 if err != nil {
252 return codersdk.WorkspaceApp{}, xerrors.Errorf("parse id: %w", err)
253 }
254
255 sharingLevel := codersdk.WorkspaceAppSharingLevel(strings.ToLower(protoApp.SharingLevel.String()))
256 if _, ok := codersdk.MapWorkspaceAppSharingLevels[sharingLevel]; !ok {
257 return codersdk.WorkspaceApp{}, xerrors.Errorf("unknown app sharing level: %v (%q)", protoApp.SharingLevel, protoApp.SharingLevel.String())
258 }
259
260 health := codersdk.WorkspaceAppHealth(strings.ToLower(protoApp.Health.String()))
261 if _, ok := codersdk.MapWorkspaceAppHealths[health]; !ok {
262 return codersdk.WorkspaceApp{}, xerrors.Errorf("unknown app health: %v (%q)", protoApp.Health, protoApp.Health.String())
263 }
264
265 return codersdk.WorkspaceApp{
266 ID: id,
267 URL: protoApp.Url,
268 External: protoApp.External,
269 Slug: protoApp.Slug,
270 DisplayName: protoApp.DisplayName,
271 Command: protoApp.Command,
272 Icon: protoApp.Icon,
273 Subdomain: protoApp.Subdomain,
274 SubdomainName: protoApp.SubdomainName,
275 SharingLevel: sharingLevel,
276 Healthcheck: codersdk.Healthcheck{
277 URL: protoApp.Healthcheck.Url,
278 Interval: int32(protoApp.Healthcheck.Interval.AsDuration().Seconds()),
279 Threshold: protoApp.Healthcheck.Threshold,
280 },
281 Health: health,
282 Hidden: protoApp.Hidden,
283 }, nil
284}
285
286func ProtoFromApp(a codersdk.WorkspaceApp) (*proto.WorkspaceApp, error) {
287 sharingLevel, ok := proto.WorkspaceApp_SharingLevel_value[strings.ToUpper(string(a.SharingLevel))]

Callers 1

AppsFromProtoFunction · 0.85

Calls 4

WorkspaceAppSharingLevelTypeAlias · 0.92
WorkspaceAppHealthTypeAlias · 0.92
ErrorfMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected