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