@@ -6,7 +6,6 @@ import 'package:flutter/material.dart';
66import  'package:resonate/l10n/app_localizations.dart' ;
77import  'package:get/get.dart' ;
88import  'package:loading_animation_widget/loading_animation_widget.dart' ;
9- import  'package:meilisearch/meilisearch.dart' ;
109import  'package:resonate/controllers/tabview_controller.dart' ;
1110import  'package:resonate/models/appwrite_room.dart' ;
1211import  '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 ;
0 commit comments