11import 'package:cloud_firestore/cloud_firestore.dart' ;
22import 'package:dartz/dartz.dart' ;
3+ import 'package:flutter/foundation.dart' ;
34import 'package:spotify_with_flutter/data/models/songs/songs.dart' ;
45import 'package:spotify_with_flutter/domain/entities/songs/songs.dart' ;
56
67abstract class SongFirebaseService {
78 Future <Either > getNewsSongs ();
9+ Future <Either > getPlayList ();
810}
911
1012class SongFirebaseServiceImpl extends SongFirebaseService {
@@ -13,7 +15,7 @@ class SongFirebaseServiceImpl extends SongFirebaseService {
1315 try {
1416 List <SongEntity > songs = [];
1517 var data = await FirebaseFirestore .instance
16- .collection ('songs ' )
18+ .collection ('Songs ' )
1719 .orderBy ('releaseDate' , descending: true )
1820 .limit (3 )
1921 .get ();
@@ -25,6 +27,32 @@ class SongFirebaseServiceImpl extends SongFirebaseService {
2527
2628 return right (songs);
2729 } on Exception catch (e) {
30+ if (kDebugMode) {
31+ print ('Error: $e ' );
32+ }
33+ return const Left ('An error occurred, Please try again.' );
34+ }
35+ }
36+
37+ @override
38+ Future <Either > getPlayList () async {
39+ try {
40+ List <SongEntity > songs = [];
41+ var data = await FirebaseFirestore .instance
42+ .collection ('Songs' )
43+ .orderBy ('releaseDate' , descending: true )
44+ .get ();
45+
46+ for (var element in data.docs) {
47+ var songModel = SongModel .fromJson (element.data ());
48+ songs.add (songModel.toEntity ());
49+ }
50+
51+ return right (songs);
52+ } on Exception catch (e) {
53+ if (kDebugMode) {
54+ print ('Error: $e ' );
55+ }
2856 return const Left ('An error occurred, Please try again.' );
2957 }
3058 }
0 commit comments