81 lines
1.7 KiB
Dart
81 lines
1.7 KiB
Dart
import 'package:json_annotation/json_annotation.dart';
|
|
import 'package:swagger_dart_code_generator/src/swagger_models/responses/swagger_schema.dart';
|
|
|
|
part 'swagger_response.g2.dart';
|
|
|
|
@JsonSerializable()
|
|
class SwaggerResponse {
|
|
SwaggerResponse({
|
|
this.description = '',
|
|
this.type = '',
|
|
this.schema,
|
|
this.enumValue = const [],
|
|
this.content,
|
|
this.ref = '',
|
|
});
|
|
|
|
@JsonKey(name: '\$ref', defaultValue: '')
|
|
String ref;
|
|
|
|
@JsonKey(name: 'description', defaultValue: '')
|
|
String description;
|
|
|
|
@JsonKey(name: 'type', defaultValue: '')
|
|
String type;
|
|
|
|
@JsonKey(name: 'schema')
|
|
SwaggerSchema? schema;
|
|
|
|
@JsonKey(name: 'enumValue', defaultValue: [])
|
|
List<String> enumValue;
|
|
|
|
@JsonKey(name: 'content', fromJson: _mapContent)
|
|
Content? content;
|
|
|
|
Map<String, dynamic> toJson() => _$SwaggerResponseToJson(this);
|
|
|
|
factory SwaggerResponse.fromJson(Map<String, dynamic> json) =>
|
|
_$SwaggerResponseFromJson(json);
|
|
}
|
|
|
|
Content? _mapContent(Map<String, dynamic>? json) {
|
|
if (json == null || json.isEmpty) {
|
|
return null;
|
|
}
|
|
|
|
final inner = json.values.first as Map<String, dynamic>;
|
|
|
|
return Content.fromJson(inner);
|
|
}
|
|
|
|
@JsonSerializable()
|
|
class Content {
|
|
Content({
|
|
this.items,
|
|
this.ref = '',
|
|
this.responseType = '',
|
|
this.type = '',
|
|
this.schema,
|
|
});
|
|
|
|
@JsonKey(name: 'responseType', defaultValue: '')
|
|
final String responseType;
|
|
|
|
@JsonKey(name: 'type', defaultValue: '')
|
|
final String type;
|
|
|
|
@JsonKey(name: 'items')
|
|
final SwaggerSchema? items;
|
|
|
|
@JsonKey(name: 'schema')
|
|
final SwaggerSchema? schema;
|
|
|
|
@JsonKey(name: 'ref', defaultValue: '')
|
|
final String ref;
|
|
|
|
Map<String, dynamic> toJson() => _$ContentToJson(this);
|
|
|
|
factory Content.fromJson(Map<String, dynamic> json) =>
|
|
_$ContentFromJson(json);
|
|
}
|