(protoApp *proto.WorkspaceApp)
| 247 | } |
| 248 | |
| 249 | func 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 | |
| 286 | func ProtoFromApp(a codersdk.WorkspaceApp) (*proto.WorkspaceApp, error) { |
| 287 | sharingLevel, ok := proto.WorkspaceApp_SharingLevel_value[strings.ToUpper(string(a.SharingLevel))] |
no test coverage detected