Files
cssd/lib/providers/my_info.dart
T
2021-06-21 14:14:54 +04:30

60 lines
1.7 KiB
Dart

import 'dart:convert';
import 'package:http/http.dart' as http;
import '../config/urls.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class MyInfoProvider extends ChangeNotifier {
Map<String, dynamic> _user = {};
Map<String, dynamic> get user {
return {..._user};
}
String _token;
Future<void> setToken() async {
final prefs = await SharedPreferences.getInstance();
if (!prefs.containsKey('auth')) {
return false;
}
final auth = json.decode(prefs.getString('auth')) as Map<String, Object>;
_token = auth['token'];
notifyListeners();
}
Future<Map<String, dynamic>> getUserData() async {
final prefs = await SharedPreferences.getInstance();
final auth = json.decode(prefs.getString('auth')) as Map<String, Object>;
_token = auth['token'];
final response = await http.get(
Uri.parse(Url.getUserInfo),
headers: {
'Authorization': 'Bearer ' + _token,
},
);
print(response.body);
if (response.statusCode == 200) {
var data = json.decode(response.body)['data'];
_user.addAll(
{
'id': data['user']['id'],
'name': data['user']['name'],
'email': data['user']['email'],
'cell_number': data['user']['cell_number'],
'address': data['user']['address'],
'gender': data['user']['gender'],
'medical_center': data['user']['medical_center']['name'],
'roles': data['roles'],
},
);
final prefs = await SharedPreferences.getInstance();
prefs.setString('userData', json.encode(_user));
return _user;
} else {
return {};
}
}
}