GitHost: Improve error handling

In the case of OAuth errors which we get through the message
channel, throwing an exception doesn't help us as the init function
will not be aware about it.

So for now, I've moved the nodejs style error handling in this
particular case.
This commit is contained in:
Vishesh Handa
2019-02-13 22:43:34 +01:00
parent 5452fc0a78
commit c5c4d44431
3 changed files with 16 additions and 6 deletions

View File

@ -30,11 +30,16 @@ class GitHub implements GitHost {
var authCode = uri.queryParameters['code'];
if (authCode == null) {
print("GitHub: Missing auth code. Now what?");
throw GitHostException.OAuthFailed;
callback(GitHostException.OAuthFailed);
}
this._accessCode = await _getAccessCode(authCode);
callback();
if (this._accessCode == null || this._accessCode.isEmpty) {
print("GitHub: AccessCode is invalid: " + this._accessCode);
callback(GitHostException.OAuthFailed);
}
callback(null);
}
_platform.setMethodCallHandler(_handleMessages);

View File

@ -36,15 +36,17 @@ class GitLab implements GitHost {
print("GitLab: OAuth State incorrect");
print("Required State: " + _stateOAuth);
print("Actual State: " + state);
throw GitHostException.OAuthFailed;
callback(GitHostException.OAuthFailed);
return;
}
_accessCode = map['access_token'];
if (_accessCode == null) {
throw GitHostException.OAuthFailed;
callback(GitHostException.OAuthFailed);
return;
}
callback();
callback(null);
}
_platform.setMethodCallHandler(_handleMessages);

View File

@ -29,7 +29,10 @@ class GitHostSetupAutoConfigureState extends State<GitHostSetupAutoConfigure> {
print("Starting autoconfigure");
gitHost = createGitHost(widget.gitHostType);
try {
gitHost.init(() async {
gitHost.init((Exception error) async {
if (error != null) {
throw error;
}
print("GitHost Initalized: " + widget.gitHostType.toString());
GitRepo repo;