Better GitHub error messages (#112)

This commit is contained in:
Imran Remtulla
2022-11-14 20:56:04 -05:00
parent c8ec67aef3
commit aa2a25fffe
3 changed files with 22 additions and 25 deletions

View File

@@ -167,14 +167,8 @@ class GitHub extends AppSource {
} }
return APKDetails(version, targetRelease['apkUrls']); return APKDetails(version, targetRelease['apkUrls']);
} else { } else {
if (res.headers['x-ratelimit-remaining'] == '0') { rateLimitErrorCheck(res);
throw RateLimitError( throw getObtainiumHttpError(res);
(int.parse(res.headers['x-ratelimit-reset'] ?? '1800000000') /
60000000)
.round());
}
throw NoReleasesError();
} }
} }
@@ -200,15 +194,17 @@ class GitHub extends AppSource {
} }
return urlsWithDescriptions; return urlsWithDescriptions;
} else { } else {
if (res.headers['x-ratelimit-remaining'] == '0') { rateLimitErrorCheck(res);
throw RateLimitError( throw getObtainiumHttpError(res);
(int.parse(res.headers['x-ratelimit-reset'] ?? '1800000000') / }
60000000) }
.round());
} rateLimitErrorCheck(Response res) {
throw ObtainiumError( if (res.headers['x-ratelimit-remaining'] == '0') {
res.reasonPhrase ?? 'Error ${res.statusCode.toString()}', throw RateLimitError(
unexpected: true); (int.parse(res.headers['x-ratelimit-reset'] ?? '1800000000') /
60000000)
.round());
} }
} }
} }

View File

@@ -27,14 +27,9 @@ class GitHubStars implements MassAppUrlSource {
} }
return urlsWithDescriptions; return urlsWithDescriptions;
} else { } else {
if (res.headers['x-ratelimit-remaining'] == '0') { var gh = GitHub();
throw RateLimitError( gh.rateLimitErrorCheck(res);
(int.parse(res.headers['x-ratelimit-reset'] ?? '1800000000') / throw getObtainiumHttpError(res);
60000000)
.round());
}
throw ObtainiumError('Unable to find user\'s starred repos');
} }
} }

View File

@@ -4,6 +4,7 @@
import 'dart:convert'; import 'dart:convert';
import 'package:html/dom.dart'; import 'package:html/dom.dart';
import 'package:http/http.dart';
import 'package:obtainium/app_sources/fdroid.dart'; import 'package:obtainium/app_sources/fdroid.dart';
import 'package:obtainium/app_sources/github.dart'; import 'package:obtainium/app_sources/github.dart';
import 'package:obtainium/app_sources/gitlab.dart'; import 'package:obtainium/app_sources/gitlab.dart';
@@ -164,6 +165,11 @@ class AppSource {
} }
} }
ObtainiumError getObtainiumHttpError(Response res) {
return ObtainiumError(
res.reasonPhrase ?? 'Error ${res.statusCode.toString()}');
}
abstract class MassAppUrlSource { abstract class MassAppUrlSource {
late String name; late String name;
late List<String> requiredArgs; late List<String> requiredArgs;