refilc+ test subscription is completely working with stripe

This commit is contained in:
Kima 2024-02-29 22:35:35 +01:00
parent fea4d24e07
commit 2d396110bd
3 changed files with 19 additions and 12 deletions

View File

@ -123,7 +123,7 @@ class PremiumAuth {
Future<bool> refreshAuth({bool removePremium = false}) async {
if (!removePremium) {
if (_settings.premiumAccessToken == "") {
if (_settings.plusSessionId == "") {
await _settings.update(premiumScopes: [], premiumLogin: "");
return false;
}
@ -140,11 +140,11 @@ class PremiumAuth {
try {
if (kDebugMode) {
print(FilcAPI.plusActivation);
print(_settings.premiumAccessToken);
print(_settings.plusSessionId);
}
final res = await http.post(Uri.parse(FilcAPI.plusActivation), body: {
"access_token": _settings.premiumAccessToken,
"session_id": _settings.plusSessionId,
});
if (kDebugMode) print(res.body);
@ -156,13 +156,16 @@ class PremiumAuth {
if (res.body == "empty_sponsors") {
throw "This user isn't sponsoring anyone currently!";
}
if (res.body == "expired_subscription") {
throw "This user isn't a subscriber anymore!";
}
final premium = PremiumResult.fromJson(jsonDecode(res.body) as Map);
// successful activation of reFilc+
log("[INFO] reFilc+ activated: ${premium.scopes.join(',')}");
await _settings.update(
premiumAccessToken: premium.accessToken,
plusSessionId: premium.sessionId,
premiumScopes: premium.scopes,
premiumLogin: premium.login,
);
@ -178,7 +181,11 @@ class PremiumAuth {
// activation of reFilc+ failed
await _settings.update(
premiumAccessToken: "", premiumScopes: [], premiumLogin: "");
premiumAccessToken: "",
premiumScopes: [],
premiumLogin: "",
plusSessionId: "",
);
return false;
}
}

View File

@ -1,19 +1,19 @@
class PremiumResult {
final String accessToken;
final String sessionId;
final List<String> scopes;
final String login;
PremiumResult({
required this.accessToken,
required this.sessionId,
required this.scopes,
required this.login,
});
factory PremiumResult.fromJson(Map json) {
return PremiumResult(
accessToken: json["access_token"] ?? "",
sessionId: json["session_id"] ?? "",
scopes: (json["scopes"] ?? []).cast<String>(),
login: json["login"] ?? "",
login: json["customer_id"] ?? "",
);
}
}

View File

@ -6,12 +6,12 @@ import 'package:flutter/widgets.dart';
class PremiumProvider extends ChangeNotifier {
final SettingsProvider _settings;
List<String> get scopes => _settings.premiumScopes;
bool hasScope(String scope) => false;
// scopes.contains(scope) || scopes.contains(PremiumScopes.all);
bool hasScope(String scope) =>
scopes.contains(scope) || scopes.contains(PremiumScopes.all);
String get accessToken => _settings.premiumAccessToken;
String get login => _settings.premiumLogin;
bool get hasPremium =>
_settings.premiumAccessToken != "" && _settings.premiumScopes.isNotEmpty;
_settings.plusSessionId != "" && _settings.premiumScopes.isNotEmpty;
late final PremiumAuth _auth;
PremiumAuth get auth => _auth;