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

View File

@ -1,19 +1,19 @@
class PremiumResult { class PremiumResult {
final String accessToken; final String sessionId;
final List<String> scopes; final List<String> scopes;
final String login; final String login;
PremiumResult({ PremiumResult({
required this.accessToken, required this.sessionId,
required this.scopes, required this.scopes,
required this.login, required this.login,
}); });
factory PremiumResult.fromJson(Map json) { factory PremiumResult.fromJson(Map json) {
return PremiumResult( return PremiumResult(
accessToken: json["access_token"] ?? "", sessionId: json["session_id"] ?? "",
scopes: (json["scopes"] ?? []).cast<String>(), 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 { class PremiumProvider extends ChangeNotifier {
final SettingsProvider _settings; final SettingsProvider _settings;
List<String> get scopes => _settings.premiumScopes; List<String> get scopes => _settings.premiumScopes;
bool hasScope(String scope) => false; bool hasScope(String scope) =>
// scopes.contains(scope) || scopes.contains(PremiumScopes.all); scopes.contains(scope) || scopes.contains(PremiumScopes.all);
String get accessToken => _settings.premiumAccessToken; String get accessToken => _settings.premiumAccessToken;
String get login => _settings.premiumLogin; String get login => _settings.premiumLogin;
bool get hasPremium => bool get hasPremium =>
_settings.premiumAccessToken != "" && _settings.premiumScopes.isNotEmpty; _settings.plusSessionId != "" && _settings.premiumScopes.isNotEmpty;
late final PremiumAuth _auth; late final PremiumAuth _auth;
PremiumAuth get auth => _auth; PremiumAuth get auth => _auth;