refactor: split gql queries into files

This commit is contained in:
Rongjian Zhang
2022-10-01 03:49:56 +08:00
parent d5f3bd9f24
commit 7b08f4cc07
31 changed files with 615 additions and 639 deletions

View File

@@ -4,7 +4,7 @@ targets:
ferry_generator|graphql_builder:
enabled: true
options:
schema: git_touch|lib/graphql/schema.graphql
schema: git_touch|lib/gql_github/schema.graphql
type_overrides:
DateTime:
name: DateTime
@@ -15,7 +15,7 @@ targets:
ferry_generator|serializer_builder:
enabled: true
options:
schema: git_touch|lib/graphql/schema.graphql
schema: git_touch|lib/gql_github/schema.graphql
custom_serializers:
- import: package:git_touch/utils/date_time_serializer.dart
name: DateTimeSerializer

View File

@@ -0,0 +1,49 @@
# import './fragments.graphql'
fragment CommitsRefCommit on Commit {
history(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
url
messageHeadline
committedDate
author {
name
avatarUrl
user {
login
}
}
status {
state
}
}
}
}
fragment CommitsRef on Ref {
target {
... on Commit {
...CommitsRefCommit
}
}
}
query Commits(
$owner: String!
$name: String!
$ref: String!
$hasRef: Boolean!
$after: String
) {
repository(owner: $owner, name: $name) {
defaultBranchRef @skip(if: $hasRef) {
...CommitsRef
}
ref(qualifiedName: $ref) @include(if: $hasRef) {
...CommitsRef
}
}
}

View File

@@ -0,0 +1,41 @@
fragment PageInfoParts on PageInfo {
hasNextPage
endCursor
}
fragment RepoParts on Repository {
owner {
login
avatarUrl
}
name
description
isPrivate
isFork
stargazers {
totalCount
}
forks {
totalCount
}
primaryLanguage {
color
name
}
}
fragment UserParts on User {
login
name
avatarUrl
location
createdAt
}
fragment OrgParts on Organization {
login
name
avatarUrl
location
createdAt
}

View File

@@ -0,0 +1,15 @@
query Gist($login: String!, $name: String!) {
user(login: $login) {
gist(name: $name) {
name
files {
name
language {
name
}
text
size
}
}
}
}

View File

@@ -0,0 +1,27 @@
# import './fragments.graphql'
query Gists($login: String!, $after: String) {
user(login: $login) {
gists(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
name
description
files {
name
language {
name
}
text
}
updatedAt
id
owner {
avatarUrl
}
}
}
}
}

View File

@@ -1,518 +1,3 @@
# common
fragment PageInfoParts on PageInfo {
hasNextPage
endCursor
}
fragment RepoParts on Repository {
owner {
login
avatarUrl
}
name
description
isPrivate
isFork
stargazers {
totalCount
}
forks {
totalCount
}
primaryLanguage {
color
name
}
}
fragment UserParts on User {
login
name
avatarUrl
location
createdAt
}
fragment OrgParts on Organization {
login
name
avatarUrl
location
createdAt
}
# user gists
query Gists($login: String!, $after: String) {
user(login: $login) {
gists(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
name
description
files {
name
language {
name
}
text
}
updatedAt
id
owner {
avatarUrl
}
}
}
}
}
# single gist
query Gist($login: String!, $name: String!) {
user(login: $login) {
gist(name: $name) {
name
files {
name
language {
name
}
text
size
}
}
}
}
# users
query Followers($login: String!, $after: String) {
user(login: $login) {
followers(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
...UserParts
}
}
}
}
query Following($login: String!, $after: String) {
user(login: $login) {
following(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
...UserParts
}
}
}
}
query Orgs($login: String!, $after: String) {
user(login: $login) {
organizations(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
...OrgParts
}
}
}
}
query Members($login: String!, $after: String) {
organization(login: $login) {
membersWithRole(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
...UserParts
}
}
}
}
query Watchers($owner: String!, $name: String!, $after: String) {
repository(owner: $owner, name: $name) {
watchers(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
...UserParts
}
}
}
}
query Stargazers($owner: String!, $name: String!, $after: String) {
repository(owner: $owner, name: $name) {
stargazers(
first: 30
after: $after
orderBy: { field: STARRED_AT, direction: DESC }
) {
pageInfo {
...PageInfoParts
}
nodes {
...UserParts
}
}
}
}
# repos
fragment RepoPartsWithTime on Repository {
...RepoParts
updatedAt
}
query Repos($login: String!, $after: String) {
repositoryOwner(login: $login) {
repositories(
first: 30
after: $after
orderBy: { field: UPDATED_AT, direction: DESC }
) {
pageInfo {
...PageInfoParts
}
nodes {
...RepoPartsWithTime
}
}
}
}
query Stars($login: String!, $after: String) {
user(login: $login) {
starredRepositories(
first: 30
after: $after
orderBy: { field: STARRED_AT, direction: DESC }
) {
pageInfo {
...PageInfoParts
}
nodes {
...RepoPartsWithTime
}
}
}
}
# user
fragment UserPartsFull on User {
...UserParts
company
bio
url
email
websiteUrl
viewerCanFollow # TODO: remove in viewer query
viewerIsFollowing
sponsors {
totalCount
}
followers {
totalCount
}
following {
totalCount
}
contributionsCollection {
contributionCalendar {
weeks {
contributionDays {
color
}
}
}
}
organizations {
totalCount
}
repositories(
first: 6
ownerAffiliations: OWNER
orderBy: { field: STARGAZERS, direction: DESC }
) {
totalCount
nodes {
...RepoParts
}
}
starredRepositories {
totalCount
}
gists {
totalCount
}
pinnedItems(first: 6) {
nodes {
... on Repository {
...RepoParts
}
}
}
}
query Viewer {
viewer {
...UserPartsFull
}
}
query User($login: String!) {
user(login: $login) {
...UserPartsFull
}
organization(login: $login) {
login
avatarUrl
name
url
description
location
email
websiteUrl
createdAt
viewerIsFollowing
sponsors {
totalCount
}
membersWithRole {
totalCount
}
pinnedItems(first: 6) {
nodes {
... on Repository {
...RepoParts
}
}
}
pinnableItems(first: 6, types: [REPOSITORY]) {
totalCount
nodes {
... on Repository {
...RepoParts
}
}
}
}
}
# repo
fragment RepoCommit on Commit {
history {
totalCount
}
}
fragment RepoRef on Ref {
name
target {
... on Commit {
...RepoCommit
}
}
}
query Repo(
$owner: String!
$name: String!
$branchSpecified: Boolean!
$branch: String!
) {
repository(owner: $owner, name: $name) {
owner {
login
avatarUrl
}
name
description
homepageUrl
isPrivate
isFork
diskUsage
hasIssuesEnabled
url
viewerHasStarred
viewerSubscription
projectsUrl
primaryLanguage {
color
name
}
stargazers {
totalCount
}
forks {
totalCount
}
watchers {
totalCount
}
issues(states: OPEN) {
totalCount
}
pullRequests(states: OPEN) {
totalCount
}
projects {
totalCount
}
releases {
totalCount
}
languages(first: 10, orderBy: { field: SIZE, direction: DESC }) {
totalSize
edges {
size
node {
name
color
}
}
}
defaultBranchRef @skip(if: $branchSpecified) {
...RepoRef
}
ref(qualifiedName: $branch) @include(if: $branchSpecified) {
...RepoRef
}
refs(first: 100, refPrefix: "refs/heads/") {
totalCount
nodes {
name
}
}
licenseInfo {
name
spdxId
}
repositoryTopics(first: 10) {
nodes {
url
topic {
name
}
}
}
}
}
# commits
fragment CommitsRefCommit on Commit {
history(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
url
messageHeadline
committedDate
author {
name
avatarUrl
user {
login
}
}
status {
state
}
}
}
}
fragment CommitsRef on Ref {
target {
... on Commit {
...CommitsRefCommit
}
}
}
query Commits(
$owner: String!
$name: String!
$ref: String!
$hasRef: Boolean!
$after: String
) {
repository(owner: $owner, name: $name) {
defaultBranchRef @skip(if: $hasRef) {
...CommitsRef
}
ref(qualifiedName: $ref) @include(if: $hasRef) {
...CommitsRef
}
}
}
# issues
query Issues($owner: String!, $name: String!, $cursor: String) {
repository(owner: $owner, name: $name) {
issues(
states: OPEN
orderBy: { field: CREATED_AT, direction: DESC }
first: 30
after: $cursor
) {
pageInfo {
...PageInfoParts
}
nodes {
number
title
updatedAt
author {
login
avatarUrl
}
labels(first: 10) {
nodes {
name
color
}
}
comments {
totalCount
}
}
}
}
}
## pulls
query Pulls($owner: String!, $name: String!, $cursor: String) {
repository(owner: $owner, name: $name) {
pullRequests(
states: OPEN
orderBy: { field: CREATED_AT, direction: DESC }
first: 30
after: $cursor
) {
pageInfo {
...PageInfoParts
}
nodes {
number
title
updatedAt
author {
login
avatarUrl
}
labels(first: 10) {
nodes {
name
color
}
}
comments {
totalCount
}
}
}
}
}
# issue
fragment CommentParts on Comment {
id
createdAt
@@ -1086,48 +571,3 @@ query Issue($owner: String!, $name: String!, $number: Int!, $cursor: String) {
}
}
}
# Releases
query Releases($name: String!, $owner: String!, $cursor: String) {
repository(name: $name, owner: $owner) {
releases(
first: 30
after: $cursor
orderBy: { field: CREATED_AT, direction: DESC }
) {
pageInfo {
...PageInfoParts
}
nodes {
tagName
description
name
author {
name
avatarUrl
}
publishedAt
url
releaseAssets(first: 30) {
nodes {
name
downloadUrl
downloadCount
}
}
}
}
}
}
# meta
query Meta {
meta {
gitHubServicesSha
gitIpAddresses
hookIpAddresses
importerIpAddresses
isPasswordAuthenticationVerifiable
pagesIpAddresses
}
}

View File

@@ -0,0 +1,68 @@
# import './fragments.graphql'
query Issues($owner: String!, $name: String!, $cursor: String) {
repository(owner: $owner, name: $name) {
issues(
states: OPEN
orderBy: { field: CREATED_AT, direction: DESC }
first: 30
after: $cursor
) {
pageInfo {
...PageInfoParts
}
nodes {
number
title
updatedAt
author {
login
avatarUrl
}
labels(first: 10) {
nodes {
name
color
}
}
comments {
totalCount
}
}
}
}
}
## pulls
query Pulls($owner: String!, $name: String!, $cursor: String) {
repository(owner: $owner, name: $name) {
pullRequests(
states: OPEN
orderBy: { field: CREATED_AT, direction: DESC }
first: 30
after: $cursor
) {
pageInfo {
...PageInfoParts
}
nodes {
number
title
updatedAt
author {
login
avatarUrl
}
labels(first: 10) {
nodes {
name
color
}
}
comments {
totalCount
}
}
}
}
}

View File

@@ -0,0 +1,10 @@
query Meta {
meta {
gitHubServicesSha
gitIpAddresses
hookIpAddresses
importerIpAddresses
isPasswordAuthenticationVerifiable
pagesIpAddresses
}
}

View File

@@ -0,0 +1,33 @@
# import './fragments.graphql'
query Releases($name: String!, $owner: String!, $cursor: String) {
repository(name: $name, owner: $owner) {
releases(
first: 30
after: $cursor
orderBy: { field: CREATED_AT, direction: DESC }
) {
pageInfo {
...PageInfoParts
}
nodes {
tagName
description
name
author {
name
avatarUrl
}
publishedAt
url
releaseAssets(first: 30) {
nodes {
name
downloadUrl
downloadCount
}
}
}
}
}
}

View File

@@ -0,0 +1,98 @@
fragment RepoCommit on Commit {
history {
totalCount
}
}
fragment RepoRef on Ref {
name
target {
... on Commit {
...RepoCommit
}
}
}
query Repo(
$owner: String!
$name: String!
$branchSpecified: Boolean!
$branch: String!
) {
repository(owner: $owner, name: $name) {
owner {
login
avatarUrl
}
name
description
homepageUrl
isPrivate
isFork
diskUsage
hasIssuesEnabled
url
viewerHasStarred
viewerSubscription
projectsUrl
primaryLanguage {
color
name
}
stargazers {
totalCount
}
forks {
totalCount
}
watchers {
totalCount
}
issues(states: OPEN) {
totalCount
}
pullRequests(states: OPEN) {
totalCount
}
projects {
totalCount
}
releases {
totalCount
}
languages(first: 10, orderBy: { field: SIZE, direction: DESC }) {
totalSize
edges {
size
node {
name
color
}
}
}
defaultBranchRef @skip(if: $branchSpecified) {
...RepoRef
}
ref(qualifiedName: $branch) @include(if: $branchSpecified) {
...RepoRef
}
refs(first: 100, refPrefix: "refs/heads/") {
totalCount
nodes {
name
}
}
licenseInfo {
name
spdxId
}
repositoryTopics(first: 10) {
nodes {
url
topic {
name
}
}
}
}
}

View File

@@ -0,0 +1,38 @@
# import './fragments.graphql'
fragment RepoPartsWithTime on Repository {
...RepoParts
updatedAt
}
query Repos($login: String!, $after: String) {
repositoryOwner(login: $login) {
repositories(
first: 30
after: $after
orderBy: { field: UPDATED_AT, direction: DESC }
) {
pageInfo {
...PageInfoParts
}
nodes {
...RepoPartsWithTime
}
}
}
}
query Stars($login: String!, $after: String) {
user(login: $login) {
starredRepositories(
first: 30
after: $after
orderBy: { field: STARRED_AT, direction: DESC }
) {
pageInfo {
...PageInfoParts
}
nodes {
...RepoPartsWithTime
}
}
}
}

101
lib/gql_github/user.graphql Normal file
View File

@@ -0,0 +1,101 @@
# import './fragments.graphql'
fragment UserPartsFull on User {
...UserParts
company
bio
url
email
websiteUrl
viewerCanFollow # TODO: remove in viewer query
viewerIsFollowing
sponsors {
totalCount
}
followers {
totalCount
}
following {
totalCount
}
contributionsCollection {
contributionCalendar {
weeks {
contributionDays {
color
}
}
}
}
organizations {
totalCount
}
repositories(
first: 6
ownerAffiliations: OWNER
orderBy: { field: STARGAZERS, direction: DESC }
) {
totalCount
nodes {
...RepoParts
}
}
starredRepositories {
totalCount
}
gists {
totalCount
}
pinnedItems(first: 6) {
nodes {
... on Repository {
...RepoParts
}
}
}
}
query Viewer {
viewer {
...UserPartsFull
}
}
query User($login: String!) {
user(login: $login) {
...UserPartsFull
}
organization(login: $login) {
login
avatarUrl
name
url
description
location
email
websiteUrl
createdAt
viewerIsFollowing
sponsors {
totalCount
}
membersWithRole {
totalCount
}
pinnedItems(first: 6) {
nodes {
... on Repository {
...RepoParts
}
}
}
pinnableItems(first: 6, types: [REPOSITORY]) {
totalCount
nodes {
... on Repository {
...RepoParts
}
}
}
}
}

View File

@@ -0,0 +1,83 @@
# import './fragments.graphql'
query Followers($login: String!, $after: String) {
user(login: $login) {
followers(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
...UserParts
}
}
}
}
query Following($login: String!, $after: String) {
user(login: $login) {
following(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
...UserParts
}
}
}
}
query Orgs($login: String!, $after: String) {
user(login: $login) {
organizations(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
...OrgParts
}
}
}
}
query Members($login: String!, $after: String) {
organization(login: $login) {
membersWithRole(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
...UserParts
}
}
}
}
query Watchers($owner: String!, $name: String!, $after: String) {
repository(owner: $owner, name: $name) {
watchers(first: 30, after: $after) {
pageInfo {
...PageInfoParts
}
nodes {
...UserParts
}
}
}
}
query Stargazers($owner: String!, $name: String!, $after: String) {
repository(owner: $owner, name: $name) {
stargazers(
first: 30
after: $after
orderBy: { field: STARRED_AT, direction: DESC }
) {
pageInfo {
...PageInfoParts
}
nodes {
...UserParts
}
}
}
}

View File

@@ -1,10 +1,8 @@
import 'package:ferry/ferry.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_gen/gen_l10n/S.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/github.req.gql.dart';
import 'package:git_touch/graphql/__generated__/github.var.gql.dart';
import 'package:git_touch/graphql/__generated__/schema.schema.gql.dart';
import 'package:git_touch/gql_github/__generated__/commits.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/commits.req.gql.dart';
import 'package:git_touch/gql_github/__generated__/schema.schema.gql.dart';
import 'package:git_touch/models/auth.dart';
import 'package:git_touch/scaffolds/list_stateful.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
@@ -42,7 +40,7 @@ class GhCommits extends StatelessWidget {
b.vars.ref = branch ?? '';
b.vars.after = cursor;
});
final OperationResponse<GCommitsData, GCommitsVars?> res =
final res =
await context.read<AuthModel>().gqlClient.request(req).first;
final ref = res.data!.repository!.defaultBranchRef ??
res.data!.repository!.ref!;

View File

@@ -1,10 +1,8 @@
import 'package:ferry/ferry.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_gen/gen_l10n/S.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/github.req.gql.dart';
import 'package:git_touch/graphql/__generated__/github.var.gql.dart';
import 'package:git_touch/gql_github/__generated__/gists.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/gists.req.gql.dart';
import 'package:git_touch/models/auth.dart';
import 'package:git_touch/scaffolds/list_stateful.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
@@ -23,7 +21,7 @@ class GhGistsScreen extends StatelessWidget {
final req = GGistsReq((b) => b
..vars.login = login
..vars.after = page);
final OperationResponse<GGistsData, GGistsVars?> res =
final res =
await context.read<AuthModel>().gqlClient.request(req).first;
final gists = res.data!.user!.gists;
return ListPayload(

View File

@@ -1,11 +1,9 @@
import 'package:antd_mobile/antd_mobile.dart';
import 'package:ferry/ferry.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_gen/gen_l10n/S.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/github.req.gql.dart';
import 'package:git_touch/graphql/__generated__/github.var.gql.dart';
import 'package:git_touch/gql_github/__generated__/gist.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/gist.req.gql.dart';
import 'package:git_touch/models/auth.dart';
import 'package:git_touch/scaffolds/refresh_stateful.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
@@ -25,7 +23,7 @@ class GhGistsFilesScreen extends StatelessWidget {
final req = GGistReq((b) => b
..vars.login = login
..vars.name = id);
final OperationResponse<GGistData, GGistVars?> res =
final res =
await context.read<AuthModel>().gqlClient.request(req).first;
final gist = res.data!.user!.gist;
return gist;

View File

@@ -1,9 +1,7 @@
import 'package:antd_mobile/antd_mobile.dart';
import 'package:ferry/ferry.dart';
import 'package:flutter/widgets.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/github.req.gql.dart';
import 'package:git_touch/graphql/__generated__/github.var.gql.dart';
import 'package:git_touch/gql_github/__generated__/issue.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/issue.req.gql.dart';
import 'package:git_touch/models/auth.dart';
import 'package:git_touch/models/theme.dart';
import 'package:git_touch/scaffolds/long_list.dart';
@@ -95,8 +93,7 @@ class GhIssueScreen extends StatelessWidget {
b.vars.number = number;
b.vars.cursor = cursor;
});
final OperationResponse<GIssueData, GIssueVars?> res =
await context.read<AuthModel>().gqlClient.request(req).first;
final res = await context.read<AuthModel>().gqlClient.request(req).first;
return res.data!.repository!;
}

View File

@@ -1,9 +1,7 @@
import 'package:ferry/ferry.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_gen/gen_l10n/S.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/github.req.gql.dart';
import 'package:git_touch/graphql/__generated__/github.var.gql.dart';
import 'package:git_touch/gql_github/__generated__/issues.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/issues.req.gql.dart';
import 'package:git_touch/models/auth.dart';
import 'package:git_touch/scaffolds/list_stateful.dart';
import 'package:git_touch/widgets/action_entry.dart';
@@ -31,7 +29,7 @@ class GhIssuesScreen extends StatelessWidget {
b.vars.name = name;
b.vars.cursor = cursor;
});
final OperationResponse<GIssuesData, GIssuesVars?> res =
final res =
await context.read<AuthModel>().gqlClient.request(req).first;
final issues = res.data!.repository!.issues;
return ListPayload(

View File

@@ -1,7 +1,7 @@
import 'package:antd_mobile/antd_mobile.dart';
import 'package:flutter/widgets.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/github.req.gql.dart';
import 'package:git_touch/gql_github/__generated__/meta.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/meta.req.gql.dart';
import 'package:git_touch/models/auth.dart';
import 'package:git_touch/scaffolds/refresh_stateful.dart';
import 'package:provider/provider.dart';

View File

@@ -1,9 +1,7 @@
import 'package:ferry/ferry.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_gen/gen_l10n/S.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/github.req.gql.dart';
import 'package:git_touch/graphql/__generated__/github.var.gql.dart';
import 'package:git_touch/gql_github/__generated__/issues.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/issues.req.gql.dart';
import 'package:git_touch/models/auth.dart';
import 'package:git_touch/scaffolds/list_stateful.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
@@ -27,7 +25,7 @@ class GhPullsScreen extends StatelessWidget {
b.vars.name = name;
b.vars.cursor = cursor;
});
final OperationResponse<GPullsData, GPullsVars?> res =
final res =
await context.read<AuthModel>().gqlClient.request(req).first;
final pulls = res.data!.repository!.pullRequests;
return ListPayload(

View File

@@ -1,9 +1,7 @@
import 'package:ferry/ferry.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/widgets.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/github.req.gql.dart';
import 'package:git_touch/graphql/__generated__/github.var.gql.dart';
import 'package:git_touch/gql_github/__generated__/releases.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/releases.req.gql.dart';
import 'package:git_touch/models/auth.dart';
import 'package:git_touch/scaffolds/list_stateful.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
@@ -25,7 +23,7 @@ class GhReleasesScreen extends StatelessWidget {
..vars.owner = owner
..vars.name = name
..vars.cursor = page);
final OperationResponse<GReleasesData, GReleasesVars?> res =
final res =
await context.read<AuthModel>().gqlClient.request(req).first;
final releases = res.data!.repository!.releases;
return ListPayload(

View File

@@ -1,13 +1,11 @@
import 'package:antd_mobile/antd_mobile.dart';
import 'package:ferry/ferry.dart';
import 'package:filesize/filesize.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_gen/gen_l10n/S.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/github.req.gql.dart';
import 'package:git_touch/graphql/__generated__/github.var.gql.dart';
import 'package:git_touch/graphql/__generated__/schema.schema.gql.dart';
import 'package:git_touch/gql_github/__generated__/repo.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/repo.req.gql.dart';
import 'package:git_touch/gql_github/__generated__/schema.schema.gql.dart';
import 'package:git_touch/models/auth.dart';
import 'package:git_touch/models/theme.dart';
import 'package:git_touch/scaffolds/refresh_stateful.dart';
@@ -57,7 +55,7 @@ class GhRepoScreen extends StatelessWidget {
..vars.name = name
..vars.branchSpecified = branch != null
..vars.branch = branch ?? '');
final OperationResponse<GRepoData, GRepoVars?> res =
final res =
await context.read<AuthModel>().gqlClient.request(req).first;
final repo = res.data!.repository;

View File

@@ -1,8 +1,6 @@
import 'package:ferry/ferry.dart';
import 'package:flutter/widgets.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/github.req.gql.dart';
import 'package:git_touch/graphql/__generated__/github.var.gql.dart';
import 'package:git_touch/gql_github/__generated__/repos.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/repos.req.gql.dart';
import 'package:git_touch/models/auth.dart';
import 'package:git_touch/scaffolds/list_stateful.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
@@ -24,8 +22,7 @@ class GhRepos extends StatelessWidget {
b.vars.login = login;
b.vars.after = cursor;
});
final OperationResponse<GReposData, GReposVars?> res =
await auth.gqlClient.request(req).first;
final res = await auth.gqlClient.request(req).first;
final p = res.data!.repositoryOwner!.repositories;
return ListPayload(
cursor: p.pageInfo.endCursor,
@@ -55,8 +52,7 @@ class GhStars extends StatelessWidget {
b.vars.login = login;
b.vars.after = cursor;
});
final OperationResponse<GStarsData, GStarsVars?> res =
await auth.gqlClient.request(req).first;
final res = await auth.gqlClient.request(req).first;
final p = res.data!.user!.starredRepositories;
return ListPayload(
cursor: p.pageInfo.endCursor,

View File

@@ -2,8 +2,9 @@ import 'package:antd_mobile/antd_mobile.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_gen/gen_l10n/S.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/github.req.gql.dart';
import 'package:git_touch/gql_github/__generated__/fragments.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/user.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/user.req.gql.dart';
import 'package:git_touch/models/auth.dart';
import 'package:git_touch/models/theme.dart';
import 'package:git_touch/scaffolds/refresh_stateful.dart';

View File

@@ -1,8 +1,6 @@
import 'package:ferry/ferry.dart';
import 'package:flutter/widgets.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/github.req.gql.dart';
import 'package:git_touch/graphql/__generated__/github.var.gql.dart';
import 'package:git_touch/gql_github/__generated__/fragments.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/users.req.gql.dart';
import 'package:git_touch/models/auth.dart';
import 'package:git_touch/scaffolds/list_stateful.dart';
import 'package:git_touch/widgets/app_bar_title.dart';
@@ -23,8 +21,7 @@ class GhFollowers extends StatelessWidget {
b.vars.login = login;
b.vars.after = cursor;
});
final OperationResponse<GFollowersData, GFollowersVars?> res =
await auth.gqlClient.request(req).first;
final res = await auth.gqlClient.request(req).first;
final p = res.data!.user!.followers;
return ListPayload(
cursor: p.pageInfo.endCursor,
@@ -53,8 +50,7 @@ class GhFollowing extends StatelessWidget {
b.vars.login = login;
b.vars.after = cursor;
});
final OperationResponse<GFollowingData, GFollowingVars?> res =
await auth.gqlClient.request(req).first;
final res = await auth.gqlClient.request(req).first;
final p = res.data!.user!.following;
return ListPayload(
cursor: p.pageInfo.endCursor,
@@ -112,8 +108,7 @@ class GhMembers extends StatelessWidget {
b.vars.login = login;
b.vars.after = cursor;
});
final OperationResponse<GMembersData, GMembersVars?> res =
await auth.gqlClient.request(req).first;
final res = await auth.gqlClient.request(req).first;
final p = res.data!.organization!.membersWithRole;
return ListPayload(
cursor: p.pageInfo.endCursor,
@@ -144,8 +139,7 @@ class GhWachers extends StatelessWidget {
b.vars.name = name;
b.vars.after = cursor;
});
final OperationResponse<GWatchersData, GWatchersVars?> res =
await auth.gqlClient.request(req).first;
final res = await auth.gqlClient.request(req).first;
final p = res.data!.repository!.watchers;
return ListPayload(
cursor: p.pageInfo.endCursor,
@@ -176,8 +170,7 @@ class GhStargazers extends StatelessWidget {
b.vars.name = name;
b.vars.after = cursor;
});
final OperationResponse<GStargazersData, GStargazersVars?> res =
await auth.gqlClient.request(req).first;
final res = await auth.gqlClient.request(req).first;
final p = res.data!.repository!.stargazers;
return ListPayload(
cursor: p.pageInfo.endCursor,

View File

@@ -1,7 +1,7 @@
import 'package:antd_mobile/antd_mobile.dart';
import 'package:flutter/widgets.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/schema.schema.gql.dart';
import 'package:git_touch/gql_github/__generated__/issue.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/schema.schema.gql.dart';
import 'package:git_touch/models/auth.dart';
import 'package:git_touch/models/theme.dart';
import 'package:git_touch/utils/utils.dart';

View File

@@ -1,7 +1,7 @@
import 'package:antd_mobile/antd_mobile.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_gen/gen_l10n/S.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/releases.data.gql.dart';
import 'package:git_touch/models/theme.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:git_touch/widgets/avatar.dart';

View File

@@ -2,7 +2,7 @@ import 'package:antd_mobile/antd_mobile.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/widgets.dart';
import 'package:from_css_color/from_css_color.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/fragments.data.gql.dart';
import 'package:git_touch/models/bitbucket.dart';
import 'package:git_touch/models/gitlab.dart';
import 'package:git_touch/models/gogs.dart';

View File

@@ -3,8 +3,8 @@ import 'dart:core';
import 'package:antd_mobile/antd_mobile.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_gen/gen_l10n/S.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/graphql/__generated__/schema.schema.gql.dart';
import 'package:git_touch/gql_github/__generated__/issue.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/schema.schema.gql.dart';
import 'package:git_touch/models/theme.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:git_touch/widgets/branch_name.dart';

View File

@@ -1,6 +1,6 @@
import 'package:antd_mobile/antd_mobile.dart';
import 'package:flutter/widgets.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/gql_github/__generated__/fragments.data.gql.dart';
import 'package:git_touch/models/theme.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:git_touch/widgets/avatar.dart';

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# https://docs.github.com/en/graphql/overview/public-schema
curl -o lib/graphql/schema.graphql https://docs.github.com/public/schema.docs.graphql
curl -o lib/gql_github/schema.graphql https://docs.github.com/public/schema.docs.graphql
flutter pub run build_runner watch --delete-conflicting-outputs