diff --git a/lib/graphql/github_user.dart b/lib/graphql/github_user.dart index 19cf9e6..cad01a5 100644 --- a/lib/graphql/github_user.dart +++ b/lib/graphql/github_user.dart @@ -35,11 +35,17 @@ class GithubUserRepositoryOwner with EquatableMixin { return _$GithubUserRepositoryOwnerFromJson(json); } + String login; + + String avatarUrl; + + String url; + @JsonKey(name: '__typename') String resolveType; @override - List get props => [resolveType]; + List get props => [login, avatarUrl, url, resolveType]; Map toJson() { switch (resolveType) { case 'User': @@ -70,12 +76,8 @@ class GithubUserUser extends GithubUserAuditEntryActor factory GithubUserUser.fromJson(Map json) => _$GithubUserUserFromJson(json); - String login; - String name; - String avatarUrl; - String bio; String company; @@ -100,17 +102,22 @@ class GithubUserUser extends GithubUserAuditEntryActor bool viewerIsFollowing; - String url; - @override @JsonKey(name: '__typename') String resolveType; + @override + String login; + + @override + String avatarUrl; + + @override + String url; + @override List get props => [ - login, name, - avatarUrl, bio, company, location, @@ -123,8 +130,10 @@ class GithubUserUser extends GithubUserAuditEntryActor pinnedItems, viewerCanFollow, viewerIsFollowing, - url, - resolveType + resolveType, + login, + avatarUrl, + url ]; Map toJson() => _$GithubUserUserToJson(this); } @@ -466,17 +475,11 @@ class GithubUserActor with EquatableMixin { factory GithubUserActor.fromJson(Map json) => _$GithubUserActorFromJson(json); - String login; - - String avatarUrl; - - String url; - @JsonKey(name: '__typename') String resolveType; @override - List get props => [login, avatarUrl, url, resolveType]; + List get props => [resolveType]; Map toJson() => _$GithubUserActorToJson(this); } @@ -487,8 +490,6 @@ class GithubUserProfileOwner with EquatableMixin { factory GithubUserProfileOwner.fromJson(Map json) => _$GithubUserProfileOwnerFromJson(json); - String login; - String name; String location; @@ -504,7 +505,7 @@ class GithubUserProfileOwner with EquatableMixin { @override List get props => - [login, name, location, email, websiteUrl, pinnedItems, resolveType]; + [name, location, email, websiteUrl, pinnedItems, resolveType]; Map toJson() => _$GithubUserProfileOwnerToJson(this); } @@ -542,12 +543,8 @@ class GithubUserOrganization extends GithubUserAuditEntryActor factory GithubUserOrganization.fromJson(Map json) => _$GithubUserOrganizationFromJson(json); - String login; - String name; - String avatarUrl; - String description; String location; @@ -556,8 +553,6 @@ class GithubUserOrganization extends GithubUserAuditEntryActor String websiteUrl; - String url; - GithubUserPinnableItemConnection pinnedItems; GithubUserPinnableItemConnection pinnableItems; @@ -568,20 +563,29 @@ class GithubUserOrganization extends GithubUserAuditEntryActor @JsonKey(name: '__typename') String resolveType; + @override + String login; + + @override + String avatarUrl; + + @override + String url; + @override List get props => [ - login, name, - avatarUrl, description, location, email, websiteUrl, - url, pinnedItems, pinnableItems, membersWithRole, - resolveType + resolveType, + login, + avatarUrl, + url ]; Map toJson() => _$GithubUserOrganizationToJson(this); } @@ -665,30 +669,36 @@ class GithubUserQuery extends GraphQLQuery { arguments: [], directives: [], selectionSet: null), + FieldNode( + name: NameNode(value: 'login'), + alias: null, + arguments: [], + directives: [], + selectionSet: null), + FieldNode( + name: NameNode(value: 'avatarUrl'), + alias: null, + arguments: [], + directives: [], + selectionSet: null), + FieldNode( + name: NameNode(value: 'url'), + alias: null, + arguments: [], + directives: [], + selectionSet: null), InlineFragmentNode( typeCondition: TypeConditionNode( on: NamedTypeNode( name: NameNode(value: 'User'), isNonNull: false)), directives: [], selectionSet: SelectionSetNode(selections: [ - FieldNode( - name: NameNode(value: 'login'), - alias: null, - arguments: [], - directives: [], - selectionSet: null), FieldNode( name: NameNode(value: 'name'), alias: null, arguments: [], directives: [], selectionSet: null), - FieldNode( - name: NameNode(value: 'avatarUrl'), - alias: null, - arguments: [], - directives: [], - selectionSet: null), FieldNode( name: NameNode(value: 'bio'), alias: null, @@ -803,12 +813,6 @@ class GithubUserQuery extends GraphQLQuery { directives: [], selectionSet: SelectionSetNode(selections: [ - FieldNode( - name: NameNode(value: '__typename'), - alias: null, - arguments: [], - directives: [], - selectionSet: null), FieldNode( name: NameNode(value: 'login'), alias: null, @@ -940,13 +944,6 @@ class GithubUserQuery extends GraphQLQuery { directives: [], selectionSet: SelectionSetNode(selections: [ - FieldNode( - name: NameNode( - value: '__typename'), - alias: null, - arguments: [], - directives: [], - selectionSet: null), FieldNode( name: NameNode(value: 'login'), @@ -1053,12 +1050,6 @@ class GithubUserQuery extends GraphQLQuery { alias: null, arguments: [], directives: [], - selectionSet: null), - FieldNode( - name: NameNode(value: 'url'), - alias: null, - arguments: [], - directives: [], selectionSet: null) ])), InlineFragmentNode( @@ -1068,24 +1059,12 @@ class GithubUserQuery extends GraphQLQuery { isNonNull: false)), directives: [], selectionSet: SelectionSetNode(selections: [ - FieldNode( - name: NameNode(value: 'login'), - alias: null, - arguments: [], - directives: [], - selectionSet: null), FieldNode( name: NameNode(value: 'name'), alias: null, arguments: [], directives: [], selectionSet: null), - FieldNode( - name: NameNode(value: 'avatarUrl'), - alias: null, - arguments: [], - directives: [], - selectionSet: null), FieldNode( name: NameNode(value: 'description'), alias: null, @@ -1110,12 +1089,6 @@ class GithubUserQuery extends GraphQLQuery { arguments: [], directives: [], selectionSet: null), - FieldNode( - name: NameNode(value: 'url'), - alias: null, - arguments: [], - directives: [], - selectionSet: null), FieldNode( name: NameNode(value: 'pinnedItems'), alias: null, @@ -1154,13 +1127,6 @@ class GithubUserQuery extends GraphQLQuery { directives: [], selectionSet: SelectionSetNode(selections: [ - FieldNode( - name: NameNode( - value: '__typename'), - alias: null, - arguments: [], - directives: [], - selectionSet: null), FieldNode( name: NameNode(value: 'login'), @@ -1306,13 +1272,6 @@ class GithubUserQuery extends GraphQLQuery { directives: [], selectionSet: SelectionSetNode(selections: [ - FieldNode( - name: NameNode( - value: '__typename'), - alias: null, - arguments: [], - directives: [], - selectionSet: null), FieldNode( name: NameNode(value: 'login'), diff --git a/lib/graphql/github_user.g.dart b/lib/graphql/github_user.g.dart index 80fb8b9..c37f538 100644 --- a/lib/graphql/github_user.g.dart +++ b/lib/graphql/github_user.g.dart @@ -22,20 +22,24 @@ Map _$GithubUserToJson(GithubUser instance) => GithubUserRepositoryOwner _$GithubUserRepositoryOwnerFromJson( Map json) { return GithubUserRepositoryOwner() + ..login = json['login'] as String + ..avatarUrl = json['avatarUrl'] as String + ..url = json['url'] as String ..resolveType = json['__typename'] as String; } Map _$GithubUserRepositoryOwnerToJson( GithubUserRepositoryOwner instance) => { + 'login': instance.login, + 'avatarUrl': instance.avatarUrl, + 'url': instance.url, '__typename': instance.resolveType, }; GithubUserUser _$GithubUserUserFromJson(Map json) { return GithubUserUser() - ..login = json['login'] as String ..name = json['name'] as String - ..avatarUrl = json['avatarUrl'] as String ..bio = json['bio'] as String ..company = json['company'] as String ..location = json['location'] as String @@ -63,15 +67,15 @@ GithubUserUser _$GithubUserUserFromJson(Map json) { json['pinnedItems'] as Map) ..viewerCanFollow = json['viewerCanFollow'] as bool ..viewerIsFollowing = json['viewerIsFollowing'] as bool - ..url = json['url'] as String - ..resolveType = json['__typename'] as String; + ..resolveType = json['__typename'] as String + ..login = json['login'] as String + ..avatarUrl = json['avatarUrl'] as String + ..url = json['url'] as String; } Map _$GithubUserUserToJson(GithubUserUser instance) => { - 'login': instance.login, 'name': instance.name, - 'avatarUrl': instance.avatarUrl, 'bio': instance.bio, 'company': instance.company, 'location': instance.location, @@ -84,8 +88,10 @@ Map _$GithubUserUserToJson(GithubUserUser instance) => 'pinnedItems': instance.pinnedItems?.toJson(), 'viewerCanFollow': instance.viewerCanFollow, 'viewerIsFollowing': instance.viewerIsFollowing, - 'url': instance.url, '__typename': instance.resolveType, + 'login': instance.login, + 'avatarUrl': instance.avatarUrl, + 'url': instance.url, }; GithubUserStarredRepositoryConnection @@ -351,25 +357,17 @@ Map _$GithubUserAuditEntryActorToJson( {}; GithubUserActor _$GithubUserActorFromJson(Map json) { - return GithubUserActor() - ..login = json['login'] as String - ..avatarUrl = json['avatarUrl'] as String - ..url = json['url'] as String - ..resolveType = json['__typename'] as String; + return GithubUserActor()..resolveType = json['__typename'] as String; } Map _$GithubUserActorToJson(GithubUserActor instance) => { - 'login': instance.login, - 'avatarUrl': instance.avatarUrl, - 'url': instance.url, '__typename': instance.resolveType, }; GithubUserProfileOwner _$GithubUserProfileOwnerFromJson( Map json) { return GithubUserProfileOwner() - ..login = json['login'] as String ..name = json['name'] as String ..location = json['location'] as String ..email = json['email'] as String @@ -384,7 +382,6 @@ GithubUserProfileOwner _$GithubUserProfileOwnerFromJson( Map _$GithubUserProfileOwnerToJson( GithubUserProfileOwner instance) => { - 'login': instance.login, 'name': instance.name, 'location': instance.location, 'email': instance.email, @@ -407,14 +404,11 @@ Map _$GithubUserSponsorableToJson( GithubUserOrganization _$GithubUserOrganizationFromJson( Map json) { return GithubUserOrganization() - ..login = json['login'] as String ..name = json['name'] as String - ..avatarUrl = json['avatarUrl'] as String ..description = json['description'] as String ..location = json['location'] as String ..email = json['email'] as String ..websiteUrl = json['websiteUrl'] as String - ..url = json['url'] as String ..pinnedItems = json['pinnedItems'] == null ? null : GithubUserPinnableItemConnection.fromJson( @@ -427,24 +421,27 @@ GithubUserOrganization _$GithubUserOrganizationFromJson( ? null : GithubUserOrganizationMemberConnection.fromJson( json['membersWithRole'] as Map) - ..resolveType = json['__typename'] as String; + ..resolveType = json['__typename'] as String + ..login = json['login'] as String + ..avatarUrl = json['avatarUrl'] as String + ..url = json['url'] as String; } Map _$GithubUserOrganizationToJson( GithubUserOrganization instance) => { - 'login': instance.login, 'name': instance.name, - 'avatarUrl': instance.avatarUrl, 'description': instance.description, 'location': instance.location, 'email': instance.email, 'websiteUrl': instance.websiteUrl, - 'url': instance.url, 'pinnedItems': instance.pinnedItems?.toJson(), 'pinnableItems': instance.pinnableItems?.toJson(), 'membersWithRole': instance.membersWithRole?.toJson(), '__typename': instance.resolveType, + 'login': instance.login, + 'avatarUrl': instance.avatarUrl, + 'url': instance.url, }; GithubUserOrganizationMemberConnection diff --git a/lib/graphql/github_user.graphql b/lib/graphql/github_user.graphql index 529ad59..ac94877 100644 --- a/lib/graphql/github_user.graphql +++ b/lib/graphql/github_user.graphql @@ -1,10 +1,11 @@ query($login: String!) { repositoryOwner(login: $login) { __typename + login + avatarUrl + url ... on User { - login name - avatarUrl bio company location @@ -27,7 +28,6 @@ query($login: String!) { totalCount nodes { owner { - __typename login avatarUrl } @@ -53,7 +53,6 @@ query($login: String!) { __typename ... on Repository { owner { - __typename login avatarUrl } @@ -76,23 +75,18 @@ query($login: String!) { } viewerCanFollow viewerIsFollowing - url } ... on Organization { - login name - avatarUrl description location email websiteUrl - url pinnedItems(first: 6) { nodes { __typename ... on Repository { owner { - __typename login avatarUrl } @@ -119,7 +113,6 @@ query($login: String!) { __typename ... on Repository { owner { - __typename login avatarUrl } diff --git a/lib/widgets/repository_item.dart b/lib/widgets/repository_item.dart index 98da663..665b8ed 100644 --- a/lib/widgets/repository_item.dart +++ b/lib/widgets/repository_item.dart @@ -83,8 +83,8 @@ class RepositoryItem extends StatelessWidget { RepositoryItem.github(GithubUserRepository payload, {this.inRepoScreen = false}) - : this.owner = (payload.owner as GithubUserUser).login, - this.avatarUrl = (payload.owner as GithubUserUser).avatarUrl, + : this.owner = payload.owner.login, + this.avatarUrl = payload.owner.avatarUrl, this.name = payload.name, this.description = payload.description, this.iconData = Octicons.repo, // TODO: @@ -92,8 +92,8 @@ class RepositoryItem extends StatelessWidget { this.forkCount = payload.forks.totalCount, this.primaryLanguageName = payload.primaryLanguage?.name, this.primaryLanguageColor = payload.primaryLanguage?.color, - this.screenBuilder = ((_) => RepositoryScreen( - (payload.owner as GithubUserUser).login, payload.name)), + this.screenBuilder = + ((_) => RepositoryScreen(payload.owner.login, payload.name)), this.topics = []; // TODO: // this.topics = payload['repositoryTopics'] == null // ? []