RouteSpec.fromJson constructor

RouteSpec.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory RouteSpec.fromJson(Map<String, dynamic> json) {
  if (!json.containsKey('backend') && json.containsKey('room_name')) {
    return RouteSpec(
      metadata: RouteMetadata(name: json['domain'] as String, annotations: ((json['annotations'] as Map?) ?? {}).cast<String, String>()),
      domain: json['domain'] as String,
      backend: RouteBackend(room: RouteBackendTarget(name: json['room_name'] as String)),
      paths: [RoutePath(targetPort: json['port'] as Object)],
    );
  }
  final pathList = json['paths'] as List<dynamic>? ?? [];
  return RouteSpec(
    version: json['version'] as String? ?? 'v1',
    kind: json['kind'] as String? ?? 'Route',
    metadata: RouteMetadata.fromJson((json['metadata'] as Map).cast<String, dynamic>()),
    domain: json['domain'] as String,
    backend: RouteBackend.fromJson((json['backend'] as Map).cast<String, dynamic>()),
    paths: pathList.whereType<Map>().map((item) => RoutePath.fromJson(item.cast<String, dynamic>())).toList(),
  );
}