feat(code_push_protocol): add GetReleaseResponse type (#3368)
This commit is contained in:
@@ -0,0 +1 @@
|
||||
export 'get_release_response.dart';
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:shorebird_code_push_protocol/shorebird_code_push_protocol.dart';
|
||||
|
||||
part 'get_release_response.g.dart';
|
||||
|
||||
/// {@template get_release_response}
|
||||
/// The response body for GET /api/v1/apps/:id/releases/:releaseId
|
||||
/// {@endtemplate}
|
||||
@JsonSerializable()
|
||||
class GetReleaseResponse {
|
||||
/// {@macro get_release_response}
|
||||
const GetReleaseResponse({required this.release});
|
||||
|
||||
/// Converts a `Map<String, dynamic>` to a [GetReleaseResponse].
|
||||
factory GetReleaseResponse.fromJson(Map<String, dynamic> json) =>
|
||||
_$GetReleaseResponseFromJson(json);
|
||||
|
||||
/// Converts a [GetReleaseResponse] to a `Map<String, dynamic>`.
|
||||
Map<String, dynamic> toJson() => _$GetReleaseResponseToJson(this);
|
||||
|
||||
/// The requested release.
|
||||
final Release release;
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
// ignore_for_file: implicit_dynamic_parameter, require_trailing_commas, cast_nullable_to_non_nullable, lines_longer_than_80_chars
|
||||
|
||||
part of 'get_release_response.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
GetReleaseResponse _$GetReleaseResponseFromJson(Map<String, dynamic> json) =>
|
||||
$checkedCreate('GetReleaseResponse', json, ($checkedConvert) {
|
||||
final val = GetReleaseResponse(
|
||||
release: $checkedConvert(
|
||||
'release',
|
||||
(v) => Release.fromJson(v as Map<String, dynamic>),
|
||||
),
|
||||
);
|
||||
return val;
|
||||
});
|
||||
|
||||
Map<String, dynamic> _$GetReleaseResponseToJson(GetReleaseResponse instance) =>
|
||||
<String, dynamic>{'release': instance.release.toJson()};
|
||||
@@ -10,6 +10,7 @@ export 'get_apps/get_apps.dart';
|
||||
export 'get_organization_apps/get_organization_apps.dart';
|
||||
export 'get_organization_users/get_organization_users.dart';
|
||||
export 'get_organizations/get_organizations.dart';
|
||||
export 'get_release/get_release.dart';
|
||||
export 'get_release_artifacts/get_release_artifacts.dart';
|
||||
export 'get_release_patches/get_release_patches.dart';
|
||||
export 'get_releases/get_releases.dart';
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
import 'package:shorebird_code_push_protocol/shorebird_code_push_protocol.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
group(GetReleaseResponse, () {
|
||||
test('can be (de)serialized', () {
|
||||
final response = GetReleaseResponse(
|
||||
release: Release(
|
||||
id: 0,
|
||||
appId: 'test-app-id',
|
||||
version: '1.0.0',
|
||||
flutterRevision: 'flutter-revision',
|
||||
flutterVersion: '3.22.0',
|
||||
displayName: 'v1.0.0',
|
||||
platformStatuses: const {
|
||||
ReleasePlatform.ios: ReleaseStatus.draft,
|
||||
ReleasePlatform.android: ReleaseStatus.active,
|
||||
},
|
||||
createdAt: DateTime(2022),
|
||||
updatedAt: DateTime(2023),
|
||||
),
|
||||
);
|
||||
expect(
|
||||
GetReleaseResponse.fromJson(response.toJson()).toJson(),
|
||||
equals(response.toJson()),
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user