♻️ Better http client management, no more expired token
This commit is contained in:
@ -22,7 +22,7 @@ class _AccountProfilePopupState extends State<AccountProfilePopup> {
|
||||
void getUserinfo() async {
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
final client = GetConnect();
|
||||
client.httpClient.baseUrl = ServiceFinder.services['passport'];
|
||||
|
||||
final resp = await client.get('/api/users/${widget.account.name}');
|
||||
|
@ -3,7 +3,6 @@ import 'package:get/get.dart';
|
||||
import 'package:solian/exts.dart';
|
||||
import 'package:solian/models/channel.dart';
|
||||
import 'package:solian/providers/auth.dart';
|
||||
import 'package:solian/services.dart';
|
||||
|
||||
class ChannelDeletionDialog extends StatefulWidget {
|
||||
final Channel channel;
|
||||
@ -30,9 +29,7 @@ class _ChannelDeletionDialogState extends State<ChannelDeletionDialog> {
|
||||
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['messaging'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'messaging');
|
||||
|
||||
final resp = await client
|
||||
.delete('/api/channels/${widget.realm}/${widget.channel.id}');
|
||||
@ -51,9 +48,7 @@ class _ChannelDeletionDialogState extends State<ChannelDeletionDialog> {
|
||||
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['messaging'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'messaging');
|
||||
|
||||
final resp = await client.delete(
|
||||
'/api/channels/${widget.realm}/${widget.channel.alias}/members/me',
|
||||
|
@ -39,8 +39,7 @@ class _ChannelMemberListPopupState extends State<ChannelMemberListPopup> {
|
||||
void getMembers() async {
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['messaging'];
|
||||
final client = ServiceFinder.configureClient('messaging');
|
||||
|
||||
final resp = await client
|
||||
.get('/api/channels/${widget.realm}/${widget.channel.alias}/members');
|
||||
@ -76,9 +75,7 @@ class _ChannelMemberListPopupState extends State<ChannelMemberListPopup> {
|
||||
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['messaging'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'messaging');
|
||||
|
||||
final resp = await client.post(
|
||||
'/api/channels/${widget.realm}/${widget.channel.alias}/members',
|
||||
@ -99,9 +96,7 @@ class _ChannelMemberListPopupState extends State<ChannelMemberListPopup> {
|
||||
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['messaging'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'messaging');
|
||||
|
||||
final resp = await client.request(
|
||||
'/api/channels/${widget.realm}/${widget.channel.alias}/members',
|
||||
|
@ -5,7 +5,6 @@ import 'package:solian/models/call.dart';
|
||||
import 'package:solian/models/channel.dart';
|
||||
import 'package:solian/models/realm.dart';
|
||||
import 'package:solian/providers/auth.dart';
|
||||
import 'package:solian/services.dart';
|
||||
|
||||
class ChatCallButton extends StatefulWidget {
|
||||
final Realm? realm;
|
||||
@ -34,9 +33,7 @@ class _ChatCallButtonState extends State<ChatCallButton> {
|
||||
final AuthProvider auth = Get.find();
|
||||
if (!await auth.isAuthorized) return;
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['messaging'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'messaging');
|
||||
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
@ -60,9 +57,7 @@ class _ChatCallButtonState extends State<ChatCallButton> {
|
||||
final AuthProvider auth = Get.find();
|
||||
if (!await auth.isAuthorized) return;
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['messaging'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'messaging');
|
||||
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
|
@ -5,7 +5,6 @@ import 'package:solian/models/channel.dart';
|
||||
import 'package:solian/models/message.dart';
|
||||
import 'package:solian/models/realm.dart';
|
||||
import 'package:solian/providers/auth.dart';
|
||||
import 'package:solian/services.dart';
|
||||
|
||||
class ChatMessageDeletionDialog extends StatefulWidget {
|
||||
final Channel channel;
|
||||
@ -31,9 +30,7 @@ class _ChatMessageDeletionDialogState extends State<ChatMessageDeletionDialog> {
|
||||
final AuthProvider auth = Get.find();
|
||||
if (!await auth.isAuthorized) return;
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['messaging'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'messaging');
|
||||
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
|
@ -6,7 +6,6 @@ import 'package:solian/models/account.dart';
|
||||
import 'package:solian/models/channel.dart';
|
||||
import 'package:solian/models/message.dart';
|
||||
import 'package:solian/providers/auth.dart';
|
||||
import 'package:solian/services.dart';
|
||||
import 'package:solian/widgets/attachments/attachment_publish.dart';
|
||||
import 'package:solian/widgets/chat/chat_message.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
@ -70,9 +69,7 @@ class _ChatMessageInputState extends State<ChatMessageInput> {
|
||||
final prof = await auth.getProfile();
|
||||
if (!await auth.isAuthorized) return;
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['messaging'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'messaging');
|
||||
|
||||
final payload = {
|
||||
'uuid': const Uuid().v4(),
|
||||
|
@ -29,9 +29,9 @@ class BackgroundStateWidget extends StatelessWidget {
|
||||
].join('\n'),
|
||||
icon: const Icon(Icons.wifi_off)
|
||||
.animate(onPlay: (c) => c.repeat())
|
||||
.fadeIn(duration: 500.ms)
|
||||
.fadeIn(duration: 800.ms)
|
||||
.then()
|
||||
.fadeOut(duration: 500.ms),
|
||||
.fadeOut(duration: 800.ms),
|
||||
onPressed: () {
|
||||
if (account.isConnected.isFalse) account.connect();
|
||||
if (chat.isConnected.isFalse) chat.connect();
|
||||
|
@ -9,7 +9,6 @@ import 'package:solian/models/post.dart';
|
||||
import 'package:solian/providers/auth.dart';
|
||||
import 'package:solian/router.dart';
|
||||
import 'package:solian/screens/posts/post_publish.dart';
|
||||
import 'package:solian/services.dart';
|
||||
|
||||
class PostAction extends StatefulWidget {
|
||||
final Post item;
|
||||
@ -154,9 +153,7 @@ class _PostDeletionDialogState extends State<PostDeletionDialog> {
|
||||
final AuthProvider auth = Get.find();
|
||||
if (!await auth.isAuthorized) return;
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['interactive'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'interactive');
|
||||
|
||||
setState(() => _isBusy = true);
|
||||
final resp = await client.delete('/api/posts/${widget.item.id}');
|
||||
|
@ -4,7 +4,6 @@ import 'package:solian/exts.dart';
|
||||
import 'package:solian/models/post.dart';
|
||||
import 'package:solian/models/reaction.dart';
|
||||
import 'package:solian/providers/auth.dart';
|
||||
import 'package:solian/services.dart';
|
||||
import 'package:solian/widgets/posts/post_reaction.dart';
|
||||
import 'package:solian/widgets/posts/post_replies.dart';
|
||||
|
||||
@ -51,9 +50,7 @@ class _PostQuickActionState extends State<PostQuickAction> {
|
||||
if (_isSubmitting) return;
|
||||
if (!await auth.isAuthorized) return;
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['interactive'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'interactive');
|
||||
|
||||
setState(() => _isSubmitting = true);
|
||||
|
||||
|
@ -3,7 +3,6 @@ import 'package:get/get.dart';
|
||||
import 'package:solian/exts.dart';
|
||||
import 'package:solian/models/realm.dart';
|
||||
import 'package:solian/providers/auth.dart';
|
||||
import 'package:solian/services.dart';
|
||||
|
||||
class RealmDeletionDialog extends StatefulWidget {
|
||||
final Realm realm;
|
||||
@ -22,15 +21,13 @@ class RealmDeletionDialog extends StatefulWidget {
|
||||
class _RealmDeletionDialogState extends State<RealmDeletionDialog> {
|
||||
bool _isBusy = false;
|
||||
|
||||
Future<void> deleteChannel() async {
|
||||
Future<void> deleteRealm() async {
|
||||
final AuthProvider auth = Get.find();
|
||||
if (!await auth.isAuthorized) return;
|
||||
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['passport'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'passport');
|
||||
|
||||
final resp = await client.delete('/api/realms/${widget.realm.id}');
|
||||
if (resp.statusCode != 200) {
|
||||
@ -42,15 +39,13 @@ class _RealmDeletionDialogState extends State<RealmDeletionDialog> {
|
||||
setState(() => _isBusy = false);
|
||||
}
|
||||
|
||||
Future<void> leaveChannel() async {
|
||||
Future<void> leaveRealm() async {
|
||||
final AuthProvider auth = Get.find();
|
||||
if (!await auth.isAuthorized) return;
|
||||
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['passport'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'passport');
|
||||
|
||||
final resp =
|
||||
await client.delete('/api/realms/${widget.realm.id}/members/me');
|
||||
@ -80,8 +75,8 @@ class _RealmDeletionDialogState extends State<RealmDeletionDialog> {
|
||||
onPressed: _isBusy
|
||||
? null
|
||||
: widget.isOwned
|
||||
? deleteChannel
|
||||
: leaveChannel,
|
||||
? deleteRealm
|
||||
: leaveRealm,
|
||||
child: Text('confirm'.tr),
|
||||
),
|
||||
],
|
||||
|
@ -37,8 +37,7 @@ class _RealmMemberListPopupState extends State<RealmMemberListPopup> {
|
||||
void getMembers() async {
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['passport'];
|
||||
final client = ServiceFinder.configureClient('passport');
|
||||
|
||||
final resp = await client.get('/api/realms/${widget.realm.alias}/members');
|
||||
if (resp.statusCode == 200) {
|
||||
@ -73,9 +72,7 @@ class _RealmMemberListPopupState extends State<RealmMemberListPopup> {
|
||||
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['passport'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'passport');
|
||||
|
||||
final resp = await client.post(
|
||||
'/api/realms/${widget.realm.alias}/members',
|
||||
@ -96,9 +93,7 @@ class _RealmMemberListPopupState extends State<RealmMemberListPopup> {
|
||||
|
||||
setState(() => _isBusy = true);
|
||||
|
||||
final client = GetConnect(maxAuthRetries: 3);
|
||||
client.httpClient.baseUrl = ServiceFinder.services['passport'];
|
||||
client.httpClient.addAuthenticator(auth.requestAuthenticator);
|
||||
final client = auth.configureClient(service: 'passport');
|
||||
|
||||
final resp = await client.request(
|
||||
'/api/realms/${widget.realm.alias}/members',
|
||||
|
Reference in New Issue
Block a user