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