diff --git a/lib/graphql/gh.dart b/lib/graphql/gh.dart index d9f0e3e..bf00adf 100644 --- a/lib/graphql/gh.dart +++ b/lib/graphql/gh.dart @@ -3481,6 +3481,8 @@ class GhUserRepositoryOwner with EquatableMixin { return _$GhUserRepositoryOwnerFromJson(json); } + String id; + String login; String avatarUrl; @@ -3491,7 +3493,7 @@ class GhUserRepositoryOwner with EquatableMixin { String resolveType; @override - List get props => [login, avatarUrl, url, resolveType]; + List get props => [id, login, avatarUrl, url, resolveType]; Map toJson() { switch (resolveType) { case 'User': @@ -3556,6 +3558,9 @@ class GhUserUser extends GhUserAuditEntryActor @JsonKey(name: '__typename') String resolveType; + @override + String id; + @override String login; @@ -3583,6 +3588,7 @@ class GhUserUser extends GhUserAuditEntryActor viewerCanFollow, viewerIsFollowing, resolveType, + id, login, avatarUrl, url @@ -4068,6 +4074,9 @@ class GhUserOrganization extends GhUserAuditEntryActor @JsonKey(name: '__typename') String resolveType; + @override + String id; + @override String login; @@ -4089,6 +4098,7 @@ class GhUserOrganization extends GhUserAuditEntryActor pinnableItems, membersWithRole, resolveType, + id, login, avatarUrl, url @@ -4189,6 +4199,12 @@ class GhUserQuery extends GraphQLQuery { arguments: [], directives: [], selectionSet: null), + FieldNode( + name: NameNode(value: 'id'), + alias: null, + arguments: [], + directives: [], + selectionSet: null), FieldNode( name: NameNode(value: 'login'), alias: null, @@ -6339,3 +6355,815 @@ class GhCommitsQuery extends GraphQLQuery { @override GhCommits parse(Map json) => GhCommits.fromJson(json); } + +@JsonSerializable(explicitToJson: true) +class GhAddStar with EquatableMixin { + GhAddStar(); + + factory GhAddStar.fromJson(Map json) => + _$GhAddStarFromJson(json); + + GhAddStarAddStarPayload addStar; + + @override + List get props => [addStar]; + Map toJson() => _$GhAddStarToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhAddStarAddStarPayload with EquatableMixin { + GhAddStarAddStarPayload(); + + factory GhAddStarAddStarPayload.fromJson(Map json) => + _$GhAddStarAddStarPayloadFromJson(json); + + GhAddStarStarrable starrable; + + @override + List get props => [starrable]; + Map toJson() => _$GhAddStarAddStarPayloadToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhAddStarStarrable with EquatableMixin { + GhAddStarStarrable(); + + factory GhAddStarStarrable.fromJson(Map json) => + _$GhAddStarStarrableFromJson(json); + + bool viewerHasStarred; + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [viewerHasStarred, resolveType]; + Map toJson() => _$GhAddStarStarrableToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhAddStarArguments extends JsonSerializable with EquatableMixin { + GhAddStarArguments({this.id}); + + factory GhAddStarArguments.fromJson(Map json) => + _$GhAddStarArgumentsFromJson(json); + + final String id; + + @override + List get props => [id]; + Map toJson() => _$GhAddStarArgumentsToJson(this); +} + +class GhAddStarQuery extends GraphQLQuery { + GhAddStarQuery({this.variables}); + + @override + final DocumentNode document = DocumentNode(definitions: [ + OperationDefinitionNode( + type: OperationType.mutation, + name: NameNode(value: 'GhAddStar'), + variableDefinitions: [ + VariableDefinitionNode( + variable: VariableNode(name: NameNode(value: 'id')), + type: NamedTypeNode(name: NameNode(value: 'ID'), isNonNull: true), + defaultValue: DefaultValueNode(value: null), + directives: []) + ], + directives: [], + selectionSet: SelectionSetNode(selections: [ + FieldNode( + name: NameNode(value: 'addStar'), + alias: null, + arguments: [ + ArgumentNode( + name: NameNode(value: 'input'), + value: ObjectValueNode(fields: [ + ObjectFieldNode( + name: NameNode(value: 'starrableId'), + value: VariableNode(name: NameNode(value: 'id'))) + ])) + ], + directives: [], + selectionSet: SelectionSetNode(selections: [ + FieldNode( + name: NameNode(value: 'starrable'), + alias: null, + arguments: [], + directives: [], + selectionSet: SelectionSetNode(selections: [ + FieldNode( + name: NameNode(value: 'viewerHasStarred'), + alias: null, + arguments: [], + directives: [], + selectionSet: null) + ])) + ])) + ])) + ]); + + @override + final String operationName = 'GhAddStar'; + + @override + final GhAddStarArguments variables; + + @override + List get props => [document, operationName, variables]; + @override + GhAddStar parse(Map json) => GhAddStar.fromJson(json); +} + +@JsonSerializable(explicitToJson: true) +class GhRemoveStar with EquatableMixin { + GhRemoveStar(); + + factory GhRemoveStar.fromJson(Map json) => + _$GhRemoveStarFromJson(json); + + GhRemoveStarRemoveStarPayload removeStar; + + @override + List get props => [removeStar]; + Map toJson() => _$GhRemoveStarToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhRemoveStarRemoveStarPayload with EquatableMixin { + GhRemoveStarRemoveStarPayload(); + + factory GhRemoveStarRemoveStarPayload.fromJson(Map json) => + _$GhRemoveStarRemoveStarPayloadFromJson(json); + + GhRemoveStarStarrable starrable; + + @override + List get props => [starrable]; + Map toJson() => _$GhRemoveStarRemoveStarPayloadToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhRemoveStarStarrable with EquatableMixin { + GhRemoveStarStarrable(); + + factory GhRemoveStarStarrable.fromJson(Map json) => + _$GhRemoveStarStarrableFromJson(json); + + bool viewerHasStarred; + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [viewerHasStarred, resolveType]; + Map toJson() => _$GhRemoveStarStarrableToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhRemoveStarArguments extends JsonSerializable with EquatableMixin { + GhRemoveStarArguments({this.id}); + + factory GhRemoveStarArguments.fromJson(Map json) => + _$GhRemoveStarArgumentsFromJson(json); + + final String id; + + @override + List get props => [id]; + Map toJson() => _$GhRemoveStarArgumentsToJson(this); +} + +class GhRemoveStarQuery + extends GraphQLQuery { + GhRemoveStarQuery({this.variables}); + + @override + final DocumentNode document = DocumentNode(definitions: [ + OperationDefinitionNode( + type: OperationType.mutation, + name: NameNode(value: 'GhRemoveStar'), + variableDefinitions: [ + VariableDefinitionNode( + variable: VariableNode(name: NameNode(value: 'id')), + type: NamedTypeNode(name: NameNode(value: 'ID'), isNonNull: true), + defaultValue: DefaultValueNode(value: null), + directives: []) + ], + directives: [], + selectionSet: SelectionSetNode(selections: [ + FieldNode( + name: NameNode(value: 'removeStar'), + alias: null, + arguments: [ + ArgumentNode( + name: NameNode(value: 'input'), + value: ObjectValueNode(fields: [ + ObjectFieldNode( + name: NameNode(value: 'starrableId'), + value: VariableNode(name: NameNode(value: 'id'))) + ])) + ], + directives: [], + selectionSet: SelectionSetNode(selections: [ + FieldNode( + name: NameNode(value: 'starrable'), + alias: null, + arguments: [], + directives: [], + selectionSet: SelectionSetNode(selections: [ + FieldNode( + name: NameNode(value: 'viewerHasStarred'), + alias: null, + arguments: [], + directives: [], + selectionSet: null) + ])) + ])) + ])) + ]); + + @override + final String operationName = 'GhRemoveStar'; + + @override + final GhRemoveStarArguments variables; + + @override + List get props => [document, operationName, variables]; + @override + GhRemoveStar parse(Map json) => GhRemoveStar.fromJson(json); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUser with EquatableMixin { + GhFollowUser(); + + factory GhFollowUser.fromJson(Map json) => + _$GhFollowUserFromJson(json); + + GhFollowUserFollowUserPayload followUser; + + @override + List get props => [followUser]; + Map toJson() => _$GhFollowUserToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUserFollowUserPayload with EquatableMixin { + GhFollowUserFollowUserPayload(); + + factory GhFollowUserFollowUserPayload.fromJson(Map json) => + _$GhFollowUserFollowUserPayloadFromJson(json); + + GhFollowUserUser user; + + @override + List get props => [user]; + Map toJson() => _$GhFollowUserFollowUserPayloadToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUserUser extends GhFollowUserAuditEntryActor + with EquatableMixin + implements + GhFollowUserNode, + GhFollowUserActor, + GhFollowUserRegistryPackageOwner, + GhFollowUserRegistryPackageSearch, + GhFollowUserProjectOwner, + GhFollowUserRepositoryOwner, + GhFollowUserUniformResourceLocatable, + GhFollowUserProfileOwner, + GhFollowUserSponsorable { + GhFollowUserUser(); + + factory GhFollowUserUser.fromJson(Map json) => + _$GhFollowUserUserFromJson(json); + + bool viewerIsFollowing; + + @override + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [viewerIsFollowing, resolveType]; + Map toJson() => _$GhFollowUserUserToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUserAuditEntryActor with EquatableMixin { + GhFollowUserAuditEntryActor(); + + factory GhFollowUserAuditEntryActor.fromJson(Map json) => + _$GhFollowUserAuditEntryActorFromJson(json); + + @override + List get props => []; + Map toJson() => _$GhFollowUserAuditEntryActorToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUserNode with EquatableMixin { + GhFollowUserNode(); + + factory GhFollowUserNode.fromJson(Map json) => + _$GhFollowUserNodeFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => _$GhFollowUserNodeToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUserActor with EquatableMixin { + GhFollowUserActor(); + + factory GhFollowUserActor.fromJson(Map json) => + _$GhFollowUserActorFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => _$GhFollowUserActorToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUserRegistryPackageOwner with EquatableMixin { + GhFollowUserRegistryPackageOwner(); + + factory GhFollowUserRegistryPackageOwner.fromJson( + Map json) => + _$GhFollowUserRegistryPackageOwnerFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => + _$GhFollowUserRegistryPackageOwnerToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUserRegistryPackageSearch with EquatableMixin { + GhFollowUserRegistryPackageSearch(); + + factory GhFollowUserRegistryPackageSearch.fromJson( + Map json) => + _$GhFollowUserRegistryPackageSearchFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => + _$GhFollowUserRegistryPackageSearchToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUserProjectOwner with EquatableMixin { + GhFollowUserProjectOwner(); + + factory GhFollowUserProjectOwner.fromJson(Map json) => + _$GhFollowUserProjectOwnerFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => _$GhFollowUserProjectOwnerToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUserRepositoryOwner with EquatableMixin { + GhFollowUserRepositoryOwner(); + + factory GhFollowUserRepositoryOwner.fromJson(Map json) => + _$GhFollowUserRepositoryOwnerFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => _$GhFollowUserRepositoryOwnerToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUserUniformResourceLocatable with EquatableMixin { + GhFollowUserUniformResourceLocatable(); + + factory GhFollowUserUniformResourceLocatable.fromJson( + Map json) => + _$GhFollowUserUniformResourceLocatableFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => + _$GhFollowUserUniformResourceLocatableToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUserProfileOwner with EquatableMixin { + GhFollowUserProfileOwner(); + + factory GhFollowUserProfileOwner.fromJson(Map json) => + _$GhFollowUserProfileOwnerFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => _$GhFollowUserProfileOwnerToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUserSponsorable with EquatableMixin { + GhFollowUserSponsorable(); + + factory GhFollowUserSponsorable.fromJson(Map json) => + _$GhFollowUserSponsorableFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => _$GhFollowUserSponsorableToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhFollowUserArguments extends JsonSerializable with EquatableMixin { + GhFollowUserArguments({this.id}); + + factory GhFollowUserArguments.fromJson(Map json) => + _$GhFollowUserArgumentsFromJson(json); + + final String id; + + @override + List get props => [id]; + Map toJson() => _$GhFollowUserArgumentsToJson(this); +} + +class GhFollowUserQuery + extends GraphQLQuery { + GhFollowUserQuery({this.variables}); + + @override + final DocumentNode document = DocumentNode(definitions: [ + OperationDefinitionNode( + type: OperationType.mutation, + name: NameNode(value: 'GhFollowUser'), + variableDefinitions: [ + VariableDefinitionNode( + variable: VariableNode(name: NameNode(value: 'id')), + type: NamedTypeNode(name: NameNode(value: 'ID'), isNonNull: true), + defaultValue: DefaultValueNode(value: null), + directives: []) + ], + directives: [], + selectionSet: SelectionSetNode(selections: [ + FieldNode( + name: NameNode(value: 'followUser'), + alias: null, + arguments: [ + ArgumentNode( + name: NameNode(value: 'input'), + value: ObjectValueNode(fields: [ + ObjectFieldNode( + name: NameNode(value: 'userId'), + value: VariableNode(name: NameNode(value: 'id'))) + ])) + ], + directives: [], + selectionSet: SelectionSetNode(selections: [ + FieldNode( + name: NameNode(value: 'user'), + alias: null, + arguments: [], + directives: [], + selectionSet: SelectionSetNode(selections: [ + FieldNode( + name: NameNode(value: 'viewerIsFollowing'), + alias: null, + arguments: [], + directives: [], + selectionSet: null) + ])) + ])) + ])) + ]); + + @override + final String operationName = 'GhFollowUser'; + + @override + final GhFollowUserArguments variables; + + @override + List get props => [document, operationName, variables]; + @override + GhFollowUser parse(Map json) => GhFollowUser.fromJson(json); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUser with EquatableMixin { + GhUnfollowUser(); + + factory GhUnfollowUser.fromJson(Map json) => + _$GhUnfollowUserFromJson(json); + + GhUnfollowUserUnfollowUserPayload unfollowUser; + + @override + List get props => [unfollowUser]; + Map toJson() => _$GhUnfollowUserToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUserUnfollowUserPayload with EquatableMixin { + GhUnfollowUserUnfollowUserPayload(); + + factory GhUnfollowUserUnfollowUserPayload.fromJson( + Map json) => + _$GhUnfollowUserUnfollowUserPayloadFromJson(json); + + GhUnfollowUserUser user; + + @override + List get props => [user]; + Map toJson() => + _$GhUnfollowUserUnfollowUserPayloadToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUserUser extends GhUnfollowUserAuditEntryActor + with EquatableMixin + implements + GhUnfollowUserNode, + GhUnfollowUserActor, + GhUnfollowUserRegistryPackageOwner, + GhUnfollowUserRegistryPackageSearch, + GhUnfollowUserProjectOwner, + GhUnfollowUserRepositoryOwner, + GhUnfollowUserUniformResourceLocatable, + GhUnfollowUserProfileOwner, + GhUnfollowUserSponsorable { + GhUnfollowUserUser(); + + factory GhUnfollowUserUser.fromJson(Map json) => + _$GhUnfollowUserUserFromJson(json); + + bool viewerIsFollowing; + + @override + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [viewerIsFollowing, resolveType]; + Map toJson() => _$GhUnfollowUserUserToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUserAuditEntryActor with EquatableMixin { + GhUnfollowUserAuditEntryActor(); + + factory GhUnfollowUserAuditEntryActor.fromJson(Map json) => + _$GhUnfollowUserAuditEntryActorFromJson(json); + + @override + List get props => []; + Map toJson() => _$GhUnfollowUserAuditEntryActorToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUserNode with EquatableMixin { + GhUnfollowUserNode(); + + factory GhUnfollowUserNode.fromJson(Map json) => + _$GhUnfollowUserNodeFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => _$GhUnfollowUserNodeToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUserActor with EquatableMixin { + GhUnfollowUserActor(); + + factory GhUnfollowUserActor.fromJson(Map json) => + _$GhUnfollowUserActorFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => _$GhUnfollowUserActorToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUserRegistryPackageOwner with EquatableMixin { + GhUnfollowUserRegistryPackageOwner(); + + factory GhUnfollowUserRegistryPackageOwner.fromJson( + Map json) => + _$GhUnfollowUserRegistryPackageOwnerFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => + _$GhUnfollowUserRegistryPackageOwnerToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUserRegistryPackageSearch with EquatableMixin { + GhUnfollowUserRegistryPackageSearch(); + + factory GhUnfollowUserRegistryPackageSearch.fromJson( + Map json) => + _$GhUnfollowUserRegistryPackageSearchFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => + _$GhUnfollowUserRegistryPackageSearchToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUserProjectOwner with EquatableMixin { + GhUnfollowUserProjectOwner(); + + factory GhUnfollowUserProjectOwner.fromJson(Map json) => + _$GhUnfollowUserProjectOwnerFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => _$GhUnfollowUserProjectOwnerToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUserRepositoryOwner with EquatableMixin { + GhUnfollowUserRepositoryOwner(); + + factory GhUnfollowUserRepositoryOwner.fromJson(Map json) => + _$GhUnfollowUserRepositoryOwnerFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => _$GhUnfollowUserRepositoryOwnerToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUserUniformResourceLocatable with EquatableMixin { + GhUnfollowUserUniformResourceLocatable(); + + factory GhUnfollowUserUniformResourceLocatable.fromJson( + Map json) => + _$GhUnfollowUserUniformResourceLocatableFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => + _$GhUnfollowUserUniformResourceLocatableToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUserProfileOwner with EquatableMixin { + GhUnfollowUserProfileOwner(); + + factory GhUnfollowUserProfileOwner.fromJson(Map json) => + _$GhUnfollowUserProfileOwnerFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => _$GhUnfollowUserProfileOwnerToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUserSponsorable with EquatableMixin { + GhUnfollowUserSponsorable(); + + factory GhUnfollowUserSponsorable.fromJson(Map json) => + _$GhUnfollowUserSponsorableFromJson(json); + + @JsonKey(name: '__typename') + String resolveType; + + @override + List get props => [resolveType]; + Map toJson() => _$GhUnfollowUserSponsorableToJson(this); +} + +@JsonSerializable(explicitToJson: true) +class GhUnfollowUserArguments extends JsonSerializable with EquatableMixin { + GhUnfollowUserArguments({this.id}); + + factory GhUnfollowUserArguments.fromJson(Map json) => + _$GhUnfollowUserArgumentsFromJson(json); + + final String id; + + @override + List get props => [id]; + Map toJson() => _$GhUnfollowUserArgumentsToJson(this); +} + +class GhUnfollowUserQuery + extends GraphQLQuery { + GhUnfollowUserQuery({this.variables}); + + @override + final DocumentNode document = DocumentNode(definitions: [ + OperationDefinitionNode( + type: OperationType.mutation, + name: NameNode(value: 'GhUnfollowUser'), + variableDefinitions: [ + VariableDefinitionNode( + variable: VariableNode(name: NameNode(value: 'id')), + type: NamedTypeNode(name: NameNode(value: 'ID'), isNonNull: true), + defaultValue: DefaultValueNode(value: null), + directives: []) + ], + directives: [], + selectionSet: SelectionSetNode(selections: [ + FieldNode( + name: NameNode(value: 'unfollowUser'), + alias: null, + arguments: [ + ArgumentNode( + name: NameNode(value: 'input'), + value: ObjectValueNode(fields: [ + ObjectFieldNode( + name: NameNode(value: 'userId'), + value: VariableNode(name: NameNode(value: 'id'))) + ])) + ], + directives: [], + selectionSet: SelectionSetNode(selections: [ + FieldNode( + name: NameNode(value: 'user'), + alias: null, + arguments: [], + directives: [], + selectionSet: SelectionSetNode(selections: [ + FieldNode( + name: NameNode(value: 'viewerIsFollowing'), + alias: null, + arguments: [], + directives: [], + selectionSet: null) + ])) + ])) + ])) + ]); + + @override + final String operationName = 'GhUnfollowUser'; + + @override + final GhUnfollowUserArguments variables; + + @override + List get props => [document, operationName, variables]; + @override + GhUnfollowUser parse(Map json) => + GhUnfollowUser.fromJson(json); +} diff --git a/lib/graphql/gh.g.dart b/lib/graphql/gh.g.dart index fc2686b..afe91b0 100644 --- a/lib/graphql/gh.g.dart +++ b/lib/graphql/gh.g.dart @@ -1342,6 +1342,7 @@ Map _$GhUserToJson(GhUser instance) => { GhUserRepositoryOwner _$GhUserRepositoryOwnerFromJson( Map json) { return GhUserRepositoryOwner() + ..id = json['id'] as String ..login = json['login'] as String ..avatarUrl = json['avatarUrl'] as String ..url = json['url'] as String @@ -1351,6 +1352,7 @@ GhUserRepositoryOwner _$GhUserRepositoryOwnerFromJson( Map _$GhUserRepositoryOwnerToJson( GhUserRepositoryOwner instance) => { + 'id': instance.id, 'login': instance.login, 'avatarUrl': instance.avatarUrl, 'url': instance.url, @@ -1395,6 +1397,7 @@ GhUserUser _$GhUserUserFromJson(Map json) { ..viewerCanFollow = json['viewerCanFollow'] as bool ..viewerIsFollowing = json['viewerIsFollowing'] as bool ..resolveType = json['__typename'] as String + ..id = json['id'] as String ..login = json['login'] as String ..avatarUrl = json['avatarUrl'] as String ..url = json['url'] as String; @@ -1418,6 +1421,7 @@ Map _$GhUserUserToJson(GhUserUser instance) => 'viewerCanFollow': instance.viewerCanFollow, 'viewerIsFollowing': instance.viewerIsFollowing, '__typename': instance.resolveType, + 'id': instance.id, 'login': instance.login, 'avatarUrl': instance.avatarUrl, 'url': instance.url, @@ -1796,6 +1800,7 @@ GhUserOrganization _$GhUserOrganizationFromJson(Map json) { : GhUserOrganizationMemberConnection.fromJson( json['membersWithRole'] as Map) ..resolveType = json['__typename'] as String + ..id = json['id'] as String ..login = json['login'] as String ..avatarUrl = json['avatarUrl'] as String ..url = json['url'] as String; @@ -1813,6 +1818,7 @@ Map _$GhUserOrganizationToJson(GhUserOrganization instance) => 'pinnableItems': instance.pinnableItems?.toJson(), 'membersWithRole': instance.membersWithRole?.toJson(), '__typename': instance.resolveType, + 'id': instance.id, 'login': instance.login, 'avatarUrl': instance.avatarUrl, 'url': instance.url, @@ -2419,3 +2425,433 @@ Map _$GhCommitsArgumentsToJson(GhCommitsArguments instance) => 'hasRef': instance.hasRef, 'after': instance.after, }; + +GhAddStar _$GhAddStarFromJson(Map json) { + return GhAddStar() + ..addStar = json['addStar'] == null + ? null + : GhAddStarAddStarPayload.fromJson( + json['addStar'] as Map); +} + +Map _$GhAddStarToJson(GhAddStar instance) => { + 'addStar': instance.addStar?.toJson(), + }; + +GhAddStarAddStarPayload _$GhAddStarAddStarPayloadFromJson( + Map json) { + return GhAddStarAddStarPayload() + ..starrable = json['starrable'] == null + ? null + : GhAddStarStarrable.fromJson( + json['starrable'] as Map); +} + +Map _$GhAddStarAddStarPayloadToJson( + GhAddStarAddStarPayload instance) => + { + 'starrable': instance.starrable?.toJson(), + }; + +GhAddStarStarrable _$GhAddStarStarrableFromJson(Map json) { + return GhAddStarStarrable() + ..viewerHasStarred = json['viewerHasStarred'] as bool + ..resolveType = json['__typename'] as String; +} + +Map _$GhAddStarStarrableToJson(GhAddStarStarrable instance) => + { + 'viewerHasStarred': instance.viewerHasStarred, + '__typename': instance.resolveType, + }; + +GhAddStarArguments _$GhAddStarArgumentsFromJson(Map json) { + return GhAddStarArguments( + id: json['id'] as String, + ); +} + +Map _$GhAddStarArgumentsToJson(GhAddStarArguments instance) => + { + 'id': instance.id, + }; + +GhRemoveStar _$GhRemoveStarFromJson(Map json) { + return GhRemoveStar() + ..removeStar = json['removeStar'] == null + ? null + : GhRemoveStarRemoveStarPayload.fromJson( + json['removeStar'] as Map); +} + +Map _$GhRemoveStarToJson(GhRemoveStar instance) => + { + 'removeStar': instance.removeStar?.toJson(), + }; + +GhRemoveStarRemoveStarPayload _$GhRemoveStarRemoveStarPayloadFromJson( + Map json) { + return GhRemoveStarRemoveStarPayload() + ..starrable = json['starrable'] == null + ? null + : GhRemoveStarStarrable.fromJson( + json['starrable'] as Map); +} + +Map _$GhRemoveStarRemoveStarPayloadToJson( + GhRemoveStarRemoveStarPayload instance) => + { + 'starrable': instance.starrable?.toJson(), + }; + +GhRemoveStarStarrable _$GhRemoveStarStarrableFromJson( + Map json) { + return GhRemoveStarStarrable() + ..viewerHasStarred = json['viewerHasStarred'] as bool + ..resolveType = json['__typename'] as String; +} + +Map _$GhRemoveStarStarrableToJson( + GhRemoveStarStarrable instance) => + { + 'viewerHasStarred': instance.viewerHasStarred, + '__typename': instance.resolveType, + }; + +GhRemoveStarArguments _$GhRemoveStarArgumentsFromJson( + Map json) { + return GhRemoveStarArguments( + id: json['id'] as String, + ); +} + +Map _$GhRemoveStarArgumentsToJson( + GhRemoveStarArguments instance) => + { + 'id': instance.id, + }; + +GhFollowUser _$GhFollowUserFromJson(Map json) { + return GhFollowUser() + ..followUser = json['followUser'] == null + ? null + : GhFollowUserFollowUserPayload.fromJson( + json['followUser'] as Map); +} + +Map _$GhFollowUserToJson(GhFollowUser instance) => + { + 'followUser': instance.followUser?.toJson(), + }; + +GhFollowUserFollowUserPayload _$GhFollowUserFollowUserPayloadFromJson( + Map json) { + return GhFollowUserFollowUserPayload() + ..user = json['user'] == null + ? null + : GhFollowUserUser.fromJson(json['user'] as Map); +} + +Map _$GhFollowUserFollowUserPayloadToJson( + GhFollowUserFollowUserPayload instance) => + { + 'user': instance.user?.toJson(), + }; + +GhFollowUserUser _$GhFollowUserUserFromJson(Map json) { + return GhFollowUserUser() + ..viewerIsFollowing = json['viewerIsFollowing'] as bool + ..resolveType = json['__typename'] as String; +} + +Map _$GhFollowUserUserToJson(GhFollowUserUser instance) => + { + 'viewerIsFollowing': instance.viewerIsFollowing, + '__typename': instance.resolveType, + }; + +GhFollowUserAuditEntryActor _$GhFollowUserAuditEntryActorFromJson( + Map json) { + return GhFollowUserAuditEntryActor(); +} + +Map _$GhFollowUserAuditEntryActorToJson( + GhFollowUserAuditEntryActor instance) => + {}; + +GhFollowUserNode _$GhFollowUserNodeFromJson(Map json) { + return GhFollowUserNode()..resolveType = json['__typename'] as String; +} + +Map _$GhFollowUserNodeToJson(GhFollowUserNode instance) => + { + '__typename': instance.resolveType, + }; + +GhFollowUserActor _$GhFollowUserActorFromJson(Map json) { + return GhFollowUserActor()..resolveType = json['__typename'] as String; +} + +Map _$GhFollowUserActorToJson(GhFollowUserActor instance) => + { + '__typename': instance.resolveType, + }; + +GhFollowUserRegistryPackageOwner _$GhFollowUserRegistryPackageOwnerFromJson( + Map json) { + return GhFollowUserRegistryPackageOwner() + ..resolveType = json['__typename'] as String; +} + +Map _$GhFollowUserRegistryPackageOwnerToJson( + GhFollowUserRegistryPackageOwner instance) => + { + '__typename': instance.resolveType, + }; + +GhFollowUserRegistryPackageSearch _$GhFollowUserRegistryPackageSearchFromJson( + Map json) { + return GhFollowUserRegistryPackageSearch() + ..resolveType = json['__typename'] as String; +} + +Map _$GhFollowUserRegistryPackageSearchToJson( + GhFollowUserRegistryPackageSearch instance) => + { + '__typename': instance.resolveType, + }; + +GhFollowUserProjectOwner _$GhFollowUserProjectOwnerFromJson( + Map json) { + return GhFollowUserProjectOwner()..resolveType = json['__typename'] as String; +} + +Map _$GhFollowUserProjectOwnerToJson( + GhFollowUserProjectOwner instance) => + { + '__typename': instance.resolveType, + }; + +GhFollowUserRepositoryOwner _$GhFollowUserRepositoryOwnerFromJson( + Map json) { + return GhFollowUserRepositoryOwner() + ..resolveType = json['__typename'] as String; +} + +Map _$GhFollowUserRepositoryOwnerToJson( + GhFollowUserRepositoryOwner instance) => + { + '__typename': instance.resolveType, + }; + +GhFollowUserUniformResourceLocatable + _$GhFollowUserUniformResourceLocatableFromJson(Map json) { + return GhFollowUserUniformResourceLocatable() + ..resolveType = json['__typename'] as String; +} + +Map _$GhFollowUserUniformResourceLocatableToJson( + GhFollowUserUniformResourceLocatable instance) => + { + '__typename': instance.resolveType, + }; + +GhFollowUserProfileOwner _$GhFollowUserProfileOwnerFromJson( + Map json) { + return GhFollowUserProfileOwner()..resolveType = json['__typename'] as String; +} + +Map _$GhFollowUserProfileOwnerToJson( + GhFollowUserProfileOwner instance) => + { + '__typename': instance.resolveType, + }; + +GhFollowUserSponsorable _$GhFollowUserSponsorableFromJson( + Map json) { + return GhFollowUserSponsorable()..resolveType = json['__typename'] as String; +} + +Map _$GhFollowUserSponsorableToJson( + GhFollowUserSponsorable instance) => + { + '__typename': instance.resolveType, + }; + +GhFollowUserArguments _$GhFollowUserArgumentsFromJson( + Map json) { + return GhFollowUserArguments( + id: json['id'] as String, + ); +} + +Map _$GhFollowUserArgumentsToJson( + GhFollowUserArguments instance) => + { + 'id': instance.id, + }; + +GhUnfollowUser _$GhUnfollowUserFromJson(Map json) { + return GhUnfollowUser() + ..unfollowUser = json['unfollowUser'] == null + ? null + : GhUnfollowUserUnfollowUserPayload.fromJson( + json['unfollowUser'] as Map); +} + +Map _$GhUnfollowUserToJson(GhUnfollowUser instance) => + { + 'unfollowUser': instance.unfollowUser?.toJson(), + }; + +GhUnfollowUserUnfollowUserPayload _$GhUnfollowUserUnfollowUserPayloadFromJson( + Map json) { + return GhUnfollowUserUnfollowUserPayload() + ..user = json['user'] == null + ? null + : GhUnfollowUserUser.fromJson(json['user'] as Map); +} + +Map _$GhUnfollowUserUnfollowUserPayloadToJson( + GhUnfollowUserUnfollowUserPayload instance) => + { + 'user': instance.user?.toJson(), + }; + +GhUnfollowUserUser _$GhUnfollowUserUserFromJson(Map json) { + return GhUnfollowUserUser() + ..viewerIsFollowing = json['viewerIsFollowing'] as bool + ..resolveType = json['__typename'] as String; +} + +Map _$GhUnfollowUserUserToJson(GhUnfollowUserUser instance) => + { + 'viewerIsFollowing': instance.viewerIsFollowing, + '__typename': instance.resolveType, + }; + +GhUnfollowUserAuditEntryActor _$GhUnfollowUserAuditEntryActorFromJson( + Map json) { + return GhUnfollowUserAuditEntryActor(); +} + +Map _$GhUnfollowUserAuditEntryActorToJson( + GhUnfollowUserAuditEntryActor instance) => + {}; + +GhUnfollowUserNode _$GhUnfollowUserNodeFromJson(Map json) { + return GhUnfollowUserNode()..resolveType = json['__typename'] as String; +} + +Map _$GhUnfollowUserNodeToJson(GhUnfollowUserNode instance) => + { + '__typename': instance.resolveType, + }; + +GhUnfollowUserActor _$GhUnfollowUserActorFromJson(Map json) { + return GhUnfollowUserActor()..resolveType = json['__typename'] as String; +} + +Map _$GhUnfollowUserActorToJson( + GhUnfollowUserActor instance) => + { + '__typename': instance.resolveType, + }; + +GhUnfollowUserRegistryPackageOwner _$GhUnfollowUserRegistryPackageOwnerFromJson( + Map json) { + return GhUnfollowUserRegistryPackageOwner() + ..resolveType = json['__typename'] as String; +} + +Map _$GhUnfollowUserRegistryPackageOwnerToJson( + GhUnfollowUserRegistryPackageOwner instance) => + { + '__typename': instance.resolveType, + }; + +GhUnfollowUserRegistryPackageSearch + _$GhUnfollowUserRegistryPackageSearchFromJson(Map json) { + return GhUnfollowUserRegistryPackageSearch() + ..resolveType = json['__typename'] as String; +} + +Map _$GhUnfollowUserRegistryPackageSearchToJson( + GhUnfollowUserRegistryPackageSearch instance) => + { + '__typename': instance.resolveType, + }; + +GhUnfollowUserProjectOwner _$GhUnfollowUserProjectOwnerFromJson( + Map json) { + return GhUnfollowUserProjectOwner() + ..resolveType = json['__typename'] as String; +} + +Map _$GhUnfollowUserProjectOwnerToJson( + GhUnfollowUserProjectOwner instance) => + { + '__typename': instance.resolveType, + }; + +GhUnfollowUserRepositoryOwner _$GhUnfollowUserRepositoryOwnerFromJson( + Map json) { + return GhUnfollowUserRepositoryOwner() + ..resolveType = json['__typename'] as String; +} + +Map _$GhUnfollowUserRepositoryOwnerToJson( + GhUnfollowUserRepositoryOwner instance) => + { + '__typename': instance.resolveType, + }; + +GhUnfollowUserUniformResourceLocatable + _$GhUnfollowUserUniformResourceLocatableFromJson( + Map json) { + return GhUnfollowUserUniformResourceLocatable() + ..resolveType = json['__typename'] as String; +} + +Map _$GhUnfollowUserUniformResourceLocatableToJson( + GhUnfollowUserUniformResourceLocatable instance) => + { + '__typename': instance.resolveType, + }; + +GhUnfollowUserProfileOwner _$GhUnfollowUserProfileOwnerFromJson( + Map json) { + return GhUnfollowUserProfileOwner() + ..resolveType = json['__typename'] as String; +} + +Map _$GhUnfollowUserProfileOwnerToJson( + GhUnfollowUserProfileOwner instance) => + { + '__typename': instance.resolveType, + }; + +GhUnfollowUserSponsorable _$GhUnfollowUserSponsorableFromJson( + Map json) { + return GhUnfollowUserSponsorable() + ..resolveType = json['__typename'] as String; +} + +Map _$GhUnfollowUserSponsorableToJson( + GhUnfollowUserSponsorable instance) => + { + '__typename': instance.resolveType, + }; + +GhUnfollowUserArguments _$GhUnfollowUserArgumentsFromJson( + Map json) { + return GhUnfollowUserArguments( + id: json['id'] as String, + ); +} + +Map _$GhUnfollowUserArgumentsToJson( + GhUnfollowUserArguments instance) => + { + 'id': instance.id, + }; diff --git a/lib/graphql/gh_add_star.graphql b/lib/graphql/gh_add_star.graphql new file mode 100644 index 0000000..7449930 --- /dev/null +++ b/lib/graphql/gh_add_star.graphql @@ -0,0 +1,7 @@ +mutation GhAddStar($id: ID!) { + addStar(input: { starrableId: $id }) { + starrable { + viewerHasStarred + } + } +} diff --git a/lib/graphql/gh_follow_user.graphql b/lib/graphql/gh_follow_user.graphql new file mode 100644 index 0000000..8dc1bdc --- /dev/null +++ b/lib/graphql/gh_follow_user.graphql @@ -0,0 +1,7 @@ +mutation GhFollowUser($id: ID!) { + followUser(input: { userId: $id }) { + user { + viewerIsFollowing + } + } +} diff --git a/lib/graphql/gh_remove_star.graphql b/lib/graphql/gh_remove_star.graphql new file mode 100644 index 0000000..ee85903 --- /dev/null +++ b/lib/graphql/gh_remove_star.graphql @@ -0,0 +1,7 @@ +mutation GhRemoveStar($id: ID!) { + removeStar(input: { starrableId: $id }) { + starrable { + viewerHasStarred + } + } +} diff --git a/lib/graphql/gh_unfollow_user.graphql b/lib/graphql/gh_unfollow_user.graphql new file mode 100644 index 0000000..d4674cb --- /dev/null +++ b/lib/graphql/gh_unfollow_user.graphql @@ -0,0 +1,7 @@ +mutation GhUnfollowUser($id: ID!) { + unfollowUser(input: { userId: $id }) { + user { + viewerIsFollowing + } + } +} diff --git a/lib/graphql/gh_user.graphql b/lib/graphql/gh_user.graphql index b4506ec..f2a6f0e 100644 --- a/lib/graphql/gh_user.graphql +++ b/lib/graphql/gh_user.graphql @@ -1,6 +1,7 @@ query GhUser($login: String!, $isViewer: Boolean!) { repositoryOwner(login: $login) @skip(if: $isViewer) { __typename + id login avatarUrl url diff --git a/lib/screens/repository.dart b/lib/screens/repository.dart index e860340..61bcbd4 100644 --- a/lib/screens/repository.dart +++ b/lib/screens/repository.dart @@ -118,6 +118,7 @@ class RepositoryScreen extends StatelessWidget { 1; final theme = Provider.of(context); + final auth = Provider.of(context); final license = repo.licenseInfo?.spdxId ?? repo.licenseInfo?.name; return Column( @@ -147,15 +148,21 @@ class RepositoryScreen extends StatelessWidget { CupertinoButton( onPressed: () async { if (repo.viewerHasStarred) { - await Provider.of(context) - .deleteWithCredentials( - '/user/starred/$owner/$name'); - repo.viewerHasStarred = false; + final res = await auth.gqlClient.execute( + GhRemoveStarQuery( + variables: GhRemoveStarArguments(id: repo.id), + ), + ); + repo.viewerHasStarred = + res.data.removeStar.starrable.viewerHasStarred; } else { - await Provider.of(context) - .putWithCredentials( - '/user/starred/$owner/$name'); - repo.viewerHasStarred = true; + final res = await auth.gqlClient.execute( + GhAddStarQuery( + variables: GhAddStarArguments(id: repo.id), + ), + ); + repo.viewerHasStarred = + res.data.addStar.starrable.viewerHasStarred; } setState(() {}); }, diff --git a/lib/screens/user.dart b/lib/screens/user.dart index 1df1f14..98b1763 100644 --- a/lib/screens/user.dart +++ b/lib/screens/user.dart @@ -358,15 +358,15 @@ class UserScreen extends StatelessWidget { @override Widget build(BuildContext context) { + final auth = Provider.of(context); return RefreshStatefulScaffold( fetchData: () async { - final data = await Provider.of(context).gqlClient.execute( - GhUserQuery( - variables: GhUserArguments(login: login, isViewer: isViewer))); + final data = await auth.gqlClient.execute(GhUserQuery( + variables: GhUserArguments(login: login, isViewer: isViewer))); return isViewer ? data.data.viewer : data.data.repositoryOwner; }, title: AppBarTitle(isViewer ? 'Me' : login), - actionBuilder: (payload, _) { + actionBuilder: (payload, setState) { switch (payload.resolveType) { case 'User': final user = payload as GhUserUser; @@ -378,15 +378,20 @@ class UserScreen extends StatelessWidget { text: user.viewerIsFollowing ? 'Unfollow' : 'Follow', onTap: (_) async { if (user.viewerIsFollowing) { - await Provider.of(context) - .deleteWithCredentials( - '/user/following/${user.login}'); - user.viewerIsFollowing = false; + final res = await auth.gqlClient.execute( + GhUnfollowUserQuery( + variables: + GhUnfollowUserArguments(id: user.id))); + user.viewerIsFollowing = + res.data.unfollowUser.user.viewerIsFollowing; } else { - Provider.of(context).putWithCredentials( - '/user/following/${user.login}'); - user.viewerIsFollowing = true; + final res = await auth.gqlClient.execute( + GhFollowUserQuery( + variables: GhFollowUserArguments(id: user.id))); + user.viewerIsFollowing = + res.data.followUser.user.viewerIsFollowing; } + setState(() {}); }, ), if (payload != null) ...[