1+ import  'dart:convert' ;
2+ 3+ import  'package:flutter/foundation.dart' ;
4+ import  'package:github_following/Models/User.dart' ;
5+ import  'package:github_following/Requests/GithubRequest.dart' ;
6+ 7+ class  UserProvider  with  ChangeNotifier  {
8+  User  user;
9+  String  errorMessage;
10+  bool  loading =  false ;
11+ 12+  Future <bool > fetchUser (username) async  {
13+  setLoading (true );
14+ 15+  await  Github (username).fetchUser ().then ((data) {
16+  setLoading (false );
17+ 18+  if  (data.statusCode ==  200 ) {
19+  setUser (User .fromJson (json.decode (data.body)));
20+  } else  {
21+  Map <String , dynamic > result =  json.decode (data.body);
22+  setMessage (result['message' ]);
23+  }
24+  });
25+ 26+  return  isUser ();
27+  }
28+ 29+  void  setLoading (value) {
30+  loading =  value;
31+  notifyListeners ();
32+  }
33+ 34+  bool  isLoading () { 
35+  return  loading;
36+  }
37+ 38+  void  setUser (value) {
39+  user =  value;
40+  notifyListeners ();
41+  }
42+ 43+  User  getUSer () { 
44+  return  user;
45+  }
46+ 47+  void  setMessage (value) {
48+  errorMessage =  value;
49+  notifyListeners ();
50+  }
51+ 52+  String  getMessage () {
53+  return  errorMessage;
54+  }
55+ 56+  bool  isUser () {
57+  return  user !=  null  ?  true  :  false ;
58+  }
59+ }
0 commit comments