mirror of
https://github.com/git-touch/git-touch
synced 2025-02-08 15:48:41 +01:00
feat(gitlab): add gql client
This commit is contained in:
parent
3474d931ac
commit
048d35112b
@ -664,7 +664,8 @@ class AuthModel with ChangeNotifier {
|
||||
StorageKeys.getDefaultStartTabKey(activeAccount!.platform)) ??
|
||||
0;
|
||||
_ghClient = null;
|
||||
_gqlClient = null;
|
||||
_ghGqlClient = null;
|
||||
_glGqlClient = null;
|
||||
notifyListeners();
|
||||
|
||||
// TODO: strategy
|
||||
@ -689,20 +690,30 @@ class AuthModel with ChangeNotifier {
|
||||
return _ghClient!;
|
||||
}
|
||||
|
||||
Client? _gqlClient;
|
||||
Client get gqlClient {
|
||||
_gqlClient ??= Client(
|
||||
Client? _ghGqlClient;
|
||||
Client get ghGqlClient {
|
||||
return _ghGqlClient ??= Client(
|
||||
link: HttpLink(
|
||||
'$_apiPrefix/graphql',
|
||||
defaultHeaders: {HttpHeaders.authorizationHeader: 'token $token'},
|
||||
),
|
||||
// https://ferrygraphql.com/docs/fetch-policies#default-fetchpolicies
|
||||
defaultFetchPolicies: {
|
||||
OperationType.query: FetchPolicy.NetworkOnly,
|
||||
},
|
||||
defaultFetchPolicies: {OperationType.query: FetchPolicy.NetworkOnly},
|
||||
);
|
||||
}
|
||||
|
||||
return _gqlClient!;
|
||||
Client? _glGqlClient;
|
||||
Client get glGqlClient {
|
||||
return _glGqlClient ??= Client(
|
||||
link: HttpLink(
|
||||
Uri.parse(activeAccount!.domain)
|
||||
.replace(path: '/api/graphql')
|
||||
.toString(),
|
||||
defaultHeaders: {'Private-Token': token},
|
||||
),
|
||||
// https://ferrygraphql.com/docs/fetch-policies#default-fetchpolicies
|
||||
defaultFetchPolicies: {OperationType.query: FetchPolicy.NetworkOnly},
|
||||
);
|
||||
}
|
||||
|
||||
Future<dynamic> query(String query, [String? token]) async {
|
||||
|
@ -41,7 +41,7 @@ class GhCommits extends StatelessWidget {
|
||||
b.vars.after = cursor;
|
||||
});
|
||||
final res =
|
||||
await context.read<AuthModel>().gqlClient.request(req).first;
|
||||
await context.read<AuthModel>().ghGqlClient.request(req).first;
|
||||
final ref = res.data!.repository!.defaultBranchRef ??
|
||||
res.data!.repository!.ref!;
|
||||
final history = (ref.target as GCommitsRefCommit).history;
|
||||
|
@ -22,7 +22,7 @@ class GhGistsScreen extends StatelessWidget {
|
||||
..vars.login = login
|
||||
..vars.after = page);
|
||||
final res =
|
||||
await context.read<AuthModel>().gqlClient.request(req).first;
|
||||
await context.read<AuthModel>().ghGqlClient.request(req).first;
|
||||
final gists = res.data!.user!.gists;
|
||||
return ListPayload(
|
||||
cursor: gists.pageInfo.endCursor,
|
||||
|
@ -24,7 +24,7 @@ class GhGistsFilesScreen extends StatelessWidget {
|
||||
..vars.login = login
|
||||
..vars.name = id);
|
||||
final res =
|
||||
await context.read<AuthModel>().gqlClient.request(req).first;
|
||||
await context.read<AuthModel>().ghGqlClient.request(req).first;
|
||||
final gist = res.data!.user!.gist;
|
||||
return gist;
|
||||
},
|
||||
|
@ -93,7 +93,7 @@ class GhIssueScreen extends StatelessWidget {
|
||||
b.vars.number = number;
|
||||
b.vars.cursor = cursor;
|
||||
});
|
||||
final res = await context.read<AuthModel>().gqlClient.request(req).first;
|
||||
final res = await context.read<AuthModel>().ghGqlClient.request(req).first;
|
||||
return res.data!.repository!;
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ class GhIssuesScreen extends StatelessWidget {
|
||||
b.vars.cursor = cursor;
|
||||
});
|
||||
final res =
|
||||
await context.read<AuthModel>().gqlClient.request(req).first;
|
||||
await context.read<AuthModel>().ghGqlClient.request(req).first;
|
||||
final issues = res.data!.repository!.issues;
|
||||
return ListPayload(
|
||||
cursor: issues.pageInfo.endCursor,
|
||||
|
@ -16,7 +16,7 @@ class GhMetaScreen extends StatelessWidget {
|
||||
fetch: () async {
|
||||
final req = GMetaReq();
|
||||
final res =
|
||||
await context.read<AuthModel>().gqlClient.request(req).first;
|
||||
await context.read<AuthModel>().ghGqlClient.request(req).first;
|
||||
return res.data!.meta;
|
||||
},
|
||||
bodyBuilder: (meta, _) {
|
||||
|
@ -26,7 +26,7 @@ class GhPullsScreen extends StatelessWidget {
|
||||
b.vars.cursor = cursor;
|
||||
});
|
||||
final res =
|
||||
await context.read<AuthModel>().gqlClient.request(req).first;
|
||||
await context.read<AuthModel>().ghGqlClient.request(req).first;
|
||||
final pulls = res.data!.repository!.pullRequests;
|
||||
return ListPayload(
|
||||
cursor: pulls.pageInfo.endCursor,
|
||||
|
@ -24,7 +24,7 @@ class GhReleasesScreen extends StatelessWidget {
|
||||
..vars.name = name
|
||||
..vars.cursor = page);
|
||||
final res =
|
||||
await context.read<AuthModel>().gqlClient.request(req).first;
|
||||
await context.read<AuthModel>().ghGqlClient.request(req).first;
|
||||
final releases = res.data!.repository!.releases;
|
||||
return ListPayload(
|
||||
cursor: releases.pageInfo.endCursor,
|
||||
|
@ -56,7 +56,7 @@ class GhRepoScreen extends StatelessWidget {
|
||||
..vars.branchSpecified = branch != null
|
||||
..vars.branch = branch ?? '');
|
||||
final res =
|
||||
await context.read<AuthModel>().gqlClient.request(req).first;
|
||||
await context.read<AuthModel>().ghGqlClient.request(req).first;
|
||||
final repo = res.data!.repository;
|
||||
|
||||
final ghClient = context.read<AuthModel>().ghClient;
|
||||
|
@ -22,7 +22,7 @@ class GhRepos extends StatelessWidget {
|
||||
b.vars.login = login;
|
||||
b.vars.after = cursor;
|
||||
});
|
||||
final res = await auth.gqlClient.request(req).first;
|
||||
final res = await auth.ghGqlClient.request(req).first;
|
||||
final p = res.data!.repositoryOwner!.repositories;
|
||||
return ListPayload(
|
||||
cursor: p.pageInfo.endCursor,
|
||||
@ -52,7 +52,7 @@ class GhStars extends StatelessWidget {
|
||||
b.vars.login = login;
|
||||
b.vars.after = cursor;
|
||||
});
|
||||
final res = await auth.gqlClient.request(req).first;
|
||||
final res = await auth.ghGqlClient.request(req).first;
|
||||
final p = res.data!.user!.starredRepositories;
|
||||
return ListPayload(
|
||||
cursor: p.pageInfo.endCursor,
|
||||
|
@ -217,7 +217,7 @@ class GhViewerScreen extends StatelessWidget {
|
||||
return RefreshStatefulScaffold<GUserParts?>(
|
||||
fetch: () async {
|
||||
final req = GViewerReq();
|
||||
final res = await auth.gqlClient.request(req).first;
|
||||
final res = await auth.ghGqlClient.request(req).first;
|
||||
return res.data?.viewer;
|
||||
},
|
||||
title: AppBarTitle(AppLocalizations.of(context)!.me),
|
||||
@ -243,7 +243,7 @@ class GhUserScreen extends StatelessWidget {
|
||||
return RefreshStatefulScaffold<GUserData?>(
|
||||
fetch: () async {
|
||||
final req = GUserReq((b) => b..vars.login = login);
|
||||
final res = await auth.gqlClient.request(req).first;
|
||||
final res = await auth.ghGqlClient.request(req).first;
|
||||
return res.data;
|
||||
},
|
||||
title: AppBarTitle(login),
|
||||
|
@ -21,7 +21,7 @@ class GhFollowers extends StatelessWidget {
|
||||
b.vars.login = login;
|
||||
b.vars.after = cursor;
|
||||
});
|
||||
final res = await auth.gqlClient.request(req).first;
|
||||
final res = await auth.ghGqlClient.request(req).first;
|
||||
final p = res.data!.user!.followers;
|
||||
return ListPayload(
|
||||
cursor: p.pageInfo.endCursor,
|
||||
@ -50,7 +50,7 @@ class GhFollowing extends StatelessWidget {
|
||||
b.vars.login = login;
|
||||
b.vars.after = cursor;
|
||||
});
|
||||
final res = await auth.gqlClient.request(req).first;
|
||||
final res = await auth.ghGqlClient.request(req).first;
|
||||
final p = res.data!.user!.following;
|
||||
return ListPayload(
|
||||
cursor: p.pageInfo.endCursor,
|
||||
@ -79,7 +79,7 @@ class GhOrgs extends StatelessWidget {
|
||||
b.vars.login = login;
|
||||
b.vars.after = cursor;
|
||||
});
|
||||
final res = await auth.gqlClient.request(req).first;
|
||||
final res = await auth.ghGqlClient.request(req).first;
|
||||
final p = res.data!.user!.organizations;
|
||||
return ListPayload(
|
||||
cursor: p.pageInfo.endCursor,
|
||||
@ -108,7 +108,7 @@ class GhMembers extends StatelessWidget {
|
||||
b.vars.login = login;
|
||||
b.vars.after = cursor;
|
||||
});
|
||||
final res = await auth.gqlClient.request(req).first;
|
||||
final res = await auth.ghGqlClient.request(req).first;
|
||||
final p = res.data!.organization!.membersWithRole;
|
||||
return ListPayload(
|
||||
cursor: p.pageInfo.endCursor,
|
||||
@ -139,7 +139,7 @@ class GhWachers extends StatelessWidget {
|
||||
b.vars.name = name;
|
||||
b.vars.after = cursor;
|
||||
});
|
||||
final res = await auth.gqlClient.request(req).first;
|
||||
final res = await auth.ghGqlClient.request(req).first;
|
||||
final p = res.data!.repository!.watchers;
|
||||
return ListPayload(
|
||||
cursor: p.pageInfo.endCursor,
|
||||
@ -170,7 +170,7 @@ class GhStargazers extends StatelessWidget {
|
||||
b.vars.name = name;
|
||||
b.vars.after = cursor;
|
||||
});
|
||||
final res = await auth.gqlClient.request(req).first;
|
||||
final res = await auth.ghGqlClient.request(req).first;
|
||||
final p = res.data!.repository!.stargazers;
|
||||
return ListPayload(
|
||||
cursor: p.pageInfo.endCursor,
|
||||
|
Loading…
x
Reference in New Issue
Block a user