add tokenSpotify class

WORK-DDA
Emre KARTAL 2 years ago
parent 8f44cbc46f
commit e40560aa7d

@ -0,0 +1,10 @@
import '../model/Comment.dart';
class CommentViewModel {
// Methods
List<Comment> getCommentsPost(int idPost) {
throw new Error();
}
}

@ -0,0 +1,19 @@
import '../model/Music.dart';
class MusicViewModel {
final String API_URL = "";
// Methods
Music getMusic(int id) {
throw new Error();
}
Music getMusicWithName(String name) {
throw new Error();
}
List<Music> getMusics(String name) {
throw new Error();
}
}

@ -0,0 +1,31 @@
import 'package:justmusic/model/Post.dart';
class PostViewModel {
List<Post> _postsFriends = [];
List<Post> _bestPosts = [];
// Constructor
PostViewModel();
// Getters and setters
List<Post> get postsFriends => _postsFriends;
List<Post> get bestPosts => _bestPosts;
// Methods
List<Post> getPostsFriends() {
throw new Error();
}
List<Post> getMorePostsFriends() {
throw new Error();
}
List<Post> getBestPosts() {
throw new Error();
}
List<Post> getMoreBestPosts() {
throw new Error();
}
}

@ -0,0 +1,44 @@
import 'dart:convert';
import 'package:http/http.dart' as http;
class TokenSpotify {
final String clientId = 'd9b82921bbdf43efa15d0c34c28c6f93';
final String _clientSecret = 'ba01687f59ea4ab7ad00c769e89e44d8';
late String _accessToken;
late DateTime _tokenEnd;
TokenSpotify() {
_tokenEnd = DateTime.now().add(Duration(seconds: -1));
}
Future<String> getAccessToken() async {
if (_isTokenExpired()) {
await _refreshToken();
}
return _accessToken;
}
_refreshToken() async {
final basicAuth = base64Encode(utf8.encode('$clientId:$_clientSecret'));
final response = await http.post(
Uri.parse('https://accounts.spotify.com/api/token'),
headers: {
'Authorization': 'Basic $basicAuth',
'Content-Type': 'application/x-www-form-urlencoded',
},
body: 'grant_type=client_credentials',
);
if (response.statusCode == 200) {
final responseData = jsonDecode(response.body);
_accessToken = responseData['access_token'];
_tokenEnd = DateTime.now().add(Duration(seconds: responseData['expires_in']));
} else {
print('Erreur lors de l\'actualisation du token : ${response.statusCode}');
}
}
bool _isTokenExpired() {
return DateTime.now().isAfter(_tokenEnd);
}
}

@ -0,0 +1,13 @@
import '../model/User.dart';
class UserViewModel {
User? _userCurrent;
// Constructor
UserViewModel();
// Methods
User getUser(int id) {
throw new Error();
}
}

@ -75,6 +75,22 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
http:
dependency: "direct main"
description:
name: http
sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2"
url: "https://pub.dev"
source: hosted
version: "0.13.6"
http_parser:
dependency: transitive
description:
name: http_parser
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.2"
js: js:
dependency: transitive dependency: transitive
description: description:
@ -176,6 +192,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.4.16" version: "0.4.16"
typed_data:
dependency: transitive
description:
name: typed_data
sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
url: "https://pub.dev"
source: hosted
version: "1.3.2"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
@ -185,4 +209,4 @@ packages:
source: hosted source: hosted
version: "2.1.4" version: "2.1.4"
sdks: sdks:
dart: ">=2.18.2 <3.0.0" dart: ">=2.19.0 <3.0.0"

@ -31,6 +31,7 @@ environment:
dependencies: dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
http: ^0.13.5
# The following adds the Cupertino Icons font to your application. # The following adds the Cupertino Icons font to your application.

Loading…
Cancel
Save