From c31c0300caa31e35b7e9886b765b1404b5e5dc2c Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Mon, 15 May 2023 08:29:44 -0700 Subject: [PATCH] feat(code_push_protocol): add `CreateAppCollaboratorRequest` (#491) --- .../create_app_collaborator.dart | 1 + .../create_app_collaborator_request.dart | 22 ++++++++++++++ .../create_app_collaborator_request.g.dart | 29 +++++++++++++++++++ .../lib/src/messages/messages.dart | 1 + .../create_app_collaborator_request_test.dart | 14 +++++++++ 5 files changed, 67 insertions(+) create mode 100644 packages/shorebird_code_push_protocol/lib/src/messages/create_app_collaborator/create_app_collaborator.dart create mode 100644 packages/shorebird_code_push_protocol/lib/src/messages/create_app_collaborator/create_app_collaborator_request.dart create mode 100644 packages/shorebird_code_push_protocol/lib/src/messages/create_app_collaborator/create_app_collaborator_request.g.dart create mode 100644 packages/shorebird_code_push_protocol/test/src/messages/create_app_collaborator/create_app_collaborator_request_test.dart diff --git a/packages/shorebird_code_push_protocol/lib/src/messages/create_app_collaborator/create_app_collaborator.dart b/packages/shorebird_code_push_protocol/lib/src/messages/create_app_collaborator/create_app_collaborator.dart new file mode 100644 index 00000000..a2ec90be --- /dev/null +++ b/packages/shorebird_code_push_protocol/lib/src/messages/create_app_collaborator/create_app_collaborator.dart @@ -0,0 +1 @@ +export 'create_app_collaborator_request.dart'; diff --git a/packages/shorebird_code_push_protocol/lib/src/messages/create_app_collaborator/create_app_collaborator_request.dart b/packages/shorebird_code_push_protocol/lib/src/messages/create_app_collaborator/create_app_collaborator_request.dart new file mode 100644 index 00000000..065fcfa4 --- /dev/null +++ b/packages/shorebird_code_push_protocol/lib/src/messages/create_app_collaborator/create_app_collaborator_request.dart @@ -0,0 +1,22 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'create_app_collaborator_request.g.dart'; + +/// {@template create_app_collaborator_request} +/// The request body for POST /api/v1/apps//collaborators +/// {@endtemplate} +@JsonSerializable() +class CreateAppCollaboratorRequest { + /// {@macro create_app_collaborator_request} + const CreateAppCollaboratorRequest({required this.userId}); + + /// Converts a Map to a [CreateAppCollaboratorRequest] + factory CreateAppCollaboratorRequest.fromJson(Map json) => + _$CreateAppCollaboratorRequestFromJson(json); + + /// Converts a [CreateAppCollaboratorRequest] to a Map + Map toJson() => _$CreateAppCollaboratorRequestToJson(this); + + /// The unique identifier of the collaborator to add. + final int userId; +} diff --git a/packages/shorebird_code_push_protocol/lib/src/messages/create_app_collaborator/create_app_collaborator_request.g.dart b/packages/shorebird_code_push_protocol/lib/src/messages/create_app_collaborator/create_app_collaborator_request.g.dart new file mode 100644 index 00000000..e060cb95 --- /dev/null +++ b/packages/shorebird_code_push_protocol/lib/src/messages/create_app_collaborator/create_app_collaborator_request.g.dart @@ -0,0 +1,29 @@ +// 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 'create_app_collaborator_request.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +CreateAppCollaboratorRequest _$CreateAppCollaboratorRequestFromJson( + Map json) => + $checkedCreate( + 'CreateAppCollaboratorRequest', + json, + ($checkedConvert) { + final val = CreateAppCollaboratorRequest( + userId: $checkedConvert('user_id', (v) => v as int), + ); + return val; + }, + fieldKeyMap: const {'userId': 'user_id'}, + ); + +Map _$CreateAppCollaboratorRequestToJson( + CreateAppCollaboratorRequest instance) => + { + 'user_id': instance.userId, + }; diff --git a/packages/shorebird_code_push_protocol/lib/src/messages/messages.dart b/packages/shorebird_code_push_protocol/lib/src/messages/messages.dart index dbc0aa6d..d058ad7b 100644 --- a/packages/shorebird_code_push_protocol/lib/src/messages/messages.dart +++ b/packages/shorebird_code_push_protocol/lib/src/messages/messages.dart @@ -1,6 +1,7 @@ export 'cancel_subscription/cancel_subscription_response.dart'; export 'check_for_patches/check_for_patches.dart'; export 'create_app/create_app.dart'; +export 'create_app_collaborator/create_app_collaborator.dart'; export 'create_artifact/create_artifact.dart'; export 'create_channel/create_channel.dart'; export 'create_patch/create_patch.dart'; diff --git a/packages/shorebird_code_push_protocol/test/src/messages/create_app_collaborator/create_app_collaborator_request_test.dart b/packages/shorebird_code_push_protocol/test/src/messages/create_app_collaborator/create_app_collaborator_request_test.dart new file mode 100644 index 00000000..d3a98569 --- /dev/null +++ b/packages/shorebird_code_push_protocol/test/src/messages/create_app_collaborator/create_app_collaborator_request_test.dart @@ -0,0 +1,14 @@ +import 'package:shorebird_code_push_protocol/shorebird_code_push_protocol.dart'; +import 'package:test/test.dart'; + +void main() { + group(CreateAppCollaboratorRequest, () { + test('can be (de)serialized', () { + const request = CreateAppCollaboratorRequest(userId: 42); + expect( + CreateAppCollaboratorRequest.fromJson(request.toJson()).toJson(), + equals(request.toJson()), + ); + }); + }); +}