Skip to content

Commit 89ef8cb

Browse files
committed
feat: Removed meilisearch integrations
1 parent 17a02a2 commit 89ef8cb

File tree

2 files changed

+2
-101
lines changed

2 files changed

+2
-101
lines changed

lib/controllers/rooms_controller.dart

Lines changed: 2 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import 'package:flutter/material.dart';
66
import 'package:resonate/l10n/app_localizations.dart';
77
import 'package:get/get.dart';
88
import 'package:loading_animation_widget/loading_animation_widget.dart';
9-
import 'package:meilisearch/meilisearch.dart';
109
import 'package:resonate/controllers/tabview_controller.dart';
1110
import 'package:resonate/models/appwrite_room.dart';
1211
import 'package:resonate/models/appwrite_upcomming_room.dart';
@@ -30,18 +29,10 @@ class RoomsController extends GetxController {
3029
RxList<AppwriteRoom> filteredRooms = <AppwriteRoom>[].obs;
3130
RxList<AppwriteUpcommingRoom> filteredUpcomingRooms =
3231
<AppwriteUpcommingRoom>[].obs;
33-
final MeiliSearchClient meilisearchClient = MeiliSearchClient(
34-
meilisearchEndpoint,
35-
meilisearchApiKey,
36-
);
37-
late final MeiliSearchIndex roomsIndex;
38-
late final MeiliSearchIndex upcomingRoomsIndex;
3932

4033
@override
4134
void onInit() async {
4235
super.onInit();
43-
roomsIndex = meilisearchClient.index('live_rooms');
44-
upcomingRoomsIndex = meilisearchClient.index('upcoming_rooms');
4536
await getRooms();
4637
filteredRooms.value = rooms;
4738
}
@@ -179,43 +170,16 @@ class RoomsController extends GetxController {
179170
searchBarIsEmpty.value = false;
180171
}
181172
try {
182-
if (isUsingMeilisearch) {
183-
try {
184-
final indexToUse = isLiveRooms ? roomsIndex : upcomingRoomsIndex;
185-
final meilisearchResult = await indexToUse.search(query);
186-
187-
if (isLiveRooms) {
188-
filteredRooms.value = await convertMeilisearchResults(
189-
meilisearchResult.hits,
190-
isLiveRooms: true,
191-
);
192-
} else {
193-
filteredUpcomingRooms.value = await convertMeilisearchResults(
194-
meilisearchResult.hits,
195-
isLiveRooms: false,
196-
originalUpcomingRooms: upcomingRooms ?? [],
197-
);
198-
}
199-
return;
200-
} catch (meilisearchError) {
201-
log(
202-
'Meilisearch failed, falling back to local search: $meilisearchError',
203-
);
204-
}
205-
}
206-
// Local search
207173
final lowerQuery = query.toLowerCase();
208174
if (isLiveRooms) {
209175
filteredRooms.value = rooms.where((room) {
210176
return room.name.toLowerCase().contains(lowerQuery) ||
211-
room.description.toLowerCase().contains(lowerQuery) ||
212-
room.tags.any((tag) => tag.toLowerCase().contains(lowerQuery));
177+
room.description.toLowerCase().contains(lowerQuery);
213178
}).toList();
214179
} else {
215180
filteredUpcomingRooms.value = (upcomingRooms ?? []).where((room) {
216181
return room.name.toLowerCase().contains(lowerQuery) ||
217-
room.description.toLowerCase().contains(lowerQuery) ||
218-
room.tags.any((tag) => tag.toLowerCase().contains(lowerQuery));
182+
room.description.toLowerCase().contains(lowerQuery);
219183
}).toList();
220184
}
221185
} catch (e) {
@@ -232,68 +196,6 @@ class RoomsController extends GetxController {
232196
}
233197
}
234198

235-
Future<dynamic> convertMeilisearchResults(
236-
List<Map<String, dynamic>> meilisearchHits, {
237-
required bool isLiveRooms,
238-
List<AppwriteUpcommingRoom>? originalUpcomingRooms,
239-
}) async {
240-
if (isLiveRooms) {
241-
//live rooms
242-
return await Future.wait(
243-
meilisearchHits.map((hit) async {
244-
String userUid = Get.find<AuthStateController>().uid!;
245-
var participantCollectionRef = await databases.listDocuments(
246-
databaseId: masterDatabaseId,
247-
collectionId: participantsCollectionId,
248-
queries: [Query.equal('roomId', hit['\$id']), Query.limit(3)],
249-
);
250-
List<String> memberAvatarUrls = [];
251-
for (var p in participantCollectionRef.documents) {
252-
Document participantDoc = await databases.getDocument(
253-
databaseId: userDatabaseID,
254-
collectionId: usersCollectionID,
255-
documentId: p.data['uid'],
256-
);
257-
memberAvatarUrls.add(participantDoc.data['profileImageUrl']);
258-
}
259-
return AppwriteRoom(
260-
id: hit['\$id'],
261-
name: hit['name'],
262-
description: hit['description'],
263-
totalParticipants: hit['totalParticipants'],
264-
tags: List<String>.from(hit['tags'] ?? []),
265-
memberAvatarUrls: memberAvatarUrls,
266-
state: RoomState.live,
267-
isUserAdmin: hit['adminUid'] == userUid,
268-
reportedUsers: List<String>.from(hit['reportedUsers'] ?? []),
269-
);
270-
}).toList(),
271-
);
272-
} else {
273-
//upcoming rooms
274-
return meilisearchHits.map((hit) {
275-
final originalRoom = (originalUpcomingRooms ?? []).firstWhere(
276-
(room) => room.id == hit['\$id'],
277-
orElse: () => AppwriteUpcommingRoom(
278-
id: hit['\$id'] ?? '',
279-
name: hit['name'] ?? 'Unknown',
280-
isTime: hit['isTime'] ?? false,
281-
scheduledDateTime:
282-
DateTime.tryParse(hit['scheduledDateTime'] ?? '') ??
283-
DateTime.now(),
284-
totalSubscriberCount: 0,
285-
tags: List<String>.from(hit['tags'] ?? []),
286-
subscribersAvatarUrls: [],
287-
userIsCreator: false,
288-
description: hit['description'] ?? '',
289-
hasUserSubscribed: false,
290-
),
291-
);
292-
return originalRoom;
293-
}).toList();
294-
}
295-
}
296-
297199
void clearSearch() {
298200
filteredRooms.value = rooms;
299201
searchBarIsEmpty.value = true;

lib/views/widgets/search_rooms.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ class _SearchOverlayState extends State<SearchOverlay>
8585

8686
void _clearSearch() {
8787
_searchController.clear();
88-
widget.onSearchChanged('');
8988
}
9089

9190
void _closeOverlay() {

0 commit comments

Comments
 (0)