9 changed files with 284 additions and 4 deletions
			
			
		@ -0,0 +1,71 @@ | 
				
			|||||||
 | 
					// ignore_for_file: camel_case_types | 
				
			||||||
 | 
					// ignore_for_file: discarded_futures | 
				
			||||||
 | 
					// ignore_for_file: public_member_api_docs | 
				
			||||||
 | 
					// ignore_for_file: unreachable_switch_case | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:built_value/built_value.dart'; | 
				
			||||||
 | 
					import 'package:built_value/iso_8601_date_time_serializer.dart'; | 
				
			||||||
 | 
					import 'package:built_value/serializer.dart'; | 
				
			||||||
 | 
					import 'package:built_value/standard_json_plugin.dart'; | 
				
			||||||
 | 
					import 'package:dynamite_runtime/built_value.dart'; | 
				
			||||||
 | 
					import 'package:dynamite_runtime/http_client.dart'; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					part 'date_time.openapi.g.dart'; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Client extends DynamiteClient { | 
				
			||||||
 | 
					  Client( | 
				
			||||||
 | 
					    super.baseURL, { | 
				
			||||||
 | 
					    super.baseHeaders, | 
				
			||||||
 | 
					    super.userAgent, | 
				
			||||||
 | 
					    super.httpClient, | 
				
			||||||
 | 
					    super.cookieJar, | 
				
			||||||
 | 
					  }); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Client.fromClient(final DynamiteClient client) | 
				
			||||||
 | 
					      : super( | 
				
			||||||
 | 
					          client.baseURL, | 
				
			||||||
 | 
					          baseHeaders: client.baseHeaders, | 
				
			||||||
 | 
					          httpClient: client.httpClient, | 
				
			||||||
 | 
					          cookieJar: client.cookieJar, | 
				
			||||||
 | 
					          authentications: client.authentications, | 
				
			||||||
 | 
					        ); | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@BuiltValue(instantiable: false) | 
				
			||||||
 | 
					abstract interface class $DateTimeInterface { | 
				
			||||||
 | 
					  DateTime get date; | 
				
			||||||
 | 
					  @BuiltValueField(wireName: 'date-time') | 
				
			||||||
 | 
					  DateTime get dateTime; | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract class $DateTime implements $DateTimeInterface, Built<$DateTime, $DateTimeBuilder> { | 
				
			||||||
 | 
					  factory $DateTime([final void Function($DateTimeBuilder)? b]) = _$$DateTime; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // coverage:ignore-start | 
				
			||||||
 | 
					  const $DateTime._(); | 
				
			||||||
 | 
					  // coverage:ignore-end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // coverage:ignore-start | 
				
			||||||
 | 
					  factory $DateTime.fromJson(final Map<String, dynamic> json) => _jsonSerializers.deserializeWith(serializer, json)!; | 
				
			||||||
 | 
					  // coverage:ignore-end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // coverage:ignore-start | 
				
			||||||
 | 
					  Map<String, dynamic> toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map<String, dynamic>; | 
				
			||||||
 | 
					  // coverage:ignore-end | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  static Serializer<$DateTime> get serializer => _$$dateTimeSerializer; | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// coverage:ignore-start | 
				
			||||||
 | 
					final Serializers _serializers = (Serializers().toBuilder() | 
				
			||||||
 | 
					      ..addBuilderFactory(const FullType($DateTime), $DateTime.new) | 
				
			||||||
 | 
					      ..add($DateTime.serializer)) | 
				
			||||||
 | 
					    .build(); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					final Serializers _jsonSerializers = (_serializers.toBuilder() | 
				
			||||||
 | 
					      ..add(DynamiteDoubleSerializer()) | 
				
			||||||
 | 
					      ..add(Iso8601DateTimeSerializer()) | 
				
			||||||
 | 
					      ..addPlugin(StandardJsonPlugin()) | 
				
			||||||
 | 
					      ..addPlugin(const ContentStringPlugin())) | 
				
			||||||
 | 
					    .build(); | 
				
			||||||
 | 
					// coverage:ignore-end | 
				
			||||||
@ -0,0 +1,154 @@ | 
				
			|||||||
 | 
					// GENERATED CODE - DO NOT MODIFY BY HAND | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					part of 'date_time.openapi.dart'; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ************************************************************************** | 
				
			||||||
 | 
					// BuiltValueGenerator | 
				
			||||||
 | 
					// ************************************************************************** | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Serializer<$DateTime> _$$dateTimeSerializer = _$$DateTimeSerializer(); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class _$$DateTimeSerializer implements StructuredSerializer<$DateTime> { | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  final Iterable<Type> types = const [$DateTime, _$$DateTime]; | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  final String wireName = '\$DateTime'; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  Iterable<Object?> serialize(Serializers serializers, $DateTime object, | 
				
			||||||
 | 
					      {FullType specifiedType = FullType.unspecified}) { | 
				
			||||||
 | 
					    final result = <Object?>[ | 
				
			||||||
 | 
					      'date', | 
				
			||||||
 | 
					      serializers.serialize(object.date, specifiedType: const FullType(DateTime)), | 
				
			||||||
 | 
					      'date-time', | 
				
			||||||
 | 
					      serializers.serialize(object.dateTime, specifiedType: const FullType(DateTime)), | 
				
			||||||
 | 
					    ]; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return result; | 
				
			||||||
 | 
					  } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  $DateTime deserialize(Serializers serializers, Iterable<Object?> serialized, | 
				
			||||||
 | 
					      {FullType specifiedType = FullType.unspecified}) { | 
				
			||||||
 | 
					    final result = $DateTimeBuilder(); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    final iterator = serialized.iterator; | 
				
			||||||
 | 
					    while (iterator.moveNext()) { | 
				
			||||||
 | 
					      final key = iterator.current! as String; | 
				
			||||||
 | 
					      iterator.moveNext(); | 
				
			||||||
 | 
					      final Object? value = iterator.current; | 
				
			||||||
 | 
					      switch (key) { | 
				
			||||||
 | 
					        case 'date': | 
				
			||||||
 | 
					          result.date = serializers.deserialize(value, specifiedType: const FullType(DateTime))! as DateTime; | 
				
			||||||
 | 
					          break; | 
				
			||||||
 | 
					        case 'date-time': | 
				
			||||||
 | 
					          result.dateTime = serializers.deserialize(value, specifiedType: const FullType(DateTime))! as DateTime; | 
				
			||||||
 | 
					          break; | 
				
			||||||
 | 
					      } | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return result.build(); | 
				
			||||||
 | 
					  } | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					abstract mixin class $DateTimeInterfaceBuilder { | 
				
			||||||
 | 
					  void replace($DateTimeInterface other); | 
				
			||||||
 | 
					  void update(void Function($DateTimeInterfaceBuilder) updates); | 
				
			||||||
 | 
					  DateTime? get date; | 
				
			||||||
 | 
					  set date(DateTime? date); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  DateTime? get dateTime; | 
				
			||||||
 | 
					  set dateTime(DateTime? dateTime); | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class _$$DateTime extends $DateTime { | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  final DateTime date; | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  final DateTime dateTime; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  factory _$$DateTime([void Function($DateTimeBuilder)? updates]) => ($DateTimeBuilder()..update(updates))._build(); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _$$DateTime._({required this.date, required this.dateTime}) : super._() { | 
				
			||||||
 | 
					    BuiltValueNullFieldError.checkNotNull(date, r'$DateTime', 'date'); | 
				
			||||||
 | 
					    BuiltValueNullFieldError.checkNotNull(dateTime, r'$DateTime', 'dateTime'); | 
				
			||||||
 | 
					  } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  $DateTime rebuild(void Function($DateTimeBuilder) updates) => (toBuilder()..update(updates)).build(); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  $DateTimeBuilder toBuilder() => $DateTimeBuilder()..replace(this); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  bool operator ==(Object other) { | 
				
			||||||
 | 
					    if (identical(other, this)) return true; | 
				
			||||||
 | 
					    return other is $DateTime && date == other.date && dateTime == other.dateTime; | 
				
			||||||
 | 
					  } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  int get hashCode { | 
				
			||||||
 | 
					    var _$hash = 0; | 
				
			||||||
 | 
					    _$hash = $jc(_$hash, date.hashCode); | 
				
			||||||
 | 
					    _$hash = $jc(_$hash, dateTime.hashCode); | 
				
			||||||
 | 
					    _$hash = $jf(_$hash); | 
				
			||||||
 | 
					    return _$hash; | 
				
			||||||
 | 
					  } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  String toString() { | 
				
			||||||
 | 
					    return (newBuiltValueToStringHelper(r'$DateTime') | 
				
			||||||
 | 
					          ..add('date', date) | 
				
			||||||
 | 
					          ..add('dateTime', dateTime)) | 
				
			||||||
 | 
					        .toString(); | 
				
			||||||
 | 
					  } | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class $DateTimeBuilder implements Builder<$DateTime, $DateTimeBuilder>, $DateTimeInterfaceBuilder { | 
				
			||||||
 | 
					  _$$DateTime? _$v; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  DateTime? _date; | 
				
			||||||
 | 
					  DateTime? get date => _$this._date; | 
				
			||||||
 | 
					  set date(covariant DateTime? date) => _$this._date = date; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  DateTime? _dateTime; | 
				
			||||||
 | 
					  DateTime? get dateTime => _$this._dateTime; | 
				
			||||||
 | 
					  set dateTime(covariant DateTime? dateTime) => _$this._dateTime = dateTime; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  $DateTimeBuilder(); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  $DateTimeBuilder get _$this { | 
				
			||||||
 | 
					    final $v = _$v; | 
				
			||||||
 | 
					    if ($v != null) { | 
				
			||||||
 | 
					      _date = $v.date; | 
				
			||||||
 | 
					      _dateTime = $v.dateTime; | 
				
			||||||
 | 
					      _$v = null; | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					    return this; | 
				
			||||||
 | 
					  } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  void replace(covariant $DateTime other) { | 
				
			||||||
 | 
					    ArgumentError.checkNotNull(other, 'other'); | 
				
			||||||
 | 
					    _$v = other as _$$DateTime; | 
				
			||||||
 | 
					  } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  void update(void Function($DateTimeBuilder)? updates) { | 
				
			||||||
 | 
					    if (updates != null) updates(this); | 
				
			||||||
 | 
					  } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  $DateTime build() => _build(); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _$$DateTime _build() { | 
				
			||||||
 | 
					    final _$result = _$v ?? | 
				
			||||||
 | 
					        _$$DateTime._( | 
				
			||||||
 | 
					            date: BuiltValueNullFieldError.checkNotNull(date, r'$DateTime', 'date'), | 
				
			||||||
 | 
					            dateTime: BuiltValueNullFieldError.checkNotNull(dateTime, r'$DateTime', 'dateTime')); | 
				
			||||||
 | 
					    replace(_$result); | 
				
			||||||
 | 
					    return _$result; | 
				
			||||||
 | 
					  } | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ignore_for_file: deprecated_member_use_from_same_package,type=lint | 
				
			||||||
@ -0,0 +1,26 @@ | 
				
			|||||||
 | 
					{ | 
				
			||||||
 | 
					    "openapi": "3.1.0", | 
				
			||||||
 | 
					    "info": { | 
				
			||||||
 | 
					        "title": "nested ofs test", | 
				
			||||||
 | 
					        "version": "0.0.1" | 
				
			||||||
 | 
					    }, | 
				
			||||||
 | 
					    "components": { | 
				
			||||||
 | 
					        "schemas": { | 
				
			||||||
 | 
					            "DateTime": { | 
				
			||||||
 | 
					                "type": "object", | 
				
			||||||
 | 
					                "properties": { | 
				
			||||||
 | 
					                    "date": { | 
				
			||||||
 | 
					                        "type": "string", | 
				
			||||||
 | 
					                        "format": "date" | 
				
			||||||
 | 
					                    }, | 
				
			||||||
 | 
					                    "date-time": { | 
				
			||||||
 | 
					                        "type": "string", | 
				
			||||||
 | 
					                        "format": "date-time" | 
				
			||||||
 | 
					                    } | 
				
			||||||
 | 
					                } | 
				
			||||||
 | 
					            } | 
				
			||||||
 | 
					        } | 
				
			||||||
 | 
					    }, | 
				
			||||||
 | 
					    "paths": {}, | 
				
			||||||
 | 
					    "tags": [] | 
				
			||||||
 | 
					} | 
				
			||||||
@ -0,0 +1,20 @@ | 
				
			|||||||
 | 
					import 'package:dynamite_end_to_end_test/date_time.openapi.dart'; | 
				
			||||||
 | 
					import 'package:test/test.dart'; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void main() { | 
				
			||||||
 | 
					  test(r'$DateTime', () { | 
				
			||||||
 | 
					    final object = $DateTime( | 
				
			||||||
 | 
					      (final b) => b | 
				
			||||||
 | 
					        ..date = DateTime(2023, 10, 23).toUtc() | 
				
			||||||
 | 
					        ..dateTime = DateTime(2023, 10, 23, 16, 45, 20).toUtc(), | 
				
			||||||
 | 
					    ); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    final json = { | 
				
			||||||
 | 
					      'date': '2023-10-22T22:00:00.000Z', | 
				
			||||||
 | 
					      'date-time': '2023-10-23T14:45:20.000Z', | 
				
			||||||
 | 
					    }; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    expect(object.toJson(), equals(json)); | 
				
			||||||
 | 
					    expect($DateTime.fromJson(json), equals(object)); | 
				
			||||||
 | 
					  }); | 
				
			||||||
 | 
					} | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue