feat(code_push_protocol): GetReleaseArtifactsResponse (#632)
This commit is contained in:
+1
@@ -0,0 +1 @@
|
||||
export 'get_release_artifacts_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_artifacts_response.g.dart';
|
||||
|
||||
/// {@template get_release_artifacts_response}
|
||||
/// The response body for GET /api/v1/release/:release/artifacts
|
||||
/// {@endtemplate}
|
||||
@JsonSerializable()
|
||||
class GetReleaseArtifactsResponse {
|
||||
/// {@macro get_release_artifacts_response}
|
||||
const GetReleaseArtifactsResponse({required this.artifacts});
|
||||
|
||||
/// Converts a Map<String, dynamic> to a [GetReleaseArtifactsResponse].
|
||||
factory GetReleaseArtifactsResponse.fromJson(Map<String, dynamic> json) =>
|
||||
_$GetReleaseArtifactsResponseFromJson(json);
|
||||
|
||||
/// Converts a [GetReleaseArtifactsResponse] to a Map<String, dynamic>.
|
||||
Json toJson() => _$GetReleaseArtifactsResponseToJson(this);
|
||||
|
||||
/// The artifacts for the release.
|
||||
final List<ReleaseArtifact> artifacts;
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
// 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_artifacts_response.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
GetReleaseArtifactsResponse _$GetReleaseArtifactsResponseFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
$checkedCreate(
|
||||
'GetReleaseArtifactsResponse',
|
||||
json,
|
||||
($checkedConvert) {
|
||||
final val = GetReleaseArtifactsResponse(
|
||||
artifacts: $checkedConvert(
|
||||
'artifacts',
|
||||
(v) => (v as List<dynamic>)
|
||||
.map((e) =>
|
||||
ReleaseArtifact.fromJson(e as Map<String, dynamic>))
|
||||
.toList()),
|
||||
);
|
||||
return val;
|
||||
},
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$GetReleaseArtifactsResponseToJson(
|
||||
GetReleaseArtifactsResponse instance) =>
|
||||
<String, dynamic>{
|
||||
'artifacts': instance.artifacts.map((e) => e.toJson()).toList(),
|
||||
};
|
||||
@@ -9,4 +9,5 @@ export 'create_payment_link/create_payment_link.dart';
|
||||
export 'create_release/create_release.dart';
|
||||
export 'create_release_artifact/create_release_artifact.dart';
|
||||
export 'create_user/create_user.dart';
|
||||
export 'get_release_artifacts/get_release_artifacts.dart';
|
||||
export 'promote_patch/promote_patch.dart';
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
import 'package:shorebird_code_push_protocol/shorebird_code_push_protocol.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
group(GetReleaseArtifactsResponse, () {
|
||||
test('can be (de)serialized', () {
|
||||
const response = GetReleaseArtifactsResponse(
|
||||
artifacts: [
|
||||
ReleaseArtifact(
|
||||
id: 42,
|
||||
releaseId: 1,
|
||||
arch: 'aarch64',
|
||||
platform: 'android',
|
||||
hash: '#',
|
||||
size: 1337,
|
||||
url: 'https://example.com',
|
||||
),
|
||||
],
|
||||
);
|
||||
expect(
|
||||
GetReleaseArtifactsResponse.fromJson(response.toJson()).toJson(),
|
||||
equals(response.toJson()),
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user