diff --git a/lib/services/spotify.dart b/lib/services/spotify.dart index 596aedaf4eead0125547fb5ba4c55d6ccf058fc4..7c0c2785c4482e550368b4d14bd82ddc3fa8d149 100644 --- a/lib/services/spotify.dart +++ b/lib/services/spotify.dart @@ -1,4 +1,155 @@ +import 'dart:developer'; +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; -class Spotify {} +class Spotify { + var authToken = + "BQAJa2icyErbxED5g-IkEpAwR1QXUJJ8v1Kz1JpvxNWCgeMAk73z_uyMVLk9exZ7s3kfLYK9m-uJMvMIvdGhbSIDzq0GyjeKfVztWH4rSAlLrMoqRXoij1q0W3Wp6okhJzaDcVkG7RLeLzr1waa1Zv-0mbfrqFznK2c7X_K2G_5jx8Flu6bPACJBCI0KuupYJ1Mg19M"; + + search(text) async { + try { + var response = await http.get( + Uri.parse("https://api.spotify.com/v1/search?q=$text"), + headers: {HttpHeaders.authorizationHeader: authToken}, + ); + return response; + } catch (e) { + log(e.toString()); + } + } + + getUserAlbums() async { + try { + var response = await http.get( + Uri.parse("https://api.spotify.com/v1/me/albums"), + headers: {HttpHeaders.authorizationHeader: authToken}, + ); + return response; + } catch (e) { + log(e.toString()); + } + } + + getFavoritTracks() async { + try { + var response = await http.get( + Uri.parse("https://api.spotify.com/v1/me/tracks"), + headers: {HttpHeaders.authorizationHeader: authToken}, + ); + return response; + } catch (e) { + log(e.toString()); + } + } + + saveToFavoritTracks(track) async { + try { + var response = await http.put( + Uri.parse("https://api.spotify.com/v1/me/tracks?ids=$track"), + headers: {HttpHeaders.authorizationHeader: authToken}, + ); + return response; + } catch (e) { + log(e.toString()); + } + } + + deleteToFavoritTracks(track) async { + try { + var response = await http.delete( + Uri.parse("https://api.spotify.com/v1/me/tracks?ids=$track"), + headers: {HttpHeaders.authorizationHeader: authToken}, + ); + return response; + } catch (e) { + log(e.toString()); + } + } + + getTrack(id) async { + try { + var response = await http.get( + Uri.parse("https://api.spotify.com/v1/tracks/$id"), + headers: {HttpHeaders.authorizationHeader: authToken}, + ); + return response; + } catch (e) { + log(e.toString()); + } + } + + getGenres() async { + try { + var response = await http.get( + Uri.parse( + "https://api.spotify.com/v1/recommendations/available-genre-seeds"), + headers: {HttpHeaders.authorizationHeader: authToken}, + ); + return response; + } catch (e) { + log(e.toString()); + } + } + + getAlbum(id) async { + try { + var response = await http.get( + Uri.parse("https://api.spotify.com/v1/albums/$id"), + headers: {HttpHeaders.authorizationHeader: authToken}, + ); + return response; + } catch (e) { + log(e.toString()); + } + } + + getAlbumTracks(id) async { + try { + var response = await http.get( + Uri.parse("https://api.spotify.com/v1/albums/$id/tracks"), + headers: {HttpHeaders.authorizationHeader: authToken}, + ); + return response; + } catch (e) { + log(e.toString()); + } + } + + getArtist(id) async { + try { + var response = await http.get( + Uri.parse("https://api.spotify.com/v1/artists/$id"), + headers: {HttpHeaders.authorizationHeader: authToken}, + ); + return response; + } catch (e) { + log(e.toString()); + } + } + + getArtistTopTracks(id) async { + try { + var response = await http.get( + Uri.parse("https://api.spotify.com/v1/artists/$id/top-tracks"), + headers: {HttpHeaders.authorizationHeader: authToken}, + ); + return response; + } catch (e) { + log(e.toString()); + } + } + + getArtistAlbums(id) async { + try { + var response = await http.get( + Uri.parse("https://api.spotify.com/v1/artists/$id/albums"), + headers: {HttpHeaders.authorizationHeader: authToken}, + ); + return response; + } catch (e) { + log(e.toString()); + } + } +}