🐛 Dozens of microservices releated changes
This commit is contained in:
@@ -39,7 +39,7 @@ class WebFeedNotifier
|
|||||||
try {
|
try {
|
||||||
final client = ref.read(apiClientProvider);
|
final client = ref.read(apiClientProvider);
|
||||||
final response = await client.get(
|
final response = await client.get(
|
||||||
'/publishers/${arg.pubName}/feeds/${arg.feedId}',
|
'/sphere/publishers/${arg.pubName}/feeds/${arg.feedId}',
|
||||||
);
|
);
|
||||||
return SnWebFeed.fromJson(response.data);
|
return SnWebFeed.fromJson(response.data);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -51,7 +51,7 @@ class WebFeedNotifier
|
|||||||
state = const AsyncValue.loading();
|
state = const AsyncValue.loading();
|
||||||
try {
|
try {
|
||||||
final client = ref.read(apiClientProvider);
|
final client = ref.read(apiClientProvider);
|
||||||
final url = '/publishers/${feed.publisherId}/feeds';
|
final url = '/sphere/publishers/${feed.publisherId}/feeds';
|
||||||
|
|
||||||
final response =
|
final response =
|
||||||
feed.id.isEmpty
|
feed.id.isEmpty
|
||||||
@@ -98,7 +98,7 @@ class WebFeedNotifier
|
|||||||
try {
|
try {
|
||||||
final client = ref.read(apiClientProvider);
|
final client = ref.read(apiClientProvider);
|
||||||
await client.post(
|
await client.post(
|
||||||
'/publishers/${arg.pubName}/feeds/$feedId/scrap',
|
'/sphere/publishers/${arg.pubName}/feeds/$feedId/scrap',
|
||||||
options: Options(
|
options: Options(
|
||||||
sendTimeout: const Duration(seconds: 60),
|
sendTimeout: const Duration(seconds: 60),
|
||||||
receiveTimeout: const Duration(seconds: 180),
|
receiveTimeout: const Duration(seconds: 180),
|
||||||
@@ -107,7 +107,7 @@ class WebFeedNotifier
|
|||||||
|
|
||||||
// Reload the feed
|
// Reload the feed
|
||||||
final response = await client.get(
|
final response = await client.get(
|
||||||
'/publishers/${arg.pubName}/feeds/$feedId',
|
'/sphere/publishers/${arg.pubName}/feeds/$feedId',
|
||||||
);
|
);
|
||||||
state = AsyncValue.data(SnWebFeed.fromJson(response.data));
|
state = AsyncValue.data(SnWebFeed.fromJson(response.data));
|
||||||
} catch (error, stackTrace) {
|
} catch (error, stackTrace) {
|
||||||
|
@@ -83,7 +83,7 @@ class PublisherMemberListNotifier extends _$PublisherMemberListNotifier
|
|||||||
final offset = cursor != null ? int.parse(cursor) : 0;
|
final offset = cursor != null ? int.parse(cursor) : 0;
|
||||||
|
|
||||||
final response = await apiClient.get(
|
final response = await apiClient.get(
|
||||||
'/publishers/$uname/members',
|
'/sphere/publishers/$uname/members',
|
||||||
queryParameters: {'offset': offset, 'take': _pageSize},
|
queryParameters: {'offset': offset, 'take': _pageSize},
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -143,13 +143,18 @@ class CreatorHubScreen extends HookConsumerWidget {
|
|||||||
);
|
);
|
||||||
|
|
||||||
void updatePublisher() {
|
void updatePublisher() {
|
||||||
context.pushNamed('creatorEdit', pathParameters: {'name': currentPublisher.value!.name}).then((
|
context
|
||||||
value,
|
.pushNamed(
|
||||||
) async {
|
'creatorEdit',
|
||||||
|
pathParameters: {'name': currentPublisher.value!.name},
|
||||||
|
)
|
||||||
|
.then((value) async {
|
||||||
if (value == null) return;
|
if (value == null) return;
|
||||||
final data = await ref.refresh(publishersManagedProvider.future);
|
final data = await ref.refresh(publishersManagedProvider.future);
|
||||||
currentPublisher.value =
|
currentPublisher.value =
|
||||||
data.where((e) => e.id == currentPublisher.value!.id).firstOrNull;
|
data
|
||||||
|
.where((e) => e.id == currentPublisher.value!.id)
|
||||||
|
.firstOrNull;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -350,7 +355,12 @@ class CreatorHubScreen extends HookConsumerWidget {
|
|||||||
horizontal: 24,
|
horizontal: 24,
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
context.pushNamed('creatorStickers', pathParameters: {'name': currentPublisher.value!.name});
|
context.pushNamed(
|
||||||
|
'creatorStickers',
|
||||||
|
pathParameters: {
|
||||||
|
'name': currentPublisher.value!.name,
|
||||||
|
},
|
||||||
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
ListTile(
|
ListTile(
|
||||||
@@ -362,7 +372,12 @@ class CreatorHubScreen extends HookConsumerWidget {
|
|||||||
horizontal: 24,
|
horizontal: 24,
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
context.pushNamed('creatorPosts', pathParameters: {'name': currentPublisher.value!.name});
|
context.pushNamed(
|
||||||
|
'creatorPosts',
|
||||||
|
pathParameters: {
|
||||||
|
'name': currentPublisher.value!.name,
|
||||||
|
},
|
||||||
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
ListTile(
|
ListTile(
|
||||||
|
@@ -28,9 +28,12 @@ class StickersScreen extends HookConsumerWidget {
|
|||||||
actions: [
|
actions: [
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
context.pushNamed('creatorStickerPackNew', queryParameters: {'pubName': pubName}).then((
|
context
|
||||||
value,
|
.pushNamed(
|
||||||
) {
|
'creatorStickerPackNew',
|
||||||
|
queryParameters: {'pubName': pubName},
|
||||||
|
)
|
||||||
|
.then((value) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
ref.invalidate(stickerPacksNotifierProvider(pubName));
|
ref.invalidate(stickerPacksNotifierProvider(pubName));
|
||||||
}
|
}
|
||||||
@@ -71,7 +74,10 @@ class SliverStickerPacksList extends HookConsumerWidget {
|
|||||||
subtitle: Text(sticker.description),
|
subtitle: Text(sticker.description),
|
||||||
trailing: const Icon(Symbols.chevron_right),
|
trailing: const Icon(Symbols.chevron_right),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
context.pushNamed('creatorStickerPackDetail', pathParameters: {'pubName': pubName, 'packId': sticker.id});
|
context.pushNamed(
|
||||||
|
'creatorStickerPackDetail',
|
||||||
|
pathParameters: {'pubName': pubName, 'packId': sticker.id},
|
||||||
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -99,7 +105,7 @@ class StickerPacksNotifier extends _$StickerPacksNotifier
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
final response = await client.get(
|
final response = await client.get(
|
||||||
'/stickers',
|
'/sphere/stickers',
|
||||||
queryParameters: {
|
queryParameters: {
|
||||||
'offset': offset,
|
'offset': offset,
|
||||||
'take': _pageSize,
|
'take': _pageSize,
|
||||||
@@ -129,7 +135,7 @@ class StickerPacksNotifier extends _$StickerPacksNotifier
|
|||||||
Future<SnStickerPack?> stickerPack(Ref ref, String? packId) async {
|
Future<SnStickerPack?> stickerPack(Ref ref, String? packId) async {
|
||||||
if (packId == null) return null;
|
if (packId == null) return null;
|
||||||
final apiClient = ref.watch(apiClientProvider);
|
final apiClient = ref.watch(apiClientProvider);
|
||||||
final resp = await apiClient.get('/stickers/$packId');
|
final resp = await apiClient.get('/sphere/stickers/$packId');
|
||||||
return SnStickerPack.fromJson(resp.data);
|
return SnStickerPack.fromJson(resp.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,7 +181,7 @@ class EditStickerPacksScreen extends HookConsumerWidget {
|
|||||||
submitting.value = true;
|
submitting.value = true;
|
||||||
final apiClient = ref.watch(apiClientProvider);
|
final apiClient = ref.watch(apiClientProvider);
|
||||||
final resp = await apiClient.request(
|
final resp = await apiClient.request(
|
||||||
'/stickers',
|
'/sphere/stickers',
|
||||||
data: {
|
data: {
|
||||||
'name': nameController.text,
|
'name': nameController.text,
|
||||||
'description': descriptionController.text,
|
'description': descriptionController.text,
|
||||||
|
@@ -25,14 +25,14 @@ part 'hub.g.dart';
|
|||||||
Future<DeveloperStats?> developerStats(Ref ref, String? uname) async {
|
Future<DeveloperStats?> developerStats(Ref ref, String? uname) async {
|
||||||
if (uname == null) return null;
|
if (uname == null) return null;
|
||||||
final apiClient = ref.watch(apiClientProvider);
|
final apiClient = ref.watch(apiClientProvider);
|
||||||
final resp = await apiClient.get('/developers/$uname/stats');
|
final resp = await apiClient.get('/sphere/developers/$uname/stats');
|
||||||
return DeveloperStats.fromJson(resp.data);
|
return DeveloperStats.fromJson(resp.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@riverpod
|
@riverpod
|
||||||
Future<List<SnPublisher>> developers(Ref ref) async {
|
Future<List<SnPublisher>> developers(Ref ref) async {
|
||||||
final client = ref.watch(apiClientProvider);
|
final client = ref.watch(apiClientProvider);
|
||||||
final resp = await client.get('/developers');
|
final resp = await client.get('/sphere/developers');
|
||||||
return resp.data
|
return resp.data
|
||||||
.map((e) => SnPublisher.fromJson(e))
|
.map((e) => SnPublisher.fromJson(e))
|
||||||
.cast<SnPublisher>()
|
.cast<SnPublisher>()
|
||||||
@@ -243,7 +243,12 @@ class DeveloperHubScreen extends HookConsumerWidget {
|
|||||||
horizontal: 24,
|
horizontal: 24,
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
context.pushNamed('developerApps', pathParameters: {'name': currentDeveloper.value!.name});
|
context.pushNamed(
|
||||||
|
'developerApps',
|
||||||
|
pathParameters: {
|
||||||
|
'name': currentDeveloper.value!.name,
|
||||||
|
},
|
||||||
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@@ -334,7 +339,7 @@ class _DeveloperEnrollmentSheet extends HookConsumerWidget {
|
|||||||
Future<void> enroll(SnPublisher publisher) async {
|
Future<void> enroll(SnPublisher publisher) async {
|
||||||
try {
|
try {
|
||||||
final client = ref.read(apiClientProvider);
|
final client = ref.read(apiClientProvider);
|
||||||
await client.post('/developers/${publisher.name}/enroll');
|
await client.post('/sphere/developers/${publisher.name}/enroll');
|
||||||
if (context.mounted) {
|
if (context.mounted) {
|
||||||
Navigator.pop(context, true);
|
Navigator.pop(context, true);
|
||||||
}
|
}
|
||||||
|
@@ -166,7 +166,7 @@ class RealmDetailScreen extends HookConsumerWidget {
|
|||||||
apiClientProvider,
|
apiClientProvider,
|
||||||
);
|
);
|
||||||
await apiClient.post(
|
await apiClient.post(
|
||||||
'/realms/$slug/members/me',
|
'/sphere/realms/$slug/members/me',
|
||||||
);
|
);
|
||||||
ref.invalidate(
|
ref.invalidate(
|
||||||
realmIdentityProvider(slug),
|
realmIdentityProvider(slug),
|
||||||
@@ -213,7 +213,10 @@ class RealmDetailScreen extends HookConsumerWidget {
|
|||||||
return ChatRoomListTile(
|
return ChatRoomListTile(
|
||||||
room: rooms[index],
|
room: rooms[index],
|
||||||
onTap: () {
|
onTap: () {
|
||||||
context.pushNamed('chatRoom', pathParameters: {'id': rooms[index].id});
|
context.pushNamed(
|
||||||
|
'chatRoom',
|
||||||
|
pathParameters: {'id': rooms[index].id},
|
||||||
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}, childCount: rooms.length),
|
}, childCount: rooms.length),
|
||||||
@@ -251,7 +254,10 @@ class _RealmActionMenu extends HookConsumerWidget {
|
|||||||
if (isModerator)
|
if (isModerator)
|
||||||
PopupMenuItem(
|
PopupMenuItem(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
context.pushReplacement('/sphere/realms/$realmSlug/edit');
|
context.pushReplacementNamed(
|
||||||
|
'realmEdit',
|
||||||
|
pathParameters: {'slug': realmSlug},
|
||||||
|
);
|
||||||
},
|
},
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
@@ -319,7 +325,7 @@ class _RealmActionMenu extends HookConsumerWidget {
|
|||||||
if (confirm) {
|
if (confirm) {
|
||||||
final client = ref.watch(apiClientProvider);
|
final client = ref.watch(apiClientProvider);
|
||||||
client.delete(
|
client.delete(
|
||||||
'/realms/$realmSlug/members/me',
|
'/sphere/realms/$realmSlug/members/me',
|
||||||
);
|
);
|
||||||
ref.invalidate(realmsJoinedProvider);
|
ref.invalidate(realmsJoinedProvider);
|
||||||
if (context.mounted) {
|
if (context.mounted) {
|
||||||
@@ -389,7 +395,7 @@ class RealmMemberListNotifier extends _$RealmMemberListNotifier
|
|||||||
final offset = cursor != null ? int.parse(cursor) : 0;
|
final offset = cursor != null ? int.parse(cursor) : 0;
|
||||||
|
|
||||||
final response = await apiClient.get(
|
final response = await apiClient.get(
|
||||||
'/realms/$realmSlug/members',
|
'/sphere/realms/$realmSlug/members',
|
||||||
queryParameters: {'offset': offset, 'take': _pageSize},
|
queryParameters: {'offset': offset, 'take': _pageSize},
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -432,7 +438,7 @@ class RealmMemberNotifier extends StateNotifier<RealmMemberState> {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
final response = await _apiClient.get(
|
final response = await _apiClient.get(
|
||||||
'/realms/$realmSlug/members',
|
'/sphere/realms/$realmSlug/members',
|
||||||
queryParameters: {'offset': offset, 'take': take},
|
queryParameters: {'offset': offset, 'take': take},
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -487,7 +493,7 @@ class _RealmMemberListSheet extends HookConsumerWidget {
|
|||||||
try {
|
try {
|
||||||
final apiClient = ref.watch(apiClientProvider);
|
final apiClient = ref.watch(apiClientProvider);
|
||||||
await apiClient.post(
|
await apiClient.post(
|
||||||
'/realms/invites/$realmSlug',
|
'/sphere/realms/invites/$realmSlug',
|
||||||
data: {'related_user_id': result.id, 'role': 0},
|
data: {'related_user_id': result.id, 'role': 0},
|
||||||
);
|
);
|
||||||
// Refresh both providers
|
// Refresh both providers
|
||||||
@@ -619,7 +625,7 @@ class _RealmMemberListSheet extends HookConsumerWidget {
|
|||||||
apiClientProvider,
|
apiClientProvider,
|
||||||
);
|
);
|
||||||
await apiClient.delete(
|
await apiClient.delete(
|
||||||
'/realms/$realmSlug/members/${member.accountId}',
|
'/sphere/realms/$realmSlug/members/${member.accountId}',
|
||||||
);
|
);
|
||||||
// Refresh both providers
|
// Refresh both providers
|
||||||
memberNotifier.reset();
|
memberNotifier.reset();
|
||||||
@@ -769,7 +775,7 @@ class _RealmMemberRoleSheet extends HookConsumerWidget {
|
|||||||
|
|
||||||
final apiClient = ref.read(apiClientProvider);
|
final apiClient = ref.read(apiClientProvider);
|
||||||
await apiClient.patch(
|
await apiClient.patch(
|
||||||
'/realms/$realmSlug/members/${member.accountId}/role',
|
'/sphere/realms/$realmSlug/members/${member.accountId}/role',
|
||||||
data: newRole,
|
data: newRole,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@@ -108,7 +108,10 @@ class RealmListScreen extends HookConsumerWidget {
|
|||||||
title: Text(value[item].name),
|
title: Text(value[item].name),
|
||||||
subtitle: Text(value[item].description),
|
subtitle: Text(value[item].description),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
context.pushNamed('realmDetail', pathParameters: {'slug': value[item].slug});
|
context.pushNamed(
|
||||||
|
'realmDetail',
|
||||||
|
pathParameters: {'slug': value[item].slug},
|
||||||
|
);
|
||||||
},
|
},
|
||||||
contentPadding: const EdgeInsets.only(
|
contentPadding: const EdgeInsets.only(
|
||||||
left: 16,
|
left: 16,
|
||||||
@@ -253,7 +256,7 @@ class EditRealmScreen extends HookConsumerWidget {
|
|||||||
try {
|
try {
|
||||||
final client = ref.watch(apiClientProvider);
|
final client = ref.watch(apiClientProvider);
|
||||||
final resp = await client.request(
|
final resp = await client.request(
|
||||||
slug == null ? '/realms' : '/realms/$slug',
|
'/sphere${slug == null ? '/realms' : '/realms/$slug'}',
|
||||||
data: {
|
data: {
|
||||||
'slug': slugController.text,
|
'slug': slugController.text,
|
||||||
'name': nameController.text,
|
'name': nameController.text,
|
||||||
|
@@ -51,7 +51,7 @@ class TransactionListNotifier extends _$TransactionListNotifier
|
|||||||
final queryParams = {'offset': offset, 'take': _pageSize};
|
final queryParams = {'offset': offset, 'take': _pageSize};
|
||||||
|
|
||||||
final response = await client.get(
|
final response = await client.get(
|
||||||
'/wallets/transactions',
|
'/id/wallets/transactions',
|
||||||
queryParameters: queryParams,
|
queryParameters: queryParams,
|
||||||
);
|
);
|
||||||
final total = int.parse(response.headers.value('X-Total') ?? '0');
|
final total = int.parse(response.headers.value('X-Total') ?? '0');
|
||||||
@@ -110,7 +110,7 @@ class WalletScreen extends HookConsumerWidget {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
).center();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Column(
|
return Column(
|
||||||
|
@@ -27,7 +27,10 @@ class CloudFileWidget extends ConsumerWidget {
|
|||||||
final serverUrl = ref.watch(serverUrlProvider);
|
final serverUrl = ref.watch(serverUrlProvider);
|
||||||
final uri = '$serverUrl/drive/files/${item.id}';
|
final uri = '$serverUrl/drive/files/${item.id}';
|
||||||
|
|
||||||
var ratio = double.parse(item.fileMeta?['ratio'] ?? 1);
|
var ratio =
|
||||||
|
item.fileMeta?['ratio'] is num
|
||||||
|
? item.fileMeta!['ratio'].toDouble()
|
||||||
|
: double.parse(item.fileMeta?['ratio'] ?? 1);
|
||||||
if (ratio == 0) ratio = 1.0;
|
if (ratio == 0) ratio = 1.0;
|
||||||
final content = switch (item.mimeType?.split('/').firstOrNull) {
|
final content = switch (item.mimeType?.split('/').firstOrNull) {
|
||||||
"image" => AspectRatio(
|
"image" => AspectRatio(
|
||||||
|
@@ -34,7 +34,7 @@ class RealmListNotifier extends _$RealmListNotifier
|
|||||||
};
|
};
|
||||||
|
|
||||||
final response = await client.get(
|
final response = await client.get(
|
||||||
'/discovery/realms',
|
'/sphere/discovery/realms',
|
||||||
queryParameters: queryParams,
|
queryParameters: queryParams,
|
||||||
);
|
);
|
||||||
final total = int.parse(response.headers.value('X-Total') ?? '0');
|
final total = int.parse(response.headers.value('X-Total') ?? '0');
|
||||||
|
Reference in New Issue
Block a user