fix errors 🐛

WORK-DDA
root 2 years ago
parent a6e617e59c
commit b226528042

@ -1,10 +1,17 @@
class Artist { class Artist {
String _id; String _id;
String _name; String? _name;
String? _image;
Artist(this._id, this._name); Artist(this._id, this._name, this._image);
String get id => _id; String? get id => _id;
String get name => _name; String? get name => _name;
String? get image => _image;
set image(String? value) {
_image = value;
}
} }

@ -2,10 +2,10 @@ import 'Artist.dart';
class Music { class Music {
final String _id; final String _id;
String _title; String? _title;
String _cover; String? _cover;
String _previewUrl; String? _previewUrl;
DateTime _date; DateTime? _date;
List<Artist> _artists; List<Artist> _artists;
// Constructor // Constructor
@ -13,29 +13,29 @@ class Music {
this._artists); this._artists);
//Getters and setters //Getters and setters
String get id => _id; String? get id => _id;
String get title => _title; String? get title => _title;
set title(String value) { set title(String? value) {
_title = value; _title = value;
} }
String get cover => _cover; String? get cover => _cover;
set cover(String value) { set cover(String? value) {
_cover = value; _cover = value;
} }
String get previewUrl => _previewUrl; String? get previewUrl => _previewUrl;
set previewUrl(String value) { set previewUrl(String? value) {
_previewUrl = value; _previewUrl = value;
} }
DateTime get date => _date; DateTime? get date => _date;
set date(DateTime value) { set date(DateTime? value) {
_date = value; _date = value;
} }

@ -24,7 +24,7 @@ class MusicViewModel {
final responseData = jsonDecode(response.body); final responseData = jsonDecode(response.body);
List<Artist> artists = List<Artist> artists =
List<Artist>.from(responseData['artists'].map((artist) { List<Artist>.from(responseData['artists'].map((artist) {
return Artist(artist['id'], artist['name']); return Artist(artist['id'], artist['name'],'');
})); }));
return Music( return Music(
@ -46,7 +46,7 @@ class MusicViewModel {
List<dynamic> tracks = responseData['tracks']['items']; List<dynamic> tracks = responseData['tracks']['items'];
for (var track in tracks) { for (var track in tracks) {
List<Artist> artists = List<Artist>.from(track['artists'].map((artist) { List<Artist> artists = List<Artist>.from(track['artists'].map((artist) {
return Artist(artist['id'], artist['name']); return Artist(artist['id'], artist['name'],'');
})); }));
musics.add(Music( musics.add(Music(
@ -61,10 +61,10 @@ class MusicViewModel {
return musics; return musics;
} }
Future<List<Music>> getMusicsWithName(String name, {int limit = 20, int offset = 1}) async { Future<List<Music>> getMusicsWithName(String name, {int limit = 20, int offset = 0, String market = "FR"}) async {
var accessToken = await _token.getAccessToken(); var accessToken = await _token.getAccessToken();
var response = await http var response = await http
.get(Uri.parse('$API_URL/search?q=track%3A$name&type=track&limit=$limit&offset=$offset'), headers: { .get(Uri.parse('$API_URL/search?q=track%3A$name&type=track&market=fr&limit=$limit&offset=$offset'), headers: {
'Authorization': 'Bearer $accessToken', 'Authorization': 'Bearer $accessToken',
}); });
@ -77,10 +77,10 @@ class MusicViewModel {
} }
} }
Future<List<Music>> getMusicsWithArtistName(String name, {int limit = 20, int offset = 1}) async { Future<List<Music>> getMusicsWithArtistName(String name, {int limit = 20, int offset = 0, String market = "FR"}) async {
var accessToken = await _token.getAccessToken(); var accessToken = await _token.getAccessToken();
var response = await http.get( var response = await http.get(
Uri.parse('$API_URL/search?q=artist%3A$name&type=track&limit=$limit&offset=$offset'), Uri.parse('$API_URL/search?q=artist%3A$name&type=track&market=fr&limit=$limit&offset=$offset'),
headers: { headers: {
'Authorization': 'Bearer $accessToken', 'Authorization': 'Bearer $accessToken',
}); });

@ -8,7 +8,7 @@ class TokenSpotify {
late DateTime _tokenEnd; late DateTime _tokenEnd;
TokenSpotify() { TokenSpotify() {
_tokenEnd = DateTime.now().add(Duration(seconds: -1)); _tokenEnd = DateTime.now().add(Duration(seconds: -10));
} }
Future<String> getAccessToken() async { Future<String> getAccessToken() async {

@ -5,31 +5,32 @@ import 'package:justmusic/view_model/MusicViewModel.dart';
Future<void> main() async { Future<void> main() async {
MusicViewModel musicVM = new MusicViewModel(); MusicViewModel musicVM = new MusicViewModel();
Music m = await musicVM.getMusic('295SxdR1DqunCNwd0U767w'); Music m = await musicVM.getMusic('295SxdR1DqunCNwd0U767w');
print("id :" + m.id.toString() + " cover :" + m.cover + " title :" + m.title);
print(m.date.toString() + " " + m.previewUrl); print("id : ${m.id.toString()}, cover : ${m.cover}, title : ${m.title}");
print("date : ${m.date.toString()}, preview : ${m.previewUrl}");
for (Artist a in m.artists) { for (Artist a in m.artists) {
print(a.id + ":" + a.name); print("id : ${a.id}, name : ${a.name}");
} }
print('\nMusics :'); print('\nMusics :');
List<Music> musics = await musicVM.getMusicsWithName('Onizuka'); List<Music> musics = await musicVM.getMusicsWithName('Shavkat');
for (Music m in musics) { for (Music m in musics) {
print("id :" + m.id.toString() + " cover :" + m.cover + " title :" + m.title); print("id : ${m.id.toString()}, cover : ${m.cover}, title : ${m.title}");
print(m.date.toString() + " " + m.previewUrl); print("date : ${m.date.toString()}, preview : ${m.previewUrl}");
for (Artist a in m.artists) { for (Artist a in m.artists) {
print(a.id + ":" + a.name); print("id : ${a.id}, name : ${a.name}");
} }
} }
print('\nMusics With Artist:'); print('\nMusics With Artist:');
List<Music> musics2 = await musicVM.getMusicsWithArtistName('PNL'); List<Music> musics2 = await musicVM.getMusicsWithArtistName('jul');
for (Music m in musics2) { for (Music m in musics2) {
print("id :" + m.id.toString() + " cover :" + m.cover + " title :" + m.title); print("id : ${m.id.toString()}, cover : ${m.cover}, title : ${m.title}");
print(m.date.toString() + " " + m.previewUrl); print("date : ${m.date.toString()}, preview : ${m.previewUrl}");
for (Artist a in m.artists) { for (Artist a in m.artists) {
print(a.id + ":" + a.name); print("id : ${a.id}, name : ${a.name}");
} }
} }
} }

Loading…
Cancel
Save