From 51434401db2a288dd454e896a06eabc9a9e64df4 Mon Sep 17 00:00:00 2001 From: emkartal1 Date: Tue, 1 Aug 2023 19:52:17 +0200 Subject: [PATCH] get Posts Friends done --- .../lib/components/top_nav_bar_component.dart | 5 +++-- Sources/justMUSIC/lib/screens/feed_screen.dart | 1 + Sources/justMUSIC/lib/services/PostService.dart | 12 +++++++++--- Sources/justMUSIC/lib/view_model/PostViewModel.dart | 2 ++ 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Sources/justMUSIC/lib/components/top_nav_bar_component.dart b/Sources/justMUSIC/lib/components/top_nav_bar_component.dart index ab0c499..e981ad7 100644 --- a/Sources/justMUSIC/lib/components/top_nav_bar_component.dart +++ b/Sources/justMUSIC/lib/components/top_nav_bar_component.dart @@ -27,9 +27,10 @@ class _TopNavBarComponentState extends State with TickerProv final DateTime midnight = DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day + 1); - void actionSurBouton() { + void actionSurBouton() async { widget.callback(choice); - MyApp.postViewModel.getBestPosts(); + await MyApp.postViewModel.getBestPosts(); + await MyApp.postViewModel.getPostsFriends(); } @override diff --git a/Sources/justMUSIC/lib/screens/feed_screen.dart b/Sources/justMUSIC/lib/screens/feed_screen.dart index f619441..7670d92 100644 --- a/Sources/justMUSIC/lib/screens/feed_screen.dart +++ b/Sources/justMUSIC/lib/screens/feed_screen.dart @@ -28,6 +28,7 @@ class _FeedScreenState extends State @override void initState() { super.initState(); + MyApp.postViewModel.getPostsFriends(); friendFeed = MyApp.postViewModel.postsFriends; MyApp.postViewModel.getBestPosts(); discoveryFeed = MyApp.postViewModel.bestPosts; diff --git a/Sources/justMUSIC/lib/services/PostService.dart b/Sources/justMUSIC/lib/services/PostService.dart index 03f8aa4..9aff8e2 100644 --- a/Sources/justMUSIC/lib/services/PostService.dart +++ b/Sources/justMUSIC/lib/services/PostService.dart @@ -46,7 +46,7 @@ class PostService { {int limit = 10, int offset = 0}) async { DateTime twentyFourHoursAgo = DateTime.now().subtract(Duration(hours: 24)); Timestamp twentyFourHoursAgoTimestamp = - Timestamp.fromDate(twentyFourHoursAgo); + Timestamp.fromDate(twentyFourHoursAgo); QuerySnapshot> response = await FirebaseFirestore .instance @@ -64,14 +64,20 @@ class PostService { Future>>> getPostsFriends( {int limit = 10, int offset = 0}) async { - QuerySnapshot> response = await FirebaseFirestore + var response = await FirebaseFirestore .instance .collection("posts") .where("user_id", whereIn: MyApp.userViewModel.userCurrent.followed) - .orderBy("date", descending: true) .limit(limit) .get(); + response.docs.sort((a, b) { + DateTime aDate = a.data()['date'].toDate(); + DateTime bDate = b.data()['date'].toDate(); + + return bDate.compareTo(aDate); + }); + return response.docs; } diff --git a/Sources/justMUSIC/lib/view_model/PostViewModel.dart b/Sources/justMUSIC/lib/view_model/PostViewModel.dart index c6d71c4..e74ab19 100644 --- a/Sources/justMUSIC/lib/view_model/PostViewModel.dart +++ b/Sources/justMUSIC/lib/view_model/PostViewModel.dart @@ -29,12 +29,14 @@ class PostViewModel { Future> getPostsFriends() async { try { + _postsFriends = []; var responseData = await _postService.getPostsFriends(); List ids = []; var postsFutures = responseData.map((value) { ids.add(value.data()["song_id"]); return PostMapper.toModel(value); }).toList(); + _postsFriends = await Future.wait(postsFutures); List musics = await MyApp.musicViewModel.getMusicsWithIds(ids); for (int i = 0; i < _postsFriends.length; i++) { _postsFriends[i].music = musics[i];