diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..6a35e64 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,28 @@ +kind: pipeline +type: docker +name: JustMusic + +trigger: + event: + - push + +steps: +# - name: app-build +# image: cirrusci/flutter:stable +# commands: +# - cd ./Sources/justMUSIC/ +# - flutter build apk + + - name: code-analysis + image: cirrusci/flutter:stable + environment: + SONAR_TOKEN: + from_secret: SONAR_TOKEN + commands: + - export SONAR_SCANNER_VERSION=4.7.0.2747 + - export SONAR_SCANNER_HOME=$HOME/.sonar/sonar-scanner-$SONAR_SCANNER_VERSION-linux + - curl --create-dirs -sSLo $HOME/.sonar/sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$SONAR_SCANNER_VERSION-linux.zip + - unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/ + - export PATH=$SONAR_SCANNER_HOME/bin:$PATH + - export SONAR_SCANNER_OPTS="-server" + - sonar-scanner -D sonar.projectKey=JustMusic -D sonar.sources=./Sources/justMUSIC -D sonar.host.url=https://codefirst.iut.uca.fr/sonar \ No newline at end of file diff --git a/Sources/justMUSIC/lib/services/PostService.dart b/Sources/justMUSIC/lib/services/PostService.dart index 9aff8e2..7e71ff4 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 @@ -62,22 +62,22 @@ class PostService { return filteredPosts; } + Timestamp _getTwentyFourHoursAgoTimestamp() { + DateTime twentyFourHoursAgo = DateTime.now().subtract(Duration(hours: 24)); + return Timestamp.fromDate(twentyFourHoursAgo); + } + Future>>> getPostsFriends( {int limit = 10, int offset = 0}) async { - var response = await FirebaseFirestore - .instance + var timestamp = _getTwentyFourHoursAgoTimestamp(); + var response = await FirebaseFirestore.instance .collection("posts") .where("user_id", whereIn: MyApp.userViewModel.userCurrent.followed) + .where("date", isGreaterThan: timestamp) + .orderBy("date") .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 e74ab19..d60a4ce 100644 --- a/Sources/justMUSIC/lib/view_model/PostViewModel.dart +++ b/Sources/justMUSIC/lib/view_model/PostViewModel.dart @@ -36,11 +36,12 @@ class PostViewModel { ids.add(value.data()["song_id"]); return PostMapper.toModel(value); }).toList(); - _postsFriends = await Future.wait(postsFutures); + var posts = await Future.wait(postsFutures); List musics = await MyApp.musicViewModel.getMusicsWithIds(ids); - for (int i = 0; i < _postsFriends.length; i++) { - _postsFriends[i].music = musics[i]; + for (int i = 0; i < posts.length; i++) { + posts[i].music = musics[i]; } + _postsFriends = posts; return _postsFriends; } catch (e) { print(e); @@ -61,11 +62,12 @@ class PostViewModel { ids.add(value.data()["song_id"]); return PostMapper.toModel(value); }).toList(); - _bestPosts = await Future.wait(postsFutures); + var posts = await Future.wait(postsFutures); List musics = await MyApp.musicViewModel.getMusicsWithIds(ids); - for (int i = 0; i < _bestPosts.length; i++) { - _bestPosts[i].music = musics[i]; + for (int i = 0; i < posts.length; i++) { + posts[i].music = musics[i]; } + _bestPosts = posts; return _bestPosts; } catch (e) { print(e);